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 greater volume and 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, the idea of agility has been around, and applied to, CM practices for years. As I hear people talk about continuous integration and builds in an Agile context, it only reminds me that some other CM professionals, as well as myself, have established build processes that support frequent builds or on-demand builds, much like