Adapting the Agile Mindset to Software Configuration Management

Summary:
With the advent of agile in the mainstream, it raises awareness of the challenges in getting software configuration management functionality established that suits the working processes of Agile methods. While not necessarily new to some software configuration management professionals, the primary challenge is how to adapt CM practices in a tangible way that supports Agile values while not discarding the CM values that ensure integrity of the product under development.

Applying Agile methodologies and practices effectively requires a mindset shift.  Some people gravitate to it because it seems the natural thing to do while others struggle.  Having an Agile mindset is even more important when you have to support teams that have implemented or are planning to implement Agile.  And these days, Agile methodology usage continues to grow more and more in the software development industry.

With the advent of Agile in the mainstream, it raises awareness of the challenges in getting CM functionality established that suits the working processes of Agile methods.  While not necessarily new to some CM professionals, the primary challenge is how to adapt CM practices in a tangible way that supports Agile values while not discarding the CM values that ensure integrity of the product under development.

Understand that Agile methods have a direct impact on CM actions.  With Agile comes a greater volume and an increased velocity of change.  This is reflected in smaller increments of work that introduce more check-out and check-in, builds, and incremental releases.   These more frequent changes must be facilitated in a controlled manner to ensure integrity of changes.  CM brings order and control to the world of Agile, an order that can be counted on, repeated with integrity so that Agile professionals can focus on the high value tasks of building and delivering functionality for the customer.  The key is finding the balance that allows you to stay on the track while maintaining a higher velocity and volume of change.

For some CM professionals, notions of agility have been around and applied into CM practices for years.  As I hear people talk about continuous integration and builds in an Agile context, it only reminds me that I and some other CM professionals have established build processes that support frequent builds or on-demand builds much like continuous integration, but in this case in the early 1990s.  After all, CM is an enabler for change and can be adapted to the context and method it works in.  CM professionals may have been working in more traditional methods, but it never stopped us from streamlining and automating build processes or introducing ways to make change easier. The more you automate and stream-line, the more work that can be done and the more time we have to focus on new value-added work.  From the perspective of the CM professional, bringing value to our customer is important.  In all cases, CM professionals should engage with their customer which in this case is the Agile team to understand their needs, understand the technologies they use and the methods and practices they follow.  I have found this an effective way to gain CM adoption and build a strong relationship with Agile teams.

To this end, it is important for both Agile professionals and CM professionals to understand the mindsets of each.  Let us take a look at both an Agile mindset and a CM Mindset.  While this is not meant to be an extensive list of viewpoints of each mindset, it will provide an insight into each with the hopes of both Agile and CM professionals understanding each other and working effectively together.

Agile Mindset
Agile thinkers bring a different frame of mind to their work.  In the traditional methodologies, the world is rigidly planned with very specific milestones, changes are typically constrained, and there is less of a sense of ownership.  In Agile methodologies, the world is much more fluid, changes are dynamic, and there is more self-empowerment and ownership.   Traditional methodologies use more of a phased-based approach while Agile methodologies use more or an

About the author

Mario  Moreira's picture
Mario Moreira

Mario Moreira is a Columnist for the CM Journal, a writer for the Agile Journal, an Author, an Agile and CM expert for CA, and has worked in the CM field since 1986 and in the Agile field since 1998. He has experience with numerous CM technologies and processes and has implemented CM on over 150 applications/products, which include establishing global SCM infrastructures. He is a certified ScrumMaster in the Agile arena having implemented Scrum and XP practices. He holds an MA in Mass Communication with an emphasis on communication technologies. Mario also brings years of Project Management, Software Quality Assurance, Requirement Management, facilitation, and team building skills and experience. Mario is the author of a new book entitled “Adapting Configuration Management for Agile Teams” (via Wiley Publishing). It provides an Agile Primer and a CM Primer, and how to adapt CM practices for Agile Teams. Mario is also the author of the CM book entitled, “Software Configuration Management Implementation Roadmap.” It includes step-by-step guidance for implementing SCM at the organization, application, and project level with numerous examples. Also consider visiting Mario’s blog on CM for Agile and Agile adoption at http://cmforagile.blogspot.com/ . You may reach Mario by email at Mario.Moreira@cmcrossroads.com.