Live data from Hacker News

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

blog.danslimmon.com

81–90 of 194 posts

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

#81

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? In the UK... Dentists: you have to have a BDS or BChD degree from a dental school at a university Plumbers: have to get NVQ diploma as well as pass Gas Safe accreditation to fit boilers and heating systems, plus get a CSCS card to work on construction sites Electricians: have to get an NVQ diploma, and to work in construction, t…

> Software developers: [this is left blank as an exercise for the reader]

In fact, there's a (very popular) school of though that the more credentials you have, the less qualified you are to develop software: https://blog.alinelerner.com/how-different-is-a-b-s-in-compu...

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

#82

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. This is a completely unreasonable comparison given that there have been 0 software developers ever, in the history of software, who have been able to reliably produce bug-free code. So yes, software development is orders of magnitude more difficult than plumbing, dentistry or electrician(-ing?). If you think it isn't, please feel free to jump in and prove all of us wrong.

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

#83
post #50

Earlier quoted context omitted.

> There are people on my team where, when there is a bug, I just start looking at diffs of what they have committed because more likely than not, they caused the problem. If you can tell the bug from looking at diffs, why was the bug not caught in code review or by tests? Most obvious bugs should be caught this way.

In my experience, it's because Thing 1 and Thing 2 can review each others' code, and have no compunctions about potential bugginess. Somebody else gets to pick up after both of them, and is always outvoted during team code review. It's like giving a minority report, honestly.

Code review also isn't great at catching the kinds of edge cases that lead to many production bugs. Even tests only help you so much, because if you forget about input X or state Y or api result Z while writing the code, you're likely to forget about it when writing tests too. This is why bugs are more or less inevitable in systems beyond a certain level of complexity that are being actively worked on, and why engineers who think very carefully about anything that could go wrong will produce far fewer bugs than sloppy engineers who try to use process as a safety net.

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

#84
post #59

Earlier quoted context omitted.

Depends on the project, but I'd wager, that software development is a _bit_ more complex than plumbing in many cases.

>Depends on the project, but I'd wager, that software development is a _bit_ more complex than plumbing in many cases. This is an incredibly ignorant statement. Have you worked in that profession? Any professional engineering roles? But that all doesn't really matter because the statement becomes meaningless when qualified with "Depends on the project[...]"

I've worked as a structural engineer (EIT) before. There are some situations where structures are complex (earthquake modelling and really large bridges) but honestly software is way, way more complex than structures. I'm not saying I agree with the contributed article (I think people should be sorry for bugs they missed, at least to a point) but I have some empathy for the fact that even seasoned developers let bugs in despite all the tests, and lints, and monitoring, and best practices. Sometimes you just don't anticipate something and nobody else around you did either. It's a more complex domain than the forces in the physical world, and unlike the physical world in most cases, the same mistake goes to everyone. One electrician screws up one time and one house burns down to the ground. One software engineer screws up one time and well everyone's shit breaks at the same time.

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

#85
post #35

Earlier quoted context omitted.

A more specific and concrete than the culture and process answers is someone should have reviewed and approved the code.

But that's just reassigning or distributing 'blame' to the approver. So what is the responsibility of the key-puncher if it isn't turning requirements into robust, correct code? Many comments here seem to suggest that programmers are just there to produce some sort of fuzzy first-stage approximation of what the code could be. In that case, just employ an automated code generator and push the burden onto reviewers.

I think the value is being able to say there were multiple people who didn't catch a bug, so the original coder was acting reasonably.

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

#86
post #12

This sentiment reminds me of Gerald Weinberg's observation of four plus decades ago - "If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization." I was trained as a computer engineer, and the difference between those who were taught to approach software development as a craft and those who think bugs are ok and it's really about feeling good…

At the same time, if programmers had to deal with the same kinds of rigid constraints as builders, writing a simple MVP would cost millions, and we'd have a lot less new technology in the world.

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

#87

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

This is about the dynamic between people within the organization (coworkers, boss, etc.), not about external communication to customers. That is, we aren't talking about whether an individual software engineer should apologize to the customer or the end user.

So the analogous question would be whether someone who has worked as a plumber has ever heard a coworker plumber apologize for messing up a job. I'm hoping the answer to that is yes. A plumber apologizing directly to a customer would be more analogous to a company making a public announcement about a bug, which is a different issue than how responsibility is determined within a team.

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

#88

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

With plumbing the tools of the trade have been the same for 100+ years. Pipes, wrenches, valves. It seems like every two years in the software engineering realm you have to learn to use a completely new tool in order to be valuable to a company.

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

#89

This reads a bit like one of those feel-good "managers should be good to employees! agree?" posts on linkedin. The bugs I see in PRs from even some mature people are things like input_array[0] without checking the array for null or size. Anyone beyond cs101 can tell you this is unacceptable and careless, and the author likely had a "fuck it" attitude, and was in a hurry to get back to Netflix or whatever was really o…

> there are many cases

... where a developer was given 30 JIRA tickets each "sprint" and whose "performance" was evaluated entirely on how many they completed.

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

#90
post #58

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

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…

[deleted]
Post reply on HN