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.