The book Leading the transformation – Applying agile and DevOps principles at scale written by Gary Gruver and Tommy Mouser gives a refreshing look how to start your agility transformation.
While most Agile implementations start with a focus on applying Agile principles at the team level, the approach presented in this book focuses on applying the basic principles of Agile and DevOps across the organization. How teams come together to deliver value in large organizations is the first-order effect, while how individual teams work is a second-order effect. Therefore, this book primarily focusses on how to transform the way the teams come together to provide value to the business by integrating all their changes early and often in an operation-like environment.
Transforming development and delivery processes in a large, traditional organization requires a lot of technical changes that will require some work, but by far the biggest challenges are with changing the culture and how people work on a day-to-day basis.
The approach to rolling out an enterprise-level Agile transition should focus on the business breakthroughs the Agile principles are intended to achieve while taking into consideration the capacity of an organization to change.
In several chapters we follow the steps you have to take when transforming the organization.
- Business objectives and crucial first steps. Once you have a clear set of business objectives in place, the next step is determining where to start the transformation. You can’t do everything at once and this is going to be a multiyear effort, so it is important to start where you will get the biggest benefits.
- A culture of continuous improvement at the enterprise level is important for any large successful transformation (mini-milestone objectives, cascading objectives to track progress, conversations, learnings and agile adjustments).
- Agile enterprise planning. Organizations need to decide whether their primary objective is to deliver long-term accurate plans to its executives or if it is to deliver business value to its customers. Break the planning process down into different planning horizons, don’t eliminate flexibility, don’t lock in all of your capacity to long-range commitments, just-in-time creation of requirements details.
- Business objectives specific to scaling DevOps. Applying DevOps and Agile principles at scale in the enterprise requires developing processes that will enable the organization to economically release smaller batches of code on a more frequent basis. There are five main objectives: improve the quality and speed of feedback for developers, reduce the time and resources required to go from functionality complete or release branching to production, improve the repeatability of the build, deploy, and test process, develop an automated deployment process that will enable you to quickly and efficiently find any deployment or environment issues, and remove the duplication of work that comes from supporting multiple branches of similar code.
- Creating a culture of trunk development. One of the most important cultural changes for aligning the work across the organization is having all the teams continually integrating and testing their code in a production-like environment. From a technical perspective the team will have to learn development practices like versioning services, rearchitecture through abstraction, feature flags, and evolutionary database design techniques.
- ensuring a solid foundation. The first fundamental is clean architectures that enable smaller teams to work independently in an enterprise and make it possible to find defects with fast running unit or subsystem tests. The second is build and the ability to manage different artifacts as independent components. The third is test automation.
- Continuous Delivery is a fundamentally different approach to development and operations that automates as much of the configuration, deployment, and testing processes as possible and puts it all under a revision control. The core pieces of Continuous Delivery you need to know are continuous integration, scripted environments, scripted deployments, evolutionary database design, test automation, deployment pipeline, and orchestrator.
- Designing the deployment pipeline. You need to design a deployment pipeline that moves as close to that ideal state as possible but accommodates the current realities of your traditional business. Building up a stable enterprise system is a key component of the DevOps or Agile principle of enabling more frequent and smaller releases. Even if your business does not require or support more frequent releases, it helps with developer productivity and takes uncertainty out of the endgame.
- Improving stability over time by using build acceptance tests and the deployment pipeline.
- getting started. The key is starting the process of continually improving. The first step is making sure you have a clear set of business objectives that you can use to prioritize your improvements and show progress along the journey. Next is forming the team that will lead the continuous improvement process. The team should include the right leaders across Development, QA, Operations, and the business that will need to help support the priorities and lead the transformation.
Conclusion. After reading this book it becomes clear that moving towards business agility has nothing to do with the implementation of an agile way of working at team level. It’s the organization’s culture that has to change and this book is a great start to understand what that cultural change means from a developers’ perspective and which steps you need to take.
To order: Leading the transformation