This goes along in the hall of fame with the "how hard can it be", Turns out, if you want to do it right, more often than not, very hard.
Alas I'm not one of those engineers, but I'm fortunate enough to work with some.
It also depends on the requirements, and what the actual thing you want done. For software, sure you can probably patch it and there are some inconveniences you can live with depending on the clients requirements, for hardware... a little bit tougher... But it still depends on what is being done and what are the constraints, as long as people are reasonable, usually, it works out... Except that people rarely seem to be reasonable...