RSSSubscribe now to receive the latest on Application Release Automation, DevOps and more.

12 Steps to Better DevOps in the Enterprise

As organizations make the shift to DevOps, best practices are constantly being questioned, updated and qualified. In an homage to “The Joel Test: 12 Steps to Better Code“, Michael Elder adopted the list as it applies to DevOps.  So without further ado:

12 Steps to Better DevOps

For those that follow Joel on Software, you may be familiar with his blog entry “The Joel Test: 12 Steps to Better Code. While authored way back in 2000, its content and statements are still relevant today. As people tried to understand Agile, the 12-step test provided a simple litmus test of concrete actions to help improve your over all software delivery.

Roll forward nearly a decade where DevOps is seeking to drive similar improvements to how operational aspects of software are delivered, managed, and maintained over time. Many people have explained their view of DevOps and what it takes to “live DevOps”. I’d like to propose a similar set of concrete actions like Joel did for software to help explain my view of this topic.

Ultimately, DevOps is about trust. Trust between the Business & Development. Trust between Development and Operations. Trust among these groups enables the organization as a whole to be more agile and to better manage risk.

So how do we build trust? Consider the following 12 steps:

  1. Do your developers and operators communicate the production realities and the application’s requirements?
  2. Do you version deployment configuration and scripts along with your source code?
  3. Do you have patterns for platforms and applications, designed jointly by development and operations?
  4. Can your developers launch and destroy production-like environments from those patterns?
  5. Are your patterns based on reusable deployment configuration scripts?
  6. Can you deploy an environment (platform and application) in one step?
  7. Do you deploy your applications daily into production-like environments and verify them?
  8. Do you link bugs and work items to changes in the application and configuration?
  9. Do you associate tickets for production issues with relevant bugs opened for development to fix?
  10. Do you have automated tests to validate your application and platform function and characteristics?
  11. Do you monitor software against expectations after deploying your application?
  12. Do you have a delivery pipeline exposed through a summary dashboard to assess delivery velocity?

What do you think? Will these 12 steps help your organization achieve DevOps?

Click here for the full article and complete descriptions of each of the 12 steps to better DevOps