The Small Team Scrum Process
Balancing Commitments and Emergent Needs
Adapting the Scrum agile methodology in the context of a small web development agency comes with a certain level of challenge. In our opinion, Scrum is designed to work best in the context of an unchanging team that collaborates on a single long term software project. This is not our reality. We have many new web projects for existing and new clients as well as continuous emergent support work for all our clients. By experimenting and learning from agile methodologies and the application of agile principles, we have learned how to benefit from the increased efficiency and quality afforded by these practices, in service to our clients who share in these benefits.
Over more than a decade of experimenting, we have refined our approach to managing multiple projects with a small, highly efficient agile team. Inspired by Scrum, our process has evolved into a flexible and effective system that combines elements of Kanban and Scrum. The result is an approach that balances planned commitments with room for responsive action.
In our small team setup, the process draws inspiration from Scrum while embracing the reality of frequent changes and emerging tasks. We maintain core Scrum elements such as bi-weekly sprint planning, sprint retrospectives, and daily stand-ups. These “ceremonies” help us align, reflect, and improve continuously. While the overall workflow resembles a full Kanban process, we still plan and commit to tasks sprint by sprint, balancing planned items with a deliberate intention of keeping some slack.
Slack, not to be confused by the communication platform, refers to the available capacity that we intentionally leave uncommitted in each sprint to handle unexpected work. In the Scrum process, we measure work in "points," which represent the relative effort required to complete a task. Each team has the capacity to deliver a certain quantity of points within a fixed time period for planned work (a sprint). For example, if our team’s total capacity for a sprint is 120 points, we only commit to 90 or 100 points. This deliberate gap, or slack, allows us to handle the inevitable, often urgent support requests from clients that arise unexpectedly. This isn’t just spare capacity; it’s how we manage those spontaneous requests that arise from our clients' immediate needs. By maintaining this flexibility, we avoid a common agile pitfall: over-committing. It is never a problem to allow for more time; the time never gets wasted.
While our web development approach is tending towards the Kanban methodology, the iterative components of Scrum allow us to communicate progress in real time, provide estimates in order to establish budgets, and support efficient and regular communication with all stakeholders.
The combination of planned commitments and built-in slack time allows our team to meet client demands responsibly. We commit to reasonable workloads while also knowing that a significant portion of our work emerges as unplanned needs. This provides us with the ability to meet our obligations to ongoing projects and, at the same time, remain responsive and available to support clients when unexpected requirements pop up.
In practice, our Small Team Scrum process means:
- Commitment with Flexibility: We commit to specific tasks each sprint, but always leave room to respond to the unexpected. This ensures we can adapt without derailing planned work.
- Using Slack Wisely: Slack time isn't downtime, it's time dedicated to emergent work that allows us to stay responsive without overburdening the team.
- Evolving Towards Kanban: As our team matures, our workflow increasingly resembles Kanban, with a continuous flow of work rather than rigid sprint boundaries.
- Scrum Ceremonies & Continuous Improvement: We maintain core Scrum ceremonies such as short daily meetings, sprint planning and retrospectives. This structure helps us continuously improve our processes while keeping our commitments on track.
- Estimation Methodologies & Capacity Measurement: We continuously estimate and evaluate the work ahead. This helps us make realistic sprint commitments and respect the budgets allowed for any feature request.
We view the team as a unified system. Instead of assigning individual team members to specific projects, we consider all projects as the work that needs to be completed by the team as a whole. We know how much work our team can do over a given period of time and we plan accordingly. Because the whole team is familiar with all the projects, we can better manage our overall capacity and maintain flexibility. It increases our resiliency. Our experience shows that this combined process of making firm commitments while being ready to respond on-the-fly ensures we deliver high quality and meet deadlines without hurting the long-term relationships we build with our clients.
This blend of structure and flexibility allows us to deliver great results while never losing sight of our clients’ immediate needs. Our small team Scrum process continues to evolve and improve, but one thing remains constant: it enables us to do our best work in a responsive and responsible way, meeting commitments while staying adaptable.