|By Pete Pickerill||
|February 1, 2014 01:00 PM EST||
Recently, the Agile Austin DevOps SIG invited Datical to talk about the impact of DevOps practices on database change management. This was a great opportunity for us to talk to folks about our approach to managing application schema change in IT organizations that have moved or are moving to more responsive and agile planning, development, and delivery processes. It was a lively discussion with some great feedback from the audience.
In framing the discussion, I relied heavily on "The Three Ways" of DevOps. The Three Ways are the principles that underpin the DevOps patterns that Gene Kim discusses in detail in his novel "The Phoenix Project" and in the"The DevOps Cookbook", written by John Allspaw, Patrick Debois, Damon Ewards, Jez Humble, Kim, Mike Orzen, & John Willis. Here's a quick summary of The Three Ways:
- The First Way: Systems Thinking - This Way stresses the performance of the entire system of value delivery. Instead of becoming laser focused on the part of the process for which an individual or team is responsible, the individual or team works to understand the entire process from requirements generation to customer delivery. The goal is to eliminate the delivery impediments that arise when a project transitions from one isolated silo to another. Understanding the entire system allows business, development, and operations to work towards a common goal in a consistent manner.
- The Second Way: Amplify Feedback Loops - This Way deals primarily with facilitating easier and faster communication between all individuals in a DevOps organization. The goals of this step are to foster better understanding of all internal and external customers in the process and to develop an accessible body of knowledge to replace the dependence on "tribal knowledge."
- The Third Way: Culture of Continual Experimentation & Learning - This way emphasizes the benefits that can be realized through embracing experimentation, risk taking, and learning from failure. By adopting this kind of attitude, experimentation and risk taking lead to innovation and improvement while embracing failure allows the organization to produce more resilient products and sharpen skills that allow teams to recover more quickly from unexpected failure when it does occur.
Database change management is a unique challenge when adopting an agile development practice or implementing DevOps patterns. It really straddles two groups: the developers and the DBAs. Developers design and author the application schema changes based on the needs of the business. DBAs are on the hook for providing a secure and high performing data platform and protecting the integrity of the organization's priceless data. In companies where these two groups are isolated, the goals of each can soon become opposed and forward progress can grind to a halt. Because of this unique division and its impact on the application lifecycle, implementing DevOps patterns to nurture understanding and collaboration between these two groups is crucial to the success of companies that are trying to adapt to a market that expects better value of services provided, through more frequent releases at a high level of quality.
I will dive more deeply into each of the Ways as they pertain to the database change management in subsequent blog posts. Until then, checkout Gene Kim's blog post on "The Three Ways."