Carl Sagan once said, “If you want to make an apple pie from scratch, you must first create the universe.” It’s easier to make pie if you just have to go down to the store for the apples, versus creating the cosmos. Software development is the same way.
If your development team expects to create valuable intellectual property, they need an environment that supports their creative process. Creating the development universe (or, configuration management environment) is your biggest contribution to the success of a project. They're making apple pie, and you're making cosmos.
The CM environment gives the development team context to view what they’re working on and how they can work together. Context engenders trust within the development team, putting everyone in a position to do his or her personal best. Notice that I’m saying “environment,” not “CM manual” or “CM procedures.” It needs to be a living-breathing environment, an infrastructure, not just a set of instructions.
You will get better results if you work with your development team to come up with procedures that best support their efforts. People will champion what they’ve helped to create. The team reaches agreement on what needs to be controlled, how tight control will be, which assets you want to control, and how they will be categorized, classified, versioned, etc. Remember, you should use the bare minimum number of procedures necessary to ensure positive results.
Okay, once you have agreement on the how’s, build the infrastructure itself. Again, we’re looking for the minimum level of enforcement required for positive development. If your team is willing, organize your source code library by emulating the architectural hierarchy of the product or system itself. This may drive them nuts at first, but it significantly lowers the learning curve for new team members. It also helps your development team to look at their product in a different way, identify new opportunities for improvement, streamline the spaghetti code, etc.
Everybody on the development team should agree to use this environment and procedures that go along with it. They should be trained to use this environment effectively and most importantly, they should be measured on their environmental compliance moving forward.
Even the best universe needs tweaking (e.g. Our universe existed for millions of years without .NET). New projects provide a good time to look for places to improve, because every project requires a new look at the level of scope and detail that you must manage. Each time a new project starts, take a look at your environment. Does anything need to change?
The CM environment and plan provide the foundation for the CM planning that must occur with each project. Don’t be afraid to tighten or loosen your processes to fit the project. Do you need to store extra design documentation? Have you’ve been asked to create the software equivalent of a widget and therefore your robust change management processes are overkill? A few hours of planning at the beginning of a project makes the difference between an adequate result and an excellent product.
In time, you’ll find that the CM environment fosters creativity and makes it easy to develop, test, fix and release your products. Or, if Carl was here, he’d say that it just makes for really good pie.
Bridget Pilloud is the manager of customer relationships at MERANT and a frequent contributor for Crossroads News. Prior to MERANT, Bridget spent 8 years developing software development and management methodologies for companies in the financial services sector. You can reach Bridget by email at Bridget.Pilloud@merant.com
Trackback(0)
Comments 
Write comment
 |