- Topics: 19
- Replies: 47
- Total Posts: 66
Having managed some very large lab developments that include both hardware, firmware and software development, along with the tools needed to do the development, I had to quickly find a solution for this very thing.
I had a dedicated software configuration management team, whose job was to manage the versions of the tools (software development environments) and product software/firmware (what was installed in the processors). Any software/firmware that was to be installed in the environment passed through this team. System admins responsible for installing development tools (IDEs, OSs, etc.) went to the SCM library (we used a tool called CVS) to get the source they needed. Product software developers were required to checkout the code they were working on, then check it back in. The developers weren’t allowed to install product software in the production environment. That was done by the SCM team and only after the appropriate testing and approvals had been obtained. I was able to extend the process down to my first layer of suppliers. The end result was that we minimized the versioning issues you’ve described as well as reduced the number of software discrepancies that made it into the field.
I’m not sure how feasible it is in this situation but it does point out that this is a hard nut to crack without significant discipline, which is always hard when people are involved, and investment in resources.