glad to see, you didn't get me wrong !!!!
Let me give an realworld example.
At the beginning of last year my company decided we need a system to manage our mutual funds, because our unit-linked products grow both in size and importance.
Now, because I live in both worlds, I said ok, I will do this.
Our management was concerned what might happen when I leave the company, who will be there to care for the system, who will know what the system does....
So they decided to give this to a third party software company. The requirements were SQL Server as DBMS and VB6 as programming language (I wouldn't have done anything else, btw).
Then, the programmer arrived and stayed two weeks with us to get the idea what we want and what functionality this system needs to have.
Now, this programmer was
- not familiar with SQL Server (first project with this DBMS)
- not familiar with VB (first project with VB)
- had no clue about overall treatment of assets like book-keeping and alike
I had to do that much overtime to explain our requirements to him, that I would have been far better off doing this by myself.
Now one and a half year later, the system is in production and it is close to collapse. There is that much garbage in that db, the general responding times are unacceptable and overall performance is poor.
Management realized this and now guess whom they ask to look at bugs???
After all, this funny exercise was at a cost of some 60k Euros.