Death by a thousand bugs

I have never met a company that wasn’t in a hurry.

Whether you’re a startup rushing to push product so your board of directors doesn’t get antsy, or a huge multinational corporation fending off the startups who move ten times faster than you – every company is in a hurry to get product out the door.

In that hurry, certain tradeoffs get made.  Bugs are allowed out there into the wild. They have to be, because if we are waiting for perfect, nothing will ever ship.  Only best-selling authors like George R. R. Martin can wait until their art is absolutely polished and perfect before it goes out into the world, and I’m willing to bet even he sees bugs in his stuff.

I’m a fan of bugs, anyways.  They’re often cute and they come in shiny colors like beetle green and butterfly blue.

But what happens after you let that buggy product go live? When do you go fix those bugs? And what’s the threshold at which there are too many bugs?

Everyone knows that if there’s a huge bug that stops people from being able to use the most basic feature of a product, that’s a showstopper and it’s not going to go live.  Engineers fix those as if their hair was on fire, and sometimes it is. But what about the hex value that is just a few letters off?  Or the corners that are square instead of rounded?  Those, we can let slip through, because they’re not, in isolation, going to significantly harm the user’s experience.

Where you have to be careful is in two places.

A thouand papercuts will kill you.

Although none of those little bugs in isolation are the cause that your users aren’t engaging, or your learning curve is high, or your bounce rate is high – a ton of them add up.  Three tiny bugs in this project, three tiny bugs in that project, three in this other one…. now you’ve got nine tiny bugs in your UI.  Remember that your users don’t see your app in terms of projects.  They see it in its entirety, and those little inconsistencies start to add up.  And let’s face it, you are WAY less likely to go fix that hex color bug than you are to build the next new project.  So every one of those little guys is going to join together on a million bug march against your users eventually.

  • Establish a maximum number of little bugs, per project and for the whole app.  Be faithful to this max
  • Have a commitment that every engineer fixes three tiny bugs in every sprint or dev cycle
  • Foster a culture of pride in workmanship in every employee, from the janitor to the CEO – so that everyone is eager to fix even the small imperfections.

It’s more fun to look forward.

If you work at a software company, you have probably either lamented the inability to go back and iterate on that project you just did, or you’ve gotten sick and tired of staring at the same screens of the same code for months and months and you never want to look at it again. Most likely, both at different times.  It’s crucial that you put out your minimum product, and then do sweeps through it again.  You MUST revisit the product, if not to update features, at least to fix bugs.

  • Have a plan for when medium-sized bugs will be fixed before the product even launches.  Be faithful to the plan.
  • Either dedicate one engineer to cleanup, or have every engineer fix one medium to large bug in every sprint or dev cycle.
  • Consider having a sprint just for cleanup and bug fixing, and let your devs and designers choose the bugs to work on.  This feeds into a culture of ownership and pride.

It’s important to understand that quality is a usability measure. It’s obvious why the big bugs hurt usability – they stop the user from doing what they need and want.  However, the little bugs add up and cause your users to feel like you’re not as professional as your competitors, or like you might not be trustworthy.  Credible research has shown that how attractive, consistent and brand-loyal a web site or application is significantly affects user’s opinions of the site – the exact same steps can feel totally different depending on the presentation.

Instill a pride of craftsmanship in every employee.  Empower people to take the time to fix bugs. And don’t let the little bugs pile up to take over your world.

Today’s Interesting Link:

Photoshop Secrets – This site is like my candy store.  Sometimes there’s stuff I already know, but most of the time the tips are super-awesome power tricks that I would never have known without it.

Today’s Usability Quote:

“My goal is to omit everything superfluous so that the essential is shown to the best possible advantage.”  – Dieter Rams

Today’s Music To Design To:

Ayurveda Buddha Lounge #2 – it’s largely ambient, energetic music that soothes you without distracting you. I don’t know how to describe it beyond that. It’s not particularly unusual music, it’s just really great for creative endeavors.  I also listen to this when writing, so it’s probably great when you’re doing a lot of copy-intense work.