There's no need to reference the wealth of case studies on the topic to prove that an Agile approach to software delivery is a proven methodology for successfully developing and deploying high-quality software. But, having said that, there is indeed a dearth of knowledge about scaling Agile successfully across an enterprise organization, from one end to the other of the ALM stack.
On small to medium-sized projects, where all stakeholders in the application lifecycle management process -- including developers, testers, scrum masters, DevOps professionals and end users -- might number between 50 and 100 people, experiencing Agile success is relatively easy. But when the Agile team's numbers grow into the triple digits, and the geographic distribution of the team expands globally, Agile methods that work well in smaller groups have a tendency to run out of steam.
Scaling Agile across the enterprise
"Agile has a ceiling in terms of the number of developers you can throw on to an Agile program before it stops doing what Agile is supposed to do," Tasktop CEO Mik Kersten said about the struggles organizations encounter when they try to scale using traditionally accepted techniques. That's not to say Agile doesn't scale. Getting Agile to scale and break through that previously mentioned ceiling is exactly what Kersten is famous for doing, but it requires that organizations approach their entire application lifecycle management process, from end-to-end, in an Agile way, and make the process enterprise-wide, and not just the domain of developers, testers and the analysts who are documenting the business requirements.
"Agile is a local optimization of your value streams," Kersten said about the fact that the development methodology concerns itself with primarily that: development. But software projects need to be about more than fulfilling the criteria that has been documented by analysts doing business requirements. Assuming an organization clearly understands the value their development effort is delivering to clients, something that becomes muddled in large software development efforts, the process for delivering that value and acquiring feedback can become time consuming -- and when delays exist between the development cycle and feedback loop, Agile projects lose their agility.
Agile has a ceiling in terms of the number of developers you can throw on to an Agile program before it stops doing what Agile is supposed to do.
"Organizations have to go Agile. But if it takes you 12 weeks to get things into production, and it takes 12 weeks to get feedback to the development team, you're not very Agile as an organization," Kersten said. In such cases, the software development team may be developing high-quality software with admirable speed and velocity, but are they actually delivering value to the customer? This is the essential problem organizations encounter when they attempt to scale. The Agile methodology concerns itself primarily with the development effort. Large organizations working on large projects must concern themselves not only with the development effort, but also with the value stream as a whole.
Incorporating the entire ALM process
So what are successful organizations doing to put the theory into practice and expand the Agile concepts across the entire application lifecycle management process and subsequently address the value stream? Breaking down the walls between development and operations is a big piece of the puzzle, which explains why so many organizations are focusing on making DevOps a reality.
Streamlining communication and interactions between all ALM stakeholders is another part of scaling Agile successfully that shouldn't be overlooked. Tools abound in enterprise organizations, but the tools used by those doing requirements gathering don't always integrate well with the tools used to do software development, let alone the tools users work with to provide input into Agile feedback logs. The result is that organizations that have spent millions of dollars on software licenses end up relying on lowest common denominator tools such as Excel spreadsheets or plain text emails to communicate across silos. Seamless integration of tooling, as opposed to the introduction of new tools, often can play a pivotal role in scaling Agile successfully.
What techniques have you used to successfully scale Agile beyond small teams and across the entire ALM stack? Let us know.