The Scalable Agile Design Group (SADG) is an informal group representing 11 companies plus Assembla, pulled together to share ideas about how Agile techniques can be scaled up to address large, complex software development projects.
Although the group is not a scientific sample, it does contain a cross-section of midsized and large companies in businesses ranging from sporting goods, to financial services, to online computer games, to custom software development.
Below are findings that provide insight into how Agile is currently being used and where it is going, based on interviews and discussions with 11 companies that have scaled Agile to larger projects. We also include links to some recent Assembla blog posts related to these findings.
Finding #1: There are three distinct Agile use cases
There is not one set of Agile best practices that fits all development organizations. In fact, our group showed three use cases that dictate very different priorities and methods. Development teams fell into three categories:
- “Major Release Developers” work on client-server and locally installed products with releases every three to six months
- “Cloud Application Developers” build web-based applications that are updated frequently, as much as several times per day.
- “Multi-Project Developers” work on many concurrent projects for multiple customers
The group you belong to determines which Agile practices make sense for you and which don’t.
Get more details in: The Three Agile Use Cases: Where Do You Fit In?
Finding #2: Almost no large Agile organization is totally co-located
The vast majority of companies in the group have distributed development organizations:
Number of companies with development staff in:
- 7+ locations: 27%
- 3-5 locations: 55%
- 1 location: 18%
And almost all of these companies also have employees working at home, freelancers, and virtual business partners at multiple locations.
Finding #3: Scrum is the default Agile methodology
Scrum is clearly the predominant Agile methodology in the group.
Number of companies using:
- Exclusively Scrum or “scrumish” techniques: 55%
- Scrum and Kanban or Lean techniques: 36%
- Exclusively Kanban or Lean techniques: 9%
Finding #4: Kanban has its place, but not as a replacement for Scrum
Kanban is not seen as a new wave replacing Scrum. Rather, Kanban and lean techniques are seen as the right fit for web-based applications with frequent releases (Cloud app developers in finding #1), while Scrum is still viewed as optimal for client-server and locally installed applications with less frequent releases.
Finding #5: Teams are adding lean concepts to sprints (ScrumBan)
Companies are incorporating Lean concepts into their Scrum processes. This includes leaving room in the sprint plan for last-minute new tasks and limiting WIP within a sprint. These practices reduce some of the inflexibility of pure Scrum, while preserving advantages such as having defined releases at regular intervals.
We recently posted a blog article that discusses this hybrid approach. Check out: Scrum + Kanban = ScrumBan, an Easy Scrum Upgrade. See where ScrumBan fits in the progression toward Continuous Delivery: Assembla's Beyond Scrum Roadmap
Finding #6: Coordinating teams and dependencies is a major challenge for scaling Agile
Perhaps the greatest challenge in scaling up Agile projects is coordinating teams and managing dependencies across teams. As projects grow, development groups resort to ever more complicated and time-consuming rounds of meetings and calls. This is clearly a topic crying out for new ideas and fresh thinking.
Read: 3 Ways to Handle Dependencies
Finding #7: Continuous Integration and integrated testing are critical for scaling
The companies that have scaled most successfully are strong believers in Continuous Integration. They have invested in processes and automated build tools to the point where they create new builds daily or several times each day.
The organizations with the fastest release cycles have also worked hard on integrating testing into all parts of the development cycle. Testing early and often allows them to find and fix problems faster, without slowing down release cycles.
Assembla has published a lot about continuous integration and Continuous Delivery:
Do these findings ring true for you?
Do these findings agree with your experiences, or contradict them? Please comment below.