A good internal developer will notice that requirements are missing, or could be improved, and has the incentive to bring it up with the project manager and get it fixed.
That incentive does not necessarily exist for a consultancy developer, because as you say that means their employer loses money.
My conclusion: Use consultans for very well defined and testable problems that don’t require too much business-specific domain knowledge.
And this is how we get the 737 Max.
The point is the ask for the 737 Max wasn't a "plane that doesn't work." It was for a plane that does work. That was the deliverable. It wasn't met. That is not doing the bare minimum.
You could also apply this weaselly BS to Boeing. Their "ask", if there was one, was to make a plane that customers would buy and that would pass FAA review. Not "a plane that works".
No one's contract just says "make an X that works", even though that's what everyone wants. Because an X that works is hard to define. Fundamentally the system depends on honor and trust. Which is why we despise losers that just try to get paid and fuck the customer.
This isn't rocket science. Think.
If the CDC signed off on it, it isn't deloitte's fault. Sorry.
All you SV elitists do it, you just want to hoard the wealth for yourselves. It's not just deloitte, all the SVs do the same damn thing.
> thinking about the customer, understanding the right technologies, designing for scale, etc.
If they were asked to design something for a customer then they're fulfilling what is asked - e.g., the bare minimum.
The car shop spends months of your time obsessing about the dimensions of the spoiler. Then the car is out of service for as much time and you start wondering what they have been doing.
Then the car arrives and there is a bunch of paint missing around the spoiler, the spoiler is completely unpainted an it falls off when you accelerate to 100mph.
So you ask, "WTF?" and they tell you that none of these things were specified in the contract.
That's more or less how it worked.
I have been contracted for a number of projects and I always assume some level of standard that my client would want me to meet.
For example, around 2003 I have been contracted by a publishing house to restore couple of their servers. Their employees made a mess they were not able to get out of, completely mangled Linux distributions, took out drives out of RAID5 and did not know what to do with them, etc. Drives had files with only copies of texts of books they had so it was extremely valuable to them.
So obviously I did what ANY sane person would do:
- I have discussed with responsible employees what exactly happened,
- We went out on a little trip to buy backup drives
- We made backups of every single drive involved in the mess (I keep saying we because I involved the guys in the recovery so they know how it works)
- We put together the drives and they worked
- We fixed OS-es which they mangled
- We tested that everything works
- We have discussed why they need some procedures and especially backup procedures
- I have showed them how to construct couple of these procedures so that they know how to do that.
I didn't have to do all that. I was already being paid handsomely for the recovery and would not suffer (other than lost pay) if I failed recovery. But I also recognize how important this data was for the company and so I took necessary precautions proportional to how important this.
If spoiler work fails instantly you can say it wasn't done properly, which is true. You then withhold payment, or sue.
Not that complicated. Not worth a damn novel post from you either.