To fix bugs or add new features?

Merunas Grincalaitis
4 min readMar 8, 2020

This is a constant problem we developers face. How do you deal with the increasing number of bugs while also adding new features on a constant basis in an environment where the time is very limited? This article solves this decade-old question.

There are two main perspectives on that dilemma:

  • Fix all bugs and add new features once everything works properly: You may have tests that check if things are working after all the changes to guarantee that the bugs stay fixed. This approach will slow you down because you’ll spend more time fixing at the expense of new functionality.
  • Ignore the bugs and work on new features unless they are blocking your progress: This other approach focuses on adding new features while ignoring bugs for as long as possible to spend the majority of your time making progress towards the goal. Eventually you’ll have to go back and fix all the bugs you’ve created during the development

So which one is better? Which one should you choose?

It depends on the way you work. If you feel comfortable building features on top of a broken mountain, you may focus on developing first and fixing later.

This will be useful for Minimum Viable Products where you need to show something as soon as possible without being polished.

But if you get stressed by the increasing number of bugs, you should focus on fixing things first and then develop the new features.

This will be the right approach when building long-term products like banking applications and products where an entire team is expected to work for several years.

If you’re reading this article is probably because you’re stressed by the increasing number of bugs your product is facing, in fact, that’s the reason why I’m writing it in the first place, because I’ve been in the same situation many times.

In any case, you’ll be stressed by closing deadlines that are so common nowadays. Things need to be developed fast and improved as much as possible without spending too much time on tasks that don’t add value at first sight.

That puts us in a position where we are forced to work in a stressful programming environment while…