The Next Generation of Agile Configuration Management

the file stay down to earth rather than growing astronomically, and your CM tool may like that.

File ownership for quality.  
Did you ever work in a car wash? How much attention did you give to each car?  Now when you're cleaning you're 1972 Mustang do you give it the same level of attention or more?  Code is something created.  The creator has pride in his/her creation.  Don't destroy that pride by making it open season on everyone's code.  File ownership does not mean that the owner has to make all the changes - just that the owner has the responsibility and authority for the design of that code on an ongoing basis.  The owner reviews all changes at a minimum.  The CM tool can help support and enforce file ownership, ensuring that the otherwise "open season" agile process does not degrade code quality.

Run-time Configuration.  
In the haste to get the product out the door, data is hard-coded into source code files. This may make changing the data more difficult, but the real crunch comes when product variants are produced by having variant files with different values of the hard-coded data.   This can be a CM nightmare if there are many variants along different axes.  Work from the outset at a strategy to make data run-time configurable.  This does not involve more code (usually less in fact), but does require an architectural decision up front to allow data to be run-time configurable.  The result is that code is written with that assumption.  Allocations are done as required rather than up front, thus making use of changes to the configuration parameters.  Variables that can be changed through the user interface are used rather than hard-coded "#define" statements.  Slightly different algorithms are
used to support some dynamically changing values at system start-up, or even throughout the life of the application, rather than assuming static values.  The amount of flexibility not only reduces the CM load, but speeds up the design as the decision on what the hard-coded values should be can be deferred to the product team.

agile is Just Good Design and Common Sense
Now go through all of these factors and tell me which ones you would not want to take advantage of if you weren't looking at creating an agile CM Process.  Are you surprised?  agile software development and agile CM are just good common sense practices with some terminology for wrappers. So even if you're not looking for an agile CM Process, I might recommend that you read this article and the other related articles anyway.  It just makes sense.

About the author

Joe Farah's picture
Joe Farah

Joe Farah is the President and CEO of Neuma Technology and is a regular contributor to the CM Journal. Prior to co-founding Neuma in 1990 and directing the development of CM+, Joe was Director of Software Architecture and Technology at Mitel, and in the 1970s a Development Manager at Nortel (Bell-Northern Research) where he developed the Program Library System (PLS) still heavily in use by Nortel's largest projects. A software developer since the late 1960s, Joe holds a B.A.Sc. degree in Engineering Science from the University of Toronto. You can contact Joe at farah@neuma.com