Live data from Hacker News

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

blog.danslimmon.com

101–110 of 194 posts

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

#101

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

There are perhaps two parts to an apology. One is an acknowledgement that you did something wrong, and that you should not have done it. The other is a sort of ritualistic, performative (in the original sense!) use of language that may make someone feel better. This is the difference between:

"I made a mistake when i dereferenced that null pointer"

and:

"I'm sorry i dereferenced that null pointer"

I absolutely agree with you that the ritualistic part is pointless, and perhaps harmful if it is performed instead of actually fixing the problem (see also "thoughts and prayers").

But i wouldn't want to stop doing the acknowledgement part.

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

#102
post #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 peopl…

The article sounds much worse if replace "bug in code" with "made a mistake at work". Imagine if we're talking about a civil engineer, an electrician, or a doctor.

I agree with you, it's outrageous. What an awful article. I get the point (you should have robust and multi-layered quality systems) but just the complete rejection of accountability is embarassing.

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

#103

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

> You write some code and a code reviewer points out that you used an API incorrectly, which you did because the documentation is out of sync with the actual API. You will, of course, fix the mistake, but will you "apologize"?

If it was feasible for me to catch the erroneous API behavior through testing, before code review, I would see no reason to not apologize.

Your second scenario is not even remotely ambiguous, of course I'd apologize if I caused other people that much hassle.

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

#104
post #67
post #58

Earlier quoted context omitted.

Yea, this is a really bizarre article. >It reinforces the idea that any one person or piece of code can be blamed for a given failure. That can absolutely be the case. How could it not sometimes be the case? >Short of malice, this is never the case. Never? Outside of somebody deliberately harming a system, there has never once been such an instance? >It gives the impression that, when you wrote the code, you should h…

I think the important point is to let go of ego issues. A bug is a technical problem, how do we address a technical problem? By being level-headed and not playing the blame game. Being sorry doesn't add any relevant information and generate a strange atmosphere, like admitting a moral failing really. Any matter of substandard performance is better dealt by the management, well outside the scope of bug fixing.

Refusing to accept responsibility for your own errors is more an ego problem than the alternative.

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

#105

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

>Why do software engineers constantly try to project that they are a special snowflake of a profession?

I agree but this point is orthogonal to the main point. Plumbers and electricians build to code in an environment where physical reality remains constant and they operate on expected inputs. A civil engineer is not held to account for a failure if gravity suddenly reverses itself. If I shock a circuit board with static electricity and it fails is that an electrical engineer's fault? If I put 20,000 psi through a household plumbing system and it fails is it the plumber's fault? These designs are only expected to operate in a narrow range on a small number of expected inputs / variables and that is easier.

Software can basically expect infinite permutations of inputs at any time and is expected to give good outputs and no bugs 100% of the time?

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

#106
post #53
post #15

Well there are multiple kinds of bugs. You did not test it? Apologize. You were sloppy? Apologize. In most other cases I can agree with the author. All I can add is that, as a freelancer, I always explain (like they are 5) what went wrong. My customers don't care about the details but they like it when they know I made an effort of creating good software (bugs included).

> You did not test it? Apologize. Not on every case. I once had a customer who literally removed the "Testing" part of my offer because it seemed to expensive to him. As testing often takes a considerable amount of time I do list it explicitly in an offer and don't "hide" it in the numbers for the other tasks.

Imagine if electricians let their customers opt out of electrical code compliance...

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

#107
post #60
post #56

Earlier quoted context omitted.

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

>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. Many people have been significantly affected by software bugs. Therac-25[1] is one I constantly remind myself of; it killed 5 people. Here's a list for further reading: http…

not to split hairs here, but according to the Wikipedia article, Therac-25 only killed 3 people.

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

#108
post #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 peopl…

Doh, of course no programmer intentionally writes buggy code, yet there isn't a single programmer in the world who doesn't write buggy code (and everybody who claims to write 'bug-free code' is either very inexperienced or a goddam liar).

The point is to not have a "shame culture" for writing bugs, because they are normal part of the workflow. Instead focus on efficiently identifying and fixing bugs (efficient debugging is an important skill that's unfortunately often neglected).

Otherwise you end up with people writing overly defensive code, and get into a situation like the Stalin-era airplane designers who each made their own parts just a bit stronger then necessary because they feared ending up in Gulag or against the wall if it was "their part" that broke. End result was planes that were so much more heavier than planned that they were essentially useless for the tasks they were designed for.

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

#109
> It reinforces the idea that any one person or piece of code can be blamed for a given failure. Short of malice, this is never the case.

If I make an off-by-one error, where, other than me, did it come from?

> It gives the impression that, when you wrote the code, you should have written it better. This is a counterfactual that rarely holds up to examination.

If I make an off-by-one error, I could have done better.

> It positions shame as the correct emotion to feel about bugs in your code: if you were a better engineer – a better teammate – the bug wouldn’t exist.

It is not about shame, it is about responsibility.

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

We should all aspire to do better.

> ...They may feel ashamed if their code has bugs.

See my previous comment on shame.

About the only thing that annoys me at work is people trying to deny responsibility for their actions (or lack of them.)

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

#110
Every once in a while a barrista is going to forget to you wanted soy in your triple venti no-foam soy latte instead of whole milk. They're serving a thousand drinks a day and the impact of getting the order wrong is tiny.

They're still going to apologize to the customer who got the wrong drink. Because sometimes mistakes are acceptable, expected on occassion, and still worth apologizing for when they happen. I don't always say sorry when I do something wrong, I sometimes say sorry when what I've done has a bad impact on someone.

Post reply on HN