Live data from Hacker News

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

blog.danslimmon.com

151–160 of 194 posts

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

#151
post #66
post #60

Earlier quoted context omitted.

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

Read my reply again, note especially the part "While this happens". Obviously I am acutely aware of what you are saying, no matter how many Wikipedia articles you link, so your comment is not only superfluous but also makes no sense, as I was asking OP if he was personally affected in such a way because he seemed bitter. Your reply does not answer this, and you should let him answer for himself. > I'm not sure what y…

> 5 does not fit the definition many in anyone's book.

Well, IIRC, there's Watership Down, a literal book, but I assume you meant that figuratively.

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

#152

Earlier quoted context omitted.

This thought experiment is flawed. It assumes the only variable worth considering are the actions of the individual. The reality is that we apologize all the time for doing something that, done one day previously or to a different person, would not have been a problem at all. We're typically not apologizing for the act itself, we're apologizing for the effect it had. We don't mean "sorry for writing code with bugs in…

The though experiment illustrates that the same actions in different circumstances can have different results. What part of that assumes the only variable worth considering are the actions of the individual? The central point is that, as you say, whether or not we apologize depends on the circumstances. I agree that you have to consider more than only the actions of the individual. I believe, if there is fault, it li…

Apologies for my misunderstanding (hah, very topical for the post). The way it concluded made me interpret it as if you were trying to suggest that the person's actions were the same, and thus the scenarios were the same.

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

#153

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

Well put. I am amazed at the replies to your comment.

My thoughts are, it's all about accountability. Good development and, more broadly, learning, rely on effective feedback loops. "Did it work? Y/N and why?" repeated over and over.

When you blur accountability in an effort to be empathetic, it messes with this loop. You've changed the definition of "it" to not be fully what was in your control, and then as a result don't have a clear action you can take to do better next time. This, to me, is how you wind up with 10 1 year experiences.

To summarize, even if a bug is only 10% your fault, be accountable for it, because that's a clear signal towards something you can improve. Accountability doesn't mean falling on some sword, you can also own improving the things that lead you to make this mistake. The difference is, you're taking action to improve things, versus distributing blame (which I find often leads to "what can you do" type mentalities, leaving all the broken things there for the next unlucky person)

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

#155

Switch from apologizing, to thanking the person that found the issue. Profoundly different effect. One is all-about-you. The other is a team-building action, recognizing the folks who normally get a lot of grief(denial; accusations; ignoring their input). Testers respond amazingly when they're heard and treated seriously. It is so profound, let me tell you an anecdote. My test lead had gone to a conference (they have…

That definitely happened.

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

#156
post #76

To commenters who compare work of programmer with the work of civil engineer: There is an explanation to this discrepancy. Risk = probability of fault * cost of fault. Programmers usually work with the data. Data has a pretty very unique property that it is easily and cheaply copied and restored. It also means data can be replicated more easily, which allows to build systems with large amount of redundancy. Therefore…

Replication costs have nothing to do with anything here.

The damage caused by a software bug can range from nil (even negative, since a bug might have desirable effects) to incalculable. Consider a bug in software used for landing SpaceX boosters... Or a bug in a trading platform. Or a bug in an automated medicine dispenser. Or...

You can compare the work of a programmer to the work of a civil engineer, but it's true that it's difficult because most bugs cost little, much software is not positioned to cause much damage if buggy, software bugs are so prevalent, and it's so difficult to write bug-free code. But the cost of replication of software has nothing to do with any of this.

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

#157
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…

And:

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

Never the case? Never?

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

#158

Earlier quoted context omitted.

The though experiment illustrates that the same actions in different circumstances can have different results. What part of that assumes the only variable worth considering are the actions of the individual? The central point is that, as you say, whether or not we apologize depends on the circumstances. I agree that you have to consider more than only the actions of the individual. I believe, if there is fault, it li…

Apologies for my misunderstanding (hah, very topical for the post). The way it concluded made me interpret it as if you were trying to suggest that the person's actions were the same, and thus the scenarios were the same.

Hmm. I guess I kind of did mean that. Rather, I meant to make people question whether the individuals actions were all that mattered.

Another example: If my wife wants me to invest in stocks and I do so after doing a lot of research and preparation, and that stock goes down, do I apologize? Do I apologize because of things that happen after and independent of my original actions? Or maybe my wife should apologize? Maybe nobody should apologize? How much depends on the stock market? Out of our control and comprehension.

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

#159

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…

In absolute terms there's a lot more CS degrees working dev jobs churning out bugs. Self-taught devs can be great. Degree devs can be shit.

I mostly agree with the rest of your post.

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

#160
This touchy-feely analytical approach to not worrying about emotional and exemplary damage resulting from not knowing any better is hard to take. The self importance of not worrying is conducive to the sloppy industry the NG works in. No one can be held responsible for not knowing what they should know because they aren't expected to know it. They are semi-functional components in a dysfunctional machine.
Post reply on HN