I don't see any way out of this loop except for penalizing bad business behavior (on an individual level) heavily while protecting engineers who fight them.
I don't see any way out of this loop except for penalizing bad business behavior (on an individual level) heavily while protecting engineers who fight them.
Programmers should have a similar guild/organization that medical doctors do, and people who abuse the ethics should be barred from practicing.
1) Doctors, surgeons, engineers (actual professional engineers, not people with comp sci degrees who call themselves engineers), lawyers, etc. are called professionals because they have professional colleges of their peers that oversee things like ethics and can revoke licenses, etc. They're self-regulating.
This works because for things like medicine and engineering and law, there is a large barrier to entry. You have to go to a recognized school and pass an ethics/comprehensive exam. This isn't so with programming. There's almost no barrier to entry.
Any kid can open up a tutorial on MySQL and call themselves a back-end engineer. Unless the software industry is willing to require formal qualifications on all their hires, this will remain a problem.
2) One of the great things about software is the democratic aspect. Software is great precisely because any random kid can open up a tutorial and notepad.exe and start writing code. To rectify problem #1, you'd to a certain extent kill the democratic nature of learning which is a large part of why many people are in the industry today. I also think that a large portion of people who work in software would be highly resistant to this sort of thing, to say nothing of the difficulty of enforcing ethical behaviour if you can't see what's going on due to proprietary licensing and obfuscation.
Anyone could have called themselves a doctor-analogue 100 years after the invention of "medicine", too.