I recently (let's say couple of years ago) worked on a project where multiple teams were delivering features by attempting to follow Agile DevOps model. At a fairly low level of maturity (seemed like it was their first exposure to DevOps mindset), teams ended up delivering mostly half-baked increments (I was very careful here not to mistype it as 'excrements').
That in itself is not surprising (cannot realistically expect high quality delivery from low grade skills), however one thing caught my eye -- no matter how botched the delivered increment was, no one seemed accountable for the defects. The way stakeholders reacted to critical 'severity one' bugs in production was uncanny. They merely shrugged and asked the teams if they could please give it another try!
It seems like many software engineering efforts are being conducted under the arrangement (tacit, of course) that there will not be any limits on how many times they are allowed to retry. What's even more shocking, the unlimited retries clause applied even to re-entrant bugs! When the bug gets discovered in production, teams are assigned to fix it. The fix then goes in, everything looks okay, problem solved. But the real mind-boggling situation occurs when, after a few increments, the exact same bug makes its way back into production.
No matter how we look at it, re-entrant bugs are a very clear sign that the team working on the product lacks competence to engineer the product properly. And the clincher is that, instead of addressing that lack of competence, stakeholders seem content with merely asking the team to try again.
I'm trying to think hard here; is there any other profession where you keep delivering botched product/service, and yet suffer no consequences (other than being asked politely to please try again)? Nothing comes to mind. Seems like software engineering is the only such profession. As such, it is the most relaxed, no consequences, no repercussions profession in the world.
Unlike medical, engineering, education, legal, politics, etc. professions, where one can easily get sued for malpractice, software engineering is blissfully unburdened by any malpractice concerns.
I can already hear people retorting: "That's not true. If a software engineer continues with delivering botched products, they will get fired."
Yes, perhaps they will get fired. But that's the only negative consequence of their incompetent actions. And it's a minor one, because that same incompetent software engineer will just walk across the street and get another job. And continue with their malpractice, without anyone being able to do anything about it.
To my knowledge, all other industries and professions are, to a larger or lesser degree, regulated. There is a codified set of expectations for any professional activity. Except for software engineering. In the world of software, anything goes.
We can cobble up any dinky, wobbly app and put it on the market without having to satisfy any regulatory code. The only possible negative repercussions our app may suffer in case of malfunctioning is bad press. Even then, no one can revoke our license to make more of such shoddy, harmful software products.
Maybe it's high time for our society to start regulating software engineering? Share your thoughts on this issue in the comments. I'll be reading them and will try to reply.