Live data from Hacker News

Ask HN: How do I feel less guilty about bugs?

news.ycombinator.com

61–70 of 93 posts

Re: Ask HN: How do I feel less guilty about bugs?

#62
post #33

The cure is using other software. It's almost all so fucking terrible—yes, even from FAANG—that before long you'll stop feeling bad about your own bugs. That's not an excuse to get lazy about bugs, but it ought to help you not feel so bad about it. Apple's way better about software quality in general, than most. Yet every day I use their alarmingly-janky multi-user login/switching screen. If I my M1 Air falls asleep…

Apple also ships less code than other companies, relies on 3rd-party apps to do the marketing research of what users want, has horrendous documentation, and tries as hard they can to block users from doing unsanctioned things with their machines. If it seems like they have less bugs, it's because they do as little as possible with their software as they can get away with.

Their hardware is great.

Re: Ask HN: How do I feel less guilty about bugs?

#63

I'm responding _before_ reading the comments, because this is something I feel like I have some fairly strong opinions on. I see two discrete issues here. I'll post one here, and one in another comment because I'm apparently long-winded today :). First, as a developer, you _will_ break things. There is absolutely no getting around that - it will happen. You can't choose not to break things. You _can_ choose to learn…

The second issue I hear is that you care about your customers, and I think you feel like your company's culture isn't correctly prioritizing quality. There are definitely some steps you can take to improve processing and make these sorts of things less common, but they won't have as big an impact as they could unless everyone "buys in" to them.

Let's talk about the cultural aspect first. You said:

    I have casually asked my boss how they feel about all the random bugs in our product. They feel that as a startup of our size, our number 1 priority is making sure we have enough features. Our prospective customers tell us things like "we can't sign up until you support X number of features," and my boss and the founder believe that our number 1 indication of success is the downward trend of X. I understand what they mean (it doesn't matter how bug-free your code is if you run out of funding and go out of business) but I still feel guilty.
I think you're on the right track here. You're recognizing that the people "above" you in the organization have different motivations, and allowing the possibility that you may just be wrong in how you view this because you are operating with a different perspective on the system as a whole.

That said... "we need to prioritize features over stability" is a huge red flag to me. In my experience it generally means that the people in control of the company are measuring the wrong things; they're prioritizing increasing the effectiveness of your sales funnel by trying to satisfy everyone when they should be either focusing on ARR (annual recurring revenue) by making your existing customers happy or changing their customer acquisition strategy to get potential customers with the "right" problem into the funnel in the first place.

Basically, de-emphasizing stability in order to grow will quickly lead to problems with retention. It's a totally valid choice to do it for short periods, but if you go too far it's very hard to come back.

My boss also is correct when they say that these issues happen less than 1% of the time. I don't feel like I have buy-in to make any changes to this process. Alerts are ignored, and some people don't even have PagerDuty set up, their alerts go nowhere.

    I don't feel like I have buy-in to make any changes to this process. Alerts are ignored, and some people don't even have PagerDuty set up, their alerts go nowhere.
My gut says this is the heart of the issue here. I think you care deeply about the people who use your product, and that you feel like the people around you don't.

If I were you, I would start preparing to leave the company if necessary. Once I was confident that I had a place to go, I'd stretch myself and try to influence the people around me to improve quality and change the focus to sustainable growth. It might work. If not, while it's possible they'd just fire me because of the pushback, it's much more likely that I'd just get to the point where I realized that this wasn't the place for me.

Re: Ask HN: How do I feel less guilty about bugs?

#64
post #21

>So it's probably an issue with myself that needs fixing, right? You are feeling guilty because you care about your (your app) customers, this is not (IMHO) an issue, it is only you being a "good" person (like hopefully most people). But 1% (if it is 1%) can (still IMHO) be a lot. Let's say (for the sake of reasoning) that the app is about invoicing. One of your customers used to be able to prepare 8-10 invoices per…

> You are feeling guilty because you care about your (your app) customers, this is not (IMHO) an issue, it is only you being a "good" person (like hopefully most people).

Yep. Perhaps an unpopular opinion but developers should care. They should feel bad about their bugs. At the same time, recognize that shit happens and you're not going to be perfect. But take that negative energy and use it at motivation to reflect on how you made that mistake and what steps you could take to avoid it in the future.

Re: Ask HN: How do I feel less guilty about bugs?

#65
I think this feeling goes away over time as you gain more experience and see how others are doing in the industry. There's a never ending tension between not breaking prod (having bugs) and shipping. In most places, you can't stop shipping, so you have to find how much stability you're willing to sacrifice for your feature work. Then you need to accept the casualties as being part of the battle you're waging. Of course it's better if there's no casualties, and it's better if you minimize the risk of casualties, but if you stick you're nose out there, you need to accept the risk and live with it.

With experience, you can learn ways to minimize the risk you take when you ship, by writing code in better ways, by organizing things with more backstops, handrails, fail-safe patterns, but it's always at the detriment of shipping. But the better you get, the lesser the impact of the safety tax will be.

Re: Ask HN: How do I feel less guilty about bugs?

#66
post #33

The cure is using other software. It's almost all so fucking terrible—yes, even from FAANG—that before long you'll stop feeling bad about your own bugs. That's not an excuse to get lazy about bugs, but it ought to help you not feel so bad about it. Apple's way better about software quality in general, than most. Yet every day I use their alarmingly-janky multi-user login/switching screen. If I my M1 Air falls asleep…

Apple also ships less code than other companies, relies on 3rd-party apps to do the marketing research of what users want, has horrendous documentation, and tries as hard they can to block users from doing unsanctioned things with their machines. If it seems like they have less bugs, it's because they do as little as possible with their software as they can get away with. Their hardware is great.

> If it seems like they have less bugs, it's because they do as little as possible with their software as they can get away with.

This does not square with my experience of their bundled software being very capable, very respectful of system resources, plenty featureful, quite stable, and usually sitting somewhere between "quite good" and "best there is".

Re: Ask HN: How do I feel less guilty about bugs?

#68
Don't focus on making it bug-free. That will never happen. Structure things so that bugs don't have big impacts. Auto-save, local backups are a good band-aid, better if you can rearrange things so all the data isn't in one "basket". Think about failures outside of your control -- power outages, network outages, etc. Will people lose work? Don't make it hard to do destructive features, but instead make it easy to undo them. Often it's useful to store data in a redundant way -- sort of caching things to make things faster or easier, and these can be used to restore data when it's needed. Think very carefully about which data can be recreated and which is primary, and treat them differently.

People are going to complain about everything. If they don't complain, that means they are not actually using it. That's ok. Listen to them, listen for patterns, take them seriously but don't take it personally.

It sounds like you're doing the right thing -- when you find a bug, fix it and don't just put in a quick workaround, and learn from it and try to avoid that from happening again.

Re: Ask HN: How do I feel less guilty about bugs?

#69
post #33

The cure is using other software. It's almost all so fucking terrible—yes, even from FAANG—that before long you'll stop feeling bad about your own bugs. That's not an excuse to get lazy about bugs, but it ought to help you not feel so bad about it. Apple's way better about software quality in general, than most. Yet every day I use their alarmingly-janky multi-user login/switching screen. If I my M1 Air falls asleep…

Apple also ships less code than other companies, relies on 3rd-party apps to do the marketing research of what users want, has horrendous documentation, and tries as hard they can to block users from doing unsanctioned things with their machines. If it seems like they have less bugs, it's because they do as little as possible with their software as they can get away with. Their hardware is great.

> If it seems like they have less bugs, it's because they do as little as possible with their software as they can get away with

This is tautological; the obvious way to ship fewer bugs is for your software to simply do less so there's a smaller surface area for bugs to happen in the first place. I see this as a good thing and I wish more software companies would take Apple's approach in this regard.

Re: Ask HN: How do I feel less guilty about bugs?

#70
Developer test. I always put a task to developer test my changes. This is beyond any Unit Tests I might write. This allows me to go through each COA and make sure I have requirements complete. Work with the understanding that QA are not there to find bugs. They're their to Assure Quality. Once you change your mindset, and your development practices, you won't have as many bugs and the ones you have, you won't feel bad about because you know you tried.

Libraries. Keep libraries of code that you have used in the past that you know work and have been code reviewed.

Post reply on HN