Caring about ethics is too old fashioned for software "engineering," reputation is maintained by someone else, software developers tend to think the law happens to other people and HAHAHAHAHA.
Engineers at a known european auto maker created a solution to defeat car emissions tests. As a result, there were cars on the streets that polluted hundreds of times more than a regular car.
Delivery and ridesharing apps have algorithms that are almost indifferent from tip skimming. Many people working on those platforms live in financial hardship.
In an east asian country, people live under constant surveillance: physical (cameras, face detection), financial, and online activity. If you criticize the government you lose access to everything: payments, transport, credit, job, etc.
If you were paid a lot of money, would you implement those "solutions"?
You are trying to convince me that ethics are important. I already believe that. You perhaps might try to convince me that companies care about that, but you started off with a bunch of counter examples.
In addition to the ethical aspects of the product, I would add, that I always ask myself, "if I was laid off today, can I use my current job to get another job."
I worked at a company where the the work I was assigned was undermining my career to the point that if I didn't do something on the side, I wouldn't be able to pass an interview.
So while the business aspect is important, it is not the only thing that matters; it never is.
Definitely. Thanks for pointing out the gaps. I will revisit this list in some time, and make changes based on feedback.
If you can, feel free to contribute through the shared github link.
Your post comes off as if the author is purposely avoiding these topics. No doubt they’re important, but while many software people will look at a company’s reputation or take ethics for granted (in the sense that of course it’s important), many software people, especially juniors, don’t stop to think about the business value of spending X on Y. Everything has a cost - for example, spending the extra time optimizing your code has a cost. Value is what you want to produce at the end of the day, not a grand architecture or extremely optimized code. Those may or may not be a means to an end. That’s not to say you should ignore ethical or legal consequences. I don’t think people generally want to break the law.
People generally don't want the company to lose money either. Many ethical and even law violations happen for the same reason you gave: they don’t stop to think about it. Ethical and legal consequences are not always obvious.
...that's about it.