“I have read that Agile needs teams of 7+-2 people to work properly. We are a large team and there is no way that Agile will work for us.”
Any discussion about Agile development in large companies will have this talking point.
And it’s a valid one.
Agile development focuses on frequent and free flowing interaction between team members. Agile is anti-bureaucracy, while the bigger a team or an organization grows the more bureaucratic is becomes.
So, does Agile work in software development teams that comprise, say, 200 people?
The data says that Agile actually works with teams with even bigger sizes.
The State of Agile 2015 survey which collected 3925 responses found out that 20% of the respondents who practiced Agile worked in companies that had more than 20,000 people.
These numbers are at Fortune 500 levels, and enterprise Agile adoption has shown a steady uptick over the years.
The different aspects of Agile at scale
When we talk about scaling Agile in an enterprise environment it’s not about only increase in headcount. There are other complicating factors like:
- Life cycle- The enterprise IT life cycle goes beyond solution delivery and support that smaller Agile teams have to contend with.
- Geographical distribution- All team members might not be in the same location
- Regulations- Teams who have to work within regulations like HIPPA face greater challenges then teams in unregulated environments.
- Team complexity- An enterprise IT project might span several divisions following multiple policies and philosophies.
Enterprises are exploring multiple frameworks to deal with Agile. Some of them are Scrum of Scrums, Scaled Agile Framework (SAFe), Disciplined Agile Delivery (DAD) and Large Scale Scrum (LeSS).
The State of Agile 2015 survey found that the most popular framework for scaling Agile is Scrum of Scrums (69%).
Image courtesy State of Agile 2015
Agile at scale- how does it looks like
Regardless of how large a team is Agile always works with small teams of less than 10 members. In large teams where Agile projects are being run this is achieved by breaking down tasks into subtasks, and allotting small teams to complete these tasks.
While the basic idea is simple things get complex when you consider the details.
Scrum or Scrums, the most popular framework that large teams use to implement Agile development is loosely structured. Multiple scrum teams are organized to work on a single project, and every team sends a technical representative to a daily stand-up (which is a short meeting of about 15 minutes where all teams discuss issues affecting the project as a whole and set responsibilities for fixes).
Some ideas to get started with Scrum of Scrums:
- Every scrum team will have the same key roles like product owner, Scrum Master and technical lead.
- The different teams have the same start and end dates, though they are free to iterate as much as they want depending on their individual work style
- If there are multiple teams representatives of one team should be able to participate in meetings of other teams to identify issues and dependencies.
In practice Scrum of Scrum has this structure.
Image courtesy Scrum Alliance
The Scaled Agile Framework is more structured than Scrum of Scrums. It delineates three tiers-
This is how it looks like
Image courtesy Scaled Agile Framework
- Similar areas of work called themes are linked to business epics (e.g. a new product launch) and architecture epics (migrating to Amazon Cloud). These make up the portfolio.
- Each epic becomes an Agile program with its own release cycle. Many teams might work on the same program.
- The lowest level is the team. Every team gets allotted tasks from the program backlog, and multiple teams might work on the same program in close co-ordination.
In SAFe, the IT leadership sets priorities and allots teams their tasks.
How to start scaling, and conclusion
The success factors for success at scaled Agile are having consistent processes and practices. Another important factor is executive buy-in, while using the same tools or platforms across teams is critical for success.
Agile has been demonstrated to increase team productivity, manage changing priorities, and keep projects visible. As experience with Agile methods increase the chances of success also improve regardless of the size of the organization.