content: Exactly. That is something I have been pointing out to automated shops and trucks and cars. The initial project will be a success but as the equipment ages you get failures that were not part of the original analysis because they were unexpected. And the other thing is incompatibility between the old and new systems. You can't just replace all components, upgrade firmwares,  in one go. So the initial systems needs migration structures in place from day one. Also the software needs to be built for reliably from scratch. But here is where it fails. Shortcuts are taken on new projects because deadlines are are not being met. You must really built upgrade functionality onto the very first devices and here comes the hard part, you have no idea how that upgrade functionality will happen when you created it. WCF services did not exist back then....SSD was black magic,.... But the worst thing of all, is lack of developers that understand quality code. Experiences developers are being overrun by developers that have less than 3 years of experience. When you develop quality code, you must also take into account how you will be able to test it and install it. When you have to work with inexperienced developers then you always have to fight them not to destroy the chances of the project to succeed. The problem is this. Every 3 years the amount of developers/analysts double. This causes that in your team 50% of the people has less than 3 years of experience. 75% of the people have less than 6 years of experience, 87% has less that 12 years of experience.  If you are in a team of 10 people, 9 people will claim that you are doing it all wrong. So the end result will be a failed project because there is no way to defend yourself.