Live data from Hacker News

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

blog.danslimmon.com

191–194 of 194 posts

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

#191
post #178

Earlier quoted context omitted.

Try working in military applications, aerospace, tax software, medical devices, banking. Making one mistakes can affect the fates of hundreds if not millions. It's way more responsibility and risk than the job you quote. By the way. A dentist gets to try on fake tooth before drilling a real tooth. They actually don't have a choice, that's part of the mandatory training. Doctors gets to train on real people too, medic…

> A dentist gets to try on fake tooth before drilling a real tooth. Are you saying you went straight to writing production code before you ever studied any software engineering? Sounds unusual for practitioners of an industry endowed with such a critical responsibility. A dentist can easily kill someone through malpractice... There's no code review, there's no test environment, and there are always difficult (often t…

A software engineer can easily kill tens of people with a typo. Medical devices have a ton of software and it's only increasing.

Medical staff have the equivalent of code review and test environments. Non-routine operations have always multiple people in the room. They have bodies to practice on.

Do yourself a favour and drop the attitude. Medical and software industries both have some very difficult jobs.

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

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

> Replication costs have nothing to do with anything here.

Replication is the cornerstone of fault-tolerance. When logic is written in high-level languages with some minimal good practices, most SW bugs result in crashes rather than data corruption, hence data replication plays important role in protection against bugs as well as HW problems.

> Consider a bug in software used for landing SpaceX boosters... Or a bug in a trading platform. Or a bug in an automated medicine dispense

I specifically mentioned: "Programmers _usually_ work with the data. " In the examples you listed above software manipulates physical world rather than pure data. I thought it was too obvious to explain.

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

#193

Earlier quoted context omitted.

You have got to be kidding me. Do you even understand the consequences of making mistakes in other fields? In some cases an apology isn't even enough. In some cases imprisonment and an utterly ruined career are the result of mistakes. So the idea that apologizing shouldn't happen as a programmer is complete rubbish.

> In some cases imprisonment and an utterly ruined career are the result of mistakes This is quite an exaggerated point; the number of people imprisoned for making mechanical, civil, or electrical engineering errors is very close to zero in the US. I think more programmers have actually been charged than any other field, although I can't quote a statistic to back that up.

Architects absolutely have gone to prison for building something in a shoddy manner that results in death.

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

#194

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…

Why doesn't your team have a process (integration tests, etc) that makes it impossible to check in something like `input_array[0]` without breaking a build? Why is it allowed to directly push to master? How does the old saying go? The road to where is paved with good intentions? You could engage in moralizing against "carelessness" and "neglect" and presuming that a teammate somehow cares more about watching Netflix…

Because we were a 4-person company at the time starting to hire first employees and I realized I can't trust new people as much, so most certainly you cannot anymore do things like input_array[0] and committing to master because i took measures immediately after it happened, so that is not a problem.

The problem is that the person(s) for whom I had to add these baby bumpers not to do input_array[0] will - and has - screwed up much bigger on everything that is slightly more complicated than that, too. Because if you are an engineer and you don't care, then no amount of padding around you will make you curious, careful, detail-oriented, non-lazy and capable of tackling hard problems that life throws at you every day at a tiny startup.

Post reply on HN