I recommend everyone watch Martin Fowler's 2014 talk, which was given to its original audience without a title, and the title was then explained and introduced at the end.
It's called Not Just Code Monkeys.
Watch it first, and I have only two things to add, after you've watched it:
1. I think that Martin Fowler's idea that we as developers need more of the attitude that formally licensed Engineering disciplines (Electrical Engineers, Mechanical Engineers, Civil Engineers) have, even though I am (like Fowler) a bit skeptical of formally licensing software developers.
2. I think that software developers can be agents of social progress, and like Martin Fowler, think we have a duty to not co-operate in immoral and evil actions carried out with software. Bob Martin, another software developer and conference speaker I greatly admire, recently blasted developers who would, for example, do what the developers in the Volkswagen emissions scandal clearly did; To do something that they ought to have known was wrong. Sure, the bosses at the company should be held accountable. But it took technical skill to carry out that fraudulent activity, and engineers were complicit in the evil that was done.
Don't be evil. And don't put your head down and just think of yourself as someone who slings code. You can make the world better. Or worse. Which will you do?
Update: A more recent example of evil in firmware: John Deere tractors now contain firmware which effectively blocks farmers from repairing their own tractors. Their license agreements also say that you don't really own your tractor, you just have a license to use it according to their terms and conditions. This (rightly) angers a lot of farmers. You wouldn't catch me implementing that kind of crap in an embedded system. It's evil.
It's called Not Just Code Monkeys.
Watch it first, and I have only two things to add, after you've watched it:
1. I think that Martin Fowler's idea that we as developers need more of the attitude that formally licensed Engineering disciplines (Electrical Engineers, Mechanical Engineers, Civil Engineers) have, even though I am (like Fowler) a bit skeptical of formally licensing software developers.
2. I think that software developers can be agents of social progress, and like Martin Fowler, think we have a duty to not co-operate in immoral and evil actions carried out with software. Bob Martin, another software developer and conference speaker I greatly admire, recently blasted developers who would, for example, do what the developers in the Volkswagen emissions scandal clearly did; To do something that they ought to have known was wrong. Sure, the bosses at the company should be held accountable. But it took technical skill to carry out that fraudulent activity, and engineers were complicit in the evil that was done.
Don't be evil. And don't put your head down and just think of yourself as someone who slings code. You can make the world better. Or worse. Which will you do?
Update: A more recent example of evil in firmware: John Deere tractors now contain firmware which effectively blocks farmers from repairing their own tractors. Their license agreements also say that you don't really own your tractor, you just have a license to use it according to their terms and conditions. This (rightly) angers a lot of farmers. You wouldn't catch me implementing that kind of crap in an embedded system. It's evil.