Many say that configuration management is hard. It is. 100% correct, "as the books says" software configuration management is hard. It takes tools, skills, discipline and effort to build and support reliable and effective software configuration management process. It is especially difficult, when there is already some process in place and improvement involves change.
My experience shows that it is particularly challenging when it comes to non-source code items like documentation and release packages. Can you imagine following dialogs with project team members? I can…
Managing source code:
--Is it necessary to follow Configuration Management practices, when you work with the source code? --Yes!
--Do you use source code control system during development? --Sure!
--Would you start coding without SCC in place? --Absolutely not!
Managing release packages:
--Should you manage configurations for you release packages? --Oh, yes!
--The best way to do that is to be able to recreate any version of release package... --Oh, yeah! That's the best way, especially, if you hook this up to automated builds and tests...
--Do you do that? --Well... You know, that requires time to setup. We are so busy with other tasks actually writing software, so we never actually got to that... And, by the way, our existing process is not that bad...
--But still you can get all the previous release packages, right? --Well, I guess so... We have a share where all the releases are uploaded.
--Do you delete files from there? --I think so. When we need to.
--Should you keep track of the versions of all the development-related documents that you've got? --Yes, definitely!
--So you do that, right? --Well... Not exactly... You know SharePoint (or another tool, you name it) is somewhat difficult to use (or setup). We just put the file in a shared folder or sync over the e-mail. When the document is final, we put it into SharePoint.
--I see... But you do change version number on the document each time you edit and keep it somewhere, don't you? --No, not really. Do we need to?..
Generally, the further you get from the source code the worse it gets.
There is a simple, not ideal, but simple remedy to this, which lies in mimicking what source code control system does:
Never overwrite or modify files! Always create new!
After all, we all have got 500Gb drives in our laptops - we have to put them to work.