What Is the Real Difference between Software Configuration Management and Hardware Configuration Management?

So, from a CM perspective there are many differences between SCM and HCM. Consider how we track the problem and it’s resolution. In hardware, you may track the problem against the defective part; in software, you do this against the generic functional category. Your process must allow you to deal with hundreds or thousands of software problems each month. You would likely have difficultly processing that many hardware changes.

Software problems are usually allocated a fixed cost (or fixed cost per phase found), or perhaps a high, normal, or low cost after a quick analysis. Hardware problem fixes have their costs detailed after a thorough analysis. Additionally, unlike hardware, software tools result in the biggest cost of most problems (after problem impact costs) found in reproducing the problem. Fixing is relatively cheap—even delivery.

We could use the same CM tool for problem tracking in both cases. But the processes have to be different. And whereas you may try to attain zero-defect hardware, your goal in software will be to move from 1000’s to 100’s to dozens of problems per million lines of code per month.

I've barely scratched the surface in this article. There are significant differences between hardware and software development that require substantial process differences in order to adhere to the core principles of CM. Just because hardware doesn't do it the same as software or vice versa, does not mean that one or the other is not adhering to CM. Still, there is much to be gained by focusing on the similarities in process and bringing them even closer together.

Hopefully an understanding of the differences will lead to a clearer understanding of the similarities.

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