How cloud.gov prioritizes & organizes work
With so many ways to organize and prioritize work - scrum, Kanban, SAFE - it can be helpful to learn about a team’s experience with using different practices and processes. In the spirit of sharing knowledge and translating theory into practice, we’ll use this blog post to explain how cloud.gov manages its work and what we’ve learned along the way.
First, let’s talk about tools. We use Github Projects to manage stories and tasks. One project planning board tracks the work that the team is actively doing - it gives everyone visibility into the highest priority work and each story that is actively being worked on is discussed during the daily stand-up. Other project boards are used to capture ideas and emergent work for things such as compliance, UX, and our business unit. High priority stories from these sub-boards filter up to the overall team project planning board when ready.
Second, we follow a handful of guiding principles.
- Maximize the amount of time our team has to work uninterrupted and minimize context switching. What this means in practice is fewer meetings with more targeted attendance. For example, we replaced backlog refinement and sprint planning - meetings that required the entire team’s attendance for two hours every other week - with a single, weekly, 30 minute prioritization meeting with four people (the product manager, security & compliance lead, and two engineering representatives). The engineers take turns attending the prioritization meeting so that everyone has visibility and no one’s schedule is overburdened. We replaced the sprint demo with a 30 minute, bi-weekly sprint architecture review that covers updates for the business, major version changes, compliance & security, and operations. Responsibility for updating the documentation is shared by the team on a rotating basis.
- Work with, not against, the interrupt-driven nature of the work we do. Running a Platform as a Service (PaaS) that includes responding to support requests from customers necessitates flexibility. Interruptions happen - e.g., an urgent support request comes in from a customer, or an alert about a platform component appears. These items typically require further investigation. Two support engineers monitor and respond to the support queue. They also are the first responders to any platform-related issues, triaging the initial activity so that the rest of the team can continue their work uninterrupted. If the incident requires more support, then the appropriate team members are tagged in.
- Prioritize weekly. We prioritize the work on a weekly basis rather than a two-week sprint cycle. This allows us to not overload the team, ensure there is enough capacity, and not lose sight of the highest priority work. It also allows us to course correct more quickly if work needs to be reprioritized. Since we utilize one project planning board, this makes it easier for everyone to know the prioritized work for the team.
- Be willing to experiment. Our process can be described as scrum’ish meets Kanban’ish. We do a daily stand-up and bi-weekly team retrospective (scrum). We do weekly prioritization (Kanban). Our bi-weekly architecture review doesn’t fit neatly into either model but it works for our team and supports our program.
Third, our engineers are testing out an advocacy model for building technical knowledge across the team and ensuring critical work isn’t overlooked. Each engineer would be an “advocate” for a different part of the cloud.gov platform for four to six weeks. During that time, the engineer would be responsible for ensuring that work supporting that part of the platform is prioritized and implemented. After four to six weeks, the engineers rotate to a new part of the platform. The advocacy model is in its early stages but we’re excited to see how it evolves.
Finally, it’s important to note that cloud.gov arrived at these processes over time. We tried different methods, adjusted when needed, and discarded ones that were less successful. We are always looking for ways to improve how we do our work and create a supportive, collaborative team environment.
To learn more about cloud.gov, you can reach out to the team at firstname.lastname@example.org for more information, or to set up an introductory call.