Live data from Hacker News

I’ve made a conscious effort to stop apologizing for bugs in my code

blog.danslimmon.com

91–100 of 194 posts

Re: I’ve made a conscious effort to stop apologizing for bugs in my code

#91

Bugs are the responsibility of the process that brought them there. In most cases it is shared responsibility. Why doesn't your dentist mess up 1 out of 5 interventions? They have gone through years of strict training and there are giant liabilities in place. In development? A lot of self-taught developers, who can always jump to a next gig because of never-ending demand. This sets up the scene for a totally differen…

Are there 100% medical procedures with 100% success rate?

To me it seems that failures happens pretty often, generally due to incompetence, limitations in the science regarding the problem or insufficient resources. Seems very similar to bugs to me.

The question is how bad is failure, obviously if someone's health is at risk, you have a much bigger incentive to have processes on the safer side.

Maybe you feel "bugs" are more frequent in software because the software you're referring to has an incentive towards innovating rather than stability.

I'm sure if you studied software used in critical systems, the failure rate would be more in line with a procedure at a dentist. You can't justify the kind of cost that kind of development has for most apps.

Re: I’ve made a conscious effort to stop apologizing for bugs in my code

#92

Bugs are the responsibility of the process that brought them there. In most cases it is shared responsibility. Why doesn't your dentist mess up 1 out of 5 interventions? They have gone through years of strict training and there are giant liabilities in place. In development? A lot of self-taught developers, who can always jump to a next gig because of never-ending demand. This sets up the scene for a totally differen…

I believe the answer to your question of why developers don't generally treat quality the way dentists do is one of economics.

The world needs enough software, and the world's requirements for quality are low enough, and the average developer writes reliable-enough code, that in most cases money can be made without special attention to quality.

In some domains, quality is paramount. I imagine that quality and bug mitigation are the primary concerns of someone who manages, say, an X-ray machine firmware project, or avionics software. Software for these purposes that is not extremely reliable cannot compete in that market. For other kinds of software people are paid to write -- like social networks for pets -- reliability is a much lower priority.

Certain kinds of software needs to be rewritten constantly to meet the demands of highly-evolving markets. Games are an example of this. Reliability is important, but not paramount, because the underlying business can only continue to compete by at some point stopping work on the reliability of existing games, and moving on to developing new games.

I'm sympathetic to the respect you have for the value of high quality software. But the reality is, the value of quality varies dramatically within the software industry -- much more than it does within, say, dentistry, or medicine, or aviation.

Fewer bugs isn't necessarily the primary concern of those using and buying any particular kind of software.

Re: I’ve made a conscious effort to stop apologizing for bugs in my code

#93

Earlier quoted context omitted.

And yet my house has never caught fire due to a miswiring or got flooded due to a misplumbing but let me not even count the ways in which software has failed me. Maybe there's a reason you rarely hear one category apologizing and hear the other category coming up with excuses.

Plumbing and electrical doesn’t change all too often. Once you learn the ins and outs it doesn’t change much over your career. Not the case with software development.

And when they do change there are very straightforward guides to the changes, when and where you can/should/must use new materials, and so on.

Re: I’ve made a conscious effort to stop apologizing for bugs in my code

#94

Why do software engineers constantly try to project that they are a special snowflake of a profession? Would you accept such nonsense from your plumber, or your dentist, or your electrician? Software engineering is one of the most fundamental building blocks of modern civilization, and yet it continues to be so fragile because of this kind of cavalier attitude. Also, apologizing doesn't mean you have a moral failing.…

When you design a hammer and sell it to the end user, there are limitations on how they can use it. You simply cannot encompass and address every situation that the end user would subject the hammer to. What if they left the hammer in a hot 1500 C oven? The designer cannot design it such that it can universally work in every situation. There are usage guidelines and limitations.

A hammer that melts in a furnace is considered a bug?

The possibilities and test paths a piece of code can possibly take exceeds a very large number in a complex software application.

Re: I’ve made a conscious effort to stop apologizing for bugs in my code

#96
> Through this lens, apologizing for bugs may seem innocuous. But it contributes to a bunch of cultural anti-patterns:

> * If you’re a more senior engineer on your team, the effects of these anti-patterns are magnified: people see you apologizing for bugs, so they think that they should be striving to write bug-free code.

Imagine writing this. Imagine actually sitting down at your keyboard and writing down that people should not be striving to write bug-free code.

Re: I’ve made a conscious effort to stop apologizing for bugs in my code

#97

Why do software engineers constantly try to project that they are a special snowflake of a profession? Would you accept such nonsense from your plumber, or your dentist, or your electrician? Software engineering is one of the most fundamental building blocks of modern civilization, and yet it continues to be so fragile because of this kind of cavalier attitude. Also, apologizing doesn't mean you have a moral failing.…

Everything exists in an economic context. Errors in plumbing, dentistry, and electrical work can result in thousands or hundreds of thousands of dollars in damage, and they often can't roll out a fix in a matter of hours. Some software bugs can also result in lots of damage (financial/health data security, etc), and we do take those bugs seriously via compliance (although compliance isn't a guarantee for good software just like it's not a guarantee for good dentistry). But no one is going to pay for the effort required to perfect every software release, nor should they.

Re: I’ve made a conscious effort to stop apologizing for bugs in my code

#98
post #56

Earlier quoted context omitted.

And yet my house has never caught fire due to a miswiring or got flooded due to a misplumbing but let me not even count the ways in which software has failed me. Maybe there's a reason you rarely hear one category apologizing and hear the other category coming up with excuses.

> but let me not even count the ways in which software has failed me. Failed you? This sounds either very entitled or sensational. Has software caused you major grief in any way financial or the loss of limbs or loved ones? While this happens, very few people are affected by bugs in such a way, at least confirmed.

When someone pays for software, they are perfectly entitled to expect it to be fit for purpose. Failures don't have to cause major grief for me to be justifiably irritated and to expect redress. A conscientious developer should apologize for wasting people's time or selling them products that don't do what they are supposed to.

Re: I’ve made a conscious effort to stop apologizing for bugs in my code

#99
Here's a thought experiment.

You write some code and a code reviewer points out that you used an API incorrectly, which you did because the documentation and test environments are out of sync with the production API. You will, of course, modify your code to use the API correctly, but will you "apologize"?

Now again, you call the API incorrectly, but your company doesn't do code reviews and they just ship the code. Your code ends up causing a lot of headache for everyone after it runs in production for a month doing the wrong things. Do you "apologize"?

Note, what you did is exactly the same in both scenerios. Should you apologize? Are you the only one who needs to apologize? Should everyone apologize? Like, do you all sit in a room together and go through a strange routine where everyone around the table takes turns saying "I'm sorry".

I'm surprised by all the disagreement over this post, so I wonder what people would think of these scenarios.

Re: I’ve made a conscious effort to stop apologizing for bugs in my code

#100

Why do software engineers constantly try to project that they are a special snowflake of a profession? Would you accept such nonsense from your plumber, or your dentist, or your electrician? Software engineering is one of the most fundamental building blocks of modern civilization, and yet it continues to be so fragile because of this kind of cavalier attitude. Also, apologizing doesn't mean you have a moral failing.…

> Would you accept such nonsense from your plumber, or your dentist, or your electrician? This would be a reasonable comparison if 90% of software developers could reliably produce bug-free code. This would be a (maybe less) reasonable comparison if 75% of software developers could reliably produce bug-free code. This would be a middling comparison if 50% of software developers could reliably produce bug-free code. T…

Everybody makes mistakes, but that's no reason to never apologize.
Post reply on HN