Agile software development is not scaling in enterprises, and in response, the Agile community has developed new solutions focus on getting more developers to develop more features (LESS, SAFe, Nexus). This inevitably produces similar results because it does not address the real inhibitors to scaling Agile software development. It doesn’t matter how fast you can develop a feature if that feature cannot be deployed to production at a similar speed. Only after you’ve removed barriers to rapidly deploying software should you figure out how to ship more features with more teams.
Here are the facts:
- You can’t scale agile without continuous integration and delivery.
- You can’t scale agile without highly anti-fragile and agile infrastructure.
- You can’t scale agile and still be using ITIL and ITSM.
- The enterprise has to scale Agile. It’s a superior model.
So, how do we scale Agile? We embrace a new operating model called DevOps and include all aspects of software development and delivery into our scope of change. We have to change IT infrastructure and operations as much as we’ve changed software development to become more Agile. As I alluded to in the title, please don’t just jump to more SCRUM and send the IT infrastructure and operations people to SCRUM training. Instead, we’ve got to unite around a single goal. I agree with Jez Humble, co-author of Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, that you should make this goal simple and clear. My suggestion is most organizations rally around this goal:
Testing and deploying a developed feature should take no longer than two days to be considered ready to release to production, and the release should be successful 100/100 times.
In my experience, to realize this goal, you’ll need the following organizational capabilities:
- Ability to integrate code changes that have been automatically tested for quality into a single codebase
- Ability to automatically provision new environments for testing and validation on-demand
- Ability to test for quality, accuracy, security, and operability automatically in non-production environments
- Ability to automatically deploy new code changes and features to production without downtime
It’s time to unite around a single goal, take down the barriers, and focus on bringing change to the entire IT software system. Enterprises need operationalization capabilities that allow them to deploy, test, and operate software at the same pace that features are being developed.
Getting started is rather straightforward. Systematically measure the gap caused by existing processes and capabilities against the goal. Your measurements should be able to tell you which of the capabilities to operationalize first. Methodically implement capabilities, re-assess the gap, and repeat until you’ve met your goal. We’ve found that value stream mapping is the most effective way to measure, and multi-functional Agile teams with DevOps, cloud, automation, and development expertise working on gap remediation rapidly produces results.