This post is from the CollabNet VersionOne blog and has not been updated since the original publish date.
Scaled Agile to DevOps
Many people and companies have talked about Scaling Agile to DevOps and have tried adopting this approach to software development at different scales. While many companies have been successful in adopting the technique, only a few have been able to scale.
The term DevOps (Development + Operations) was born around 2008 when some used the term to describe “Agile Infrastructure”. But ever since then, the two terms “Agile” and “DevOps” have been used selectively, either together or separately. In recent years some companies have successfully mastered Agile Execution at scale, making DevOps a hot new topic on every CIO’s list.
The Agile Manifesto had it all defined back in 2001 – “continuous delivery of software”, “deliver working software frequently”, etc. In my view of this space, DevOps and Agile are one and the same. Scaling Agile beyond project management, into the realms of operations is DevOps. If you viewed software development as a supply chain, DevOps is Downstream Agile. To effectively be an Agile enterprise it’s important to have working software in frequent releases. How can software work without being deployed into a server and tested?
Are you DevOps ready?
Many companies have jumped into the DevOps bandwagon today. These companies have spun initiatives around Agile adoption and DevOps. While it’s a good sign that these enterprises are wanting to embrace change, it’s scary to see so much money spent without a clear plan. DevOps is not a magic potion. There are 5 things that these enterprises need to consider before jumping into the Agile and / or DevOps bandwagon:
- Is there a commitment from the top leadership to become an Agile enterprise?
- Does the organization have shared goals across departments?
- Has the organization identified the key processes that deliver the most business value?
- Have bottlenecks in these key processes been identified?
- Take an Enterprise Agility Assessment
Scaling Agile to DevOps requires enterprises to take a deeper look at the driving need. Business value for enterprises can vary. For cloud-based consumer businesses the business value could come from delivering software to smartphones or the cloud. For enterprise businesses the value could come from delivering high quality software to the cloud or made available for download. In both cases, the frequency at which business value is created could vary anywhere from a few minutes to a few months.
First steps to DevOps
If your enterprise is convinced to pursue a DevOps or Agile Execution strategy, and if there is a strong leadership commitment, here are a few things you should consider doing:
- Identify key processes that create the most business value
- Consider re-aligning your business functions around delivering business value
- Define your DevOps or Agile Execution strategy with clear milestones
- Commit the necessary budget to establish the infrastructure needed
If your enterprise creates business value by delivering world-class software, it’s important to realize that business value consistently and predictably. An organization’s functions have to contribute to adding value to the business, and not to the functional goals. For example, the role of Operations or Quality Engineering teams should look at getting high quality software our of the door as the business demands.
DevOps or Agile Execution can come in different sizes, and one enterprise’s needs could be very different from another’s. Depending on how mature your enterprise is with Agile, you could have shorter milestones to push the envelope. Good unit testing, functional testing and performance testing is one tiny step towards getting Agile.
Having dedicated test environments that run automated tests for continuous testing, having continuous integration (CI) jobs to create build software is the next stage. Based on what the business demands, your enterprise could choose to further the DevOps pipeline to continuous delivery (CD) or go further and do continuous deployment to stage or production environments.
Challenges and Opportunities
As enterprises scale across multiple projects, teams and geographies, one of the most important challenges you face is one of tool chain complexity and data. With developers making commits by the minute, CI jobs creating builds every few minutes, CD pipelines deploying into a multitude of servers every few minutes, enterprises will soon end up with a problem of too much of data.
It’s important that enterprises get into a DevOps or Agile Execution initiative with the longer term vision and invest in the right set of tools. With the right strategy in place and the right tools, enterprises can actively engage with data to improve overall agility. The ability of these tools to offer clear end-to-end traceability and insight across requirements, commits, builds, deployments and servers is key to your enterprise’s continued success with DevOps.