Live data from Hacker News

Ask HN: What would happen if we prioritised all bugs over all new features?

news.ycombinator.com

41–50 of 77 posts

Re: Ask HN: What would happen if we prioritised all bugs over all new features?

#41
I have seen this problem solved with a super simple bug classification that anyone can leverage (even customer success) associated with priority and time to fix expectations.

YMMV, you have to adapt it to your usecase (B2B / B2C? contractual SLA? ...). But it can be something around:

  - P0 : a bug prevents a significant part of the customers (= paying users) to perform one of the core functionality of the product : at least one dev drops what he is doing right now and investigate, fix it himself or send it to someone responsible for the bug who should drop what he is doing right now and fix it. Target is to have it fixed in under a few hours. 
  - P1 : a bug prevents a few customers to perform an important yet non core functionality of the product: next dev available have a look at it. Target is to have it fixed in under a few days. 
  - P2 : a bug customers can live with (concerns few customers / there is a workaround / ... ) -> fixed in best effort, in practice, we fixed them when doing other features near that code. It can take a lot of time to fix them (if we ever fix them, and it's ok. The good thing about tech debt is that it's a debt you don't have to pay, when you remove/replace a feature for instance).

Re: Ask HN: What would happen if we prioritised all bugs over all new features?

#43

This is known as a zero bug policy [1]. I've had decent success implementing it with my team. The main advantages are: - Prioritizing is hard, so avoid wasting brain cycles deciding how important your bugs are - It encourages all of your team to get things right the first time, because if they don't they know they will be going back to fix it immediately. - If you want to create a culture of quality then it's an obvi…

One slightly different approach I've seen at some more old school industry customer: A bug with a semi-doable workaround is usually not urgent. This is less a problem with a more continuous deployment, but if your release cycles are measured in weeks or low-digit months, it's just often not feasible to roll back or hotfix, if the (even breaking) bug can be worked around somehow.

That made me rethink my usual "prioritize urgent bugfixes over features" stance, but it works better if you have a lower number of (known) users who communicate, over a mass audience.

Re: Ask HN: What would happen if we prioritised all bugs over all new features?

#44
Morale decline from oscillating priorities.

You are bug-free, start working on new feature, new bug reports come in, and you have to pause and work on them.

Fixing bugs is not fun work because there is usually a quick fix in an ugly way, and then a perfect fix via a large refactor and re-architecture. This results in that "soul-destorying" feeling of: if I had enough time I could fix this properly in the right way with clean code and avoid huge amounts of bugs, but alas I am just piling on tech debt.

Re: Ask HN: What would happen if we prioritised all bugs over all new features?

#45

Redefine "lack of feature" as "bug", problem solved!

Sometimes this is indeed the case. Our software talks with official systems, when they upgrade we have to support the new stuff, or our customers can't do what they need to do.

Of course we try to get there before the feature request turns into a bug...

Re: Ask HN: What would happen if we prioritised all bugs over all new features?

#46
We did releases that were only bug fixes and maintenance. There can be a long tail of bugs in a complex system, most of which are relatively harmless and only occur in very rare situations; it’s hard to justify fixing these when paying customers are asking for a new feature.

Also you’d be surprised at what gets classified as a bug when you apply this.

Ultimately though, everybody does this. Critical bugs get fixed first. Anything too far down the backlog de-facto doesn’t get fixed. I like the intellectual honesty that this approach brings, in that it forces you to set a bar for bugs not worth fixing and consequently marking them as won’t fix.

Final note: whether a bug is worth fixing changes over time. Maybe your best engineer can’t find it after two weeks. Maybe your biggest customer just ran into it. Maybe you can’t reproduce it. Maybe the platform causing it got acquired by Google.

Can it work? Yes, but it doesn’t look very different to what you’re probably already doing in practice.

Re: Ask HN: What would happen if we prioritised all bugs over all new features?

#47

We did releases that were only bug fixes and maintenance. There can be a long tail of bugs in a complex system, most of which are relatively harmless and only occur in very rare situations; it’s hard to justify fixing these when paying customers are asking for a new feature. Also you’d be surprised at what gets classified as a bug when you apply this. Ultimately though, everybody does this. Critical bugs get fixed fi…

Sometimes a feature request is considered a bug by customers: this product would be easier to use if we could do X, and the competing product lets us to that.

Re: Ask HN: What would happen if we prioritised all bugs over all new features?

#48
> This led us to an interesting question: what if we just split all bugs into "will fix" and "won't fix"...

I feel like this already happens in some places, just implicitly rather than explicitly. There's a reason why people sometimes joke about the backlog being the place where lots of low priority things go to be forgotten about, and never be done. The problem with this approach is that even if you could get around to fixing low priority bugs in X months/years, with this approach you would prematurely toss them aside and decide to never fix them.

> ...and then prioritise every "will fix" above all new features....always. In other words: we commit to only ever adding new features when we're bug free.

This will decrease your ability to ship new features in a timely manner and will put you at a disadvantage if you're up against any sort of competition, that ships "good enough" things soon, versus you shipping "really good" software way later. The benefit of this approach is that it should lead to a more maintainable codebase in the long term, though how much this matters depends on your circumstances.

It will mostly depend on how you choose what goes under "will fix" and how much it matches what's necessary to keep the lights on (KTLO).

For example:

  - Users can't view a page that's needed for legal compliance, in some popular browsers? Needed for KTLO, fix it, no brainer.
  - There are errors when trying to use some niche functionality, which affects around 1-5% of your userbase? Probably should fix it, it depends.
  - Some button's logo is offset by a few pixels in a settings page or an info message flashes too quickly after some redirect? Probably nobody cares that much.
Of course, all of that might also coincide with how you choose to test your software.

I once wrote some JWT code to allow multiple systems to integrate and communicate securely. I decided that I wouldn't ship it until I got something like 95% test coverage, enforced by CI and everything. It was doable and helped me discover a few bugs to fix during development, as well as refactor with confidence - but it took something like 4x more time than regular development would, which I can't see working well for the majority of projects out there, outside of core functionality and financial transaction related code.

Re: Ask HN: What would happen if we prioritised all bugs over all new features?

#49
post #16

Microsoft rather famously tried this[1]. And it seemed to really help them. I've worked places that have tried it, too. It does work; in my experience, it literally always improves software quality. But I think it is like how pretty much all diets work, at first, but not over the long term. It becomes unsustainable, as the pressure to work on features grows. Continuing with my diet analogy, I now think of it like bul…

Yeah - that's a super interesing point about bug fixing leading to engineers wanting to quit. Have you found a balance that works?

Well, I just mean you probably shouldn't try to put people in that role permanently. It's fine when it's for a limited time.

Re: Ask HN: What would happen if we prioritised all bugs over all new features?

#50
post #43

This is known as a zero bug policy [1]. I've had decent success implementing it with my team. The main advantages are: - Prioritizing is hard, so avoid wasting brain cycles deciding how important your bugs are - It encourages all of your team to get things right the first time, because if they don't they know they will be going back to fix it immediately. - If you want to create a culture of quality then it's an obvi…

One slightly different approach I've seen at some more old school industry customer: A bug with a semi-doable workaround is usually not urgent. This is less a problem with a more continuous deployment, but if your release cycles are measured in weeks or low-digit months, it's just often not feasible to roll back or hotfix, if the (even breaking) bug can be worked around somehow. That made me rethink my usual "priorit…

That's a really good point. If your userbase is feels listened to (which is admittedly easier in B2B than B2C) then these decisions become much easier.
Post reply on HN