I don’t feel like much of this post actually talked about ethics. It talked about quality, competence, flexibility, and reliability, and assumes that ethical software would have all these things.
That’s not really _ethics_ as I understand the term. Software ethics would do more to plumb the question of, is it ethical for the WebKit team to ship a feature that will make one of Apple’s business goals more viable at the cost of increasing daily energy consumption of the iPhone by 3%? That is actual ethics, not ‘did I make this system easy to extend?’
It's not really about ethics, more about "professional attitude", or perhaps it's about avoiding liability? Here's a quote:
> There have been high-profile calamities caused by software over the past decades. Software developers need to start discussions about what may be done before a disaster happens that takes control out of our hands.
The next paragraph mentions cars, so losing control of something that we apparently do not control at this moment seems to be worse than a disaster with car software?
> You can’t use the excuse that you’re just building a game or a thermostat, so it doesn’t matter. Everything matters. We need to develop the proper emotional attitude to building software; that’s the role of software engineering ethics.
Everything matters? That's a wild take. I don't consider a bug in Farmville of the same gravity as one in a self-driving car, the autopilot, medical device automation, or control over a steel oven, to mention just a few.
What follows in the article is a proposal for a mixture of personal responsibility and a trust chain that can only work when there are laws and penalties, and which will reduce the number of active software developers. By about 95%, I'd say. It would get rid of Farmville, so perhaps there is an upside.
Not sure why you would want this. I know him from the book “Clean Code” and the Clean Code Architecture (not the book, mostly his blog posts on the topic). He oversells his points a bit too often, is IMHO too dogmatic, and I don’t necessarily like his writing style, but his content offers some great hindsight and interesting observations regarding software development.
And worse, people take it all at face value and don't think for themselves.
A lot of the "clean" stuff is completely out of date. It might have been justifiable to insert umpteen independent layers (ooh.. Data Objects -> Domain Objects -> UI objects; mapper mapper mapper!) into your software in the early 90s when everything was a monolith and there were such things as "database teams" and "business rules teams" in order to insulate those parts of the software from each other.
In the age of uServices where the boundary is the API and the context is completely self-contained, it's not just a bad idea it's an actively malignant waste of time.
He makes a career of telling developers what businesses want him to tell them.
In my personal opinion he lacks experience with actual development and skill to even talk about code, let alone good development practices. He is a book author, not a developer sharing his expertise.
A lot of people seem to consider him an out of touch architect astronaut peddling snake oil that doesn't have any relevance to actually writing real software in the real world.
Personally I think he has more misses than hits and everything he writes should be taken with a large grain of salt, but occasionally he hits upon some interesting ideas.
I've been closely following him eversince he first got into the spotlight.
He got famous in the tech community because he's been preaching about tdd and later on clean code before it got widely accepted to be good practice.
Because of this the tech community treated him like a divine preacher and it seems like this got to him and went into his head.
His persona "Uncle Bob" is this wise and all knowing guy who has ideas way ahead of everybody else but like most people he had more misses then hits.
It seems like he's chasing "controversially big ideas" which he presents like they're truths and this can be pretty tiring to read.
Nothing. No one other than the person you're replying to even mentioned cancel culture. A lot of people just think that he gives bad advice and is out of touch with the realities of modern software development.
I hope nobody tries to license or regulate it. It would seriously hinder innovation to have only half the number of developers. I'd be out because you just know you'd have to be able to quicksort on a whiteboard or solve simultaneous equations or something.
Individual ethics are important. But some of the more important decisions are company level though. As a user, I am only minorly affected by code quality... because these days it's largely all pretty good.
What I am affected by is vendor lock in, weird SaaS cloud only stuff, and IoT devices that could be remote bricked at any time.
I also think piloting is the wrong metaphor. We absolutely should put the responsibility on the computers instead of ourselves as much as possible.
Our tools should make it very hard to write bugs. We should have AI and strong types and static analysis watching over us at all times.
And we should have reviews and beat practices and all that too.
If people keep making a mistake, we should teach our computers to catch it.
Programmers have already proven they can't be trusted. Just because you can write good code by "Being real smart and real careful" doesn't mean we can.
I'm also suspicious of personal joy. For programmers that often means reinventing wheels. Even if something is totally rock solid, a lot of coders wont really be satisfied by a day where all they did was string together some NPM libraries.
Programmers like to write suckless style stuff. They like experiments. They like hacks. They like rebuilding stuff from scratch.
They do not like using a 10k line library with real security audits for something they know they could do in ten lines if they sacrifice a few edge cases.
Programmers care way more about code than software. In fact it seems they kind of look down on the world for depending entirely on software. They seem to see the whole modern world as just a nightmare mess of spyware.
They're not going to feel as good about making great software as they would about making the absolute minimum possible amount of software.
But these are all just details, and the idea in general seems great.
Yet, software engineers have no ethics or standards to speak of.
Nonsense - engineering ethics have been discussed, codified, and taught for decades. Why are engineering ethics insufficient to cover building software?
In all industries there are people without ethics, the same happen in our industry. Most people have ethics and standards and I completely agree with you that we should not generalize it.
That’s not really _ethics_ as I understand the term. Software ethics would do more to plumb the question of, is it ethical for the WebKit team to ship a feature that will make one of Apple’s business goals more viable at the cost of increasing daily energy consumption of the iPhone by 3%? That is actual ethics, not ‘did I make this system easy to extend?’