Live data from Hacker News

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

blog.danslimmon.com

21–30 of 194 posts

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

#21
post #11

He says that this is a fallacy: > It reinforces the idea that any one person or piece of code can be blamed for a given failure. Why is that a fallacy?

Probably because there is always a bigger picture: culture, process (e.g. testing, code review, time pressure, feature centric performance metrics). Surely, the person making the mistake is the proximal cause for a given bug, and surely all other things being equal personal attitude matters (i.e. a more careless person is going to make more mistakes), but if you zoom out to the big picture you see other responsibilit…

Understood. Thanks for the explanation. I have to say I don’t intuitively like the position, because taken broadly you could conclude that no-one in an organisation is ever personally responsible for their actions, because some system should have prevented the mistake. This feels wrong

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

#22
If you fuck up I don't really care about an apology. I want to know:

  1. How will you fix it? 
  2. How will you prevent it from happening again?
An apology, in my head atleast, is for when you have caused emotional distress to someone and there isn't much you can physically do to fix it other than to convey how you now feel about what you have done. When you make a practical mistake an apology is implied by you fixing it.

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

#23

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.…

I have never heard of a plumber, dentist or electrician apologizing for anything - unless you count court orders...

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

#24

Would you be ok with your dentist being OK with her slip-ups? “I really should have checked the x-ray better before I extracted your front tooth. But you know, I’m not sorry. It was an external constraint — there was a queue of patients waiting”. I can’t believe how low we let this profession sink. I hope in 15 years we will look at thies era like we look at the Wild West today. Exciting from a distance but nobody wo…

This comparison is like comparing apples to oranges. I believe we need to get the "context" before judging any situation.

What I think should be common in these two cases is the attitude of a professional towards their work.

Building software should be an engineering discipline with all its perks and responsibilities just like building bridges. We rarely see it and it propagates to the craftsmen who seriously believe that good quality software is impossible to write under the slightest of constraints. Like business pressure.

We had this ability in the past when programming was way more difficult, tedious and error prone. Look what IBM did with their “Clean Room” approach. I’m sure we still have it at many places but we choose to spread the myth that it cannot be done. This call to stop apologizing is the next step towards not even trying.

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

#25

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.…

Sure you have a point, but then I do not force my plumber to do his job in far less than the time required, keep changing the plumbing requirements and make him start before the final requirements are seven known.

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

#26

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.…

I have never heard of a plumber, dentist or electrician apologizing for anything - unless you count court orders...

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.

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

#27

As a manager, I've always striven to apologize for my errors. I do agree that errors are unavoidable and are bound to happen. That's why I actually never cared at all whether programmers apologize for bugs. Fixing bugs is also part of the software development process after all. However, I've always believed an apology is important to show humility to my team mates. As a manager, I do not want to appear entitled. Of c…

I'm a manager and I appoligize if it was a stupid mistake made from carelessnes. Apologize if you did something you wouldn't want other people doing.

I think context matters too. The industry you're in (what are the consequences of bugs) as well as the part of the codebase (presentation or data integrity) change the acceptability of bugs.

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

#28

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.…

This is not a cavalier attitude. The article is not minimizing the harm caused by bugs. It is attempting to direct the blame away from individuals and towards systemic causes of defects. This is necessary to be able to effectively address them.

"Just be more careful" has pretty much proven not to be a successful strategy to reduce defects.

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

#29
post #25

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.…

Sure you have a point, but then I do not force my plumber to do his job in far less than the time required, keep changing the plumbing requirements and make him start before the final requirements are seven known.

What makes you think only software engineers face time and planning constraints?

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

#30
Shipping with bugs is not an inevitability. Bugs come from code being used in cases other than the ones that the programmer anticipated. But it is possible to understand how code will be used. You can test against it, either manually or with some automated testing tool. And you can produce code that behaves the way you expect it to every time you run it. Every once and a while you might mistype >= as But you first need to believe it is in your own power to write less buggy code. If you can identify patterns that frequently produce bugs, you can try to avoid them (e.g. copying & pasting: very buggy!). You can identify, isolate, and document footguns and complex API. And you can be proactive in simplifying systems when feasible to do so.

Don't beat yourself up if you accidentally have a bad commit, but don't excuse sloppy behavior. Demand better from yourself. Don't produce garbage software.

Post reply on HN