I never worked in a commercial environment as such, working in an internal IT Dept in a local authority - we were always tasked with replacing current manual / computer processes with an 'improved' IT process, using the hardware currently available and the current development environment.
We always believed that the outside developers and consultants were out for the quick buck and the massive costs of future maintenance. I am glad to hear that at least one or two consultants saw the obvious answers to the customers' problems - seems a shame to lose a job over offering the simple and correct solution.
I believe we ourselves, in our own quiet and unsophisticated way, managed to achieve 'customer satisfaction' in the vast majority of projects - although sometimes the customer didn't really know the extent of what could be (honestly) achieved using technology and we sometimes more-or-less lead them by their noses into a technology solution to their problems.
I also think that users (customers) didn't quite catch on to the 4G programming languages meant to let them have their own input into the actual programs or subroutines. The programmers couldn't stand the 4G languages either as they weren't powerful or detailed enough to actually answer the users' needs. We always had to write real code and not pseudocode!
Retired now, I tried C++ for a few 'batch' programs in the last few years, found it difficult, never developed anything for FS itself with it. I really think that the simplicity of XML spoils me in that I can potter around and develop a gauge of my own in a very short length of time (though I probably then spend hours redeveloping it, adding and subtracting - never really happy that it is complete).
If I had written down my requirements properly at the start then I could have matched the output with those and signed off on the development and paid myself some exorbitant sum!
Anyway, we loved our users! (lying through my teeth - I don't know what smiley covers that)
Walter