It takes a team to create a bug

I was talking to someone who worked on Microsoft Word early in his career. He joked that, if there were any irritating bugs in there, it was probably his fault. My instant internal reaction was that it was definitely not. Individuals don’t cause bugs. Systems cause bugs.

When people encounter buggy software, the often complain that the software engineers must be bad. It’s possible that the software engineers were bad. After all, someone had to write the bug in the first place*. That doesn’t mean it had to go to production.

Maybe there was a bad engineering manager at work. They made commitments without consulting the team, signed on to features without scoping them, and thought design was a waste of time. Maybe they drove the team to work twelve hour days for months on end. You take a great software engineer and put them in that situation, and you’re going to get bugs.

There are also other individuals involved. Maybe the designer came up with a bad UI. Maybe the product manager always pushed fixing bugs to the sixth subbasement of the backlog. Maybe the QA team isn’t being thorough enough.

More likely it’s a higher level leadership problem. Maybe there’s an executive sponsor who thinks software engineers and product managers can do the QA in a short-sighted attempt to constrain costs. Maybe they don’t believe in training. Maybe they insist on hiring only lower cost new college graduates rather than experienced engineers. Maybe they create perverse incentives, where teams are rewarded based on hitting dates but not on the quality of what does hit that date.

That’s often where the root of the problem lies. A good leader will certainly push for substantial delivery quickly, but a good leader will also be in touch with reality. They’ll know that people need training to build their skills. They’ll know that the team needs to be able to influence the feature list or the deadline and probably both. They’ll know that non-feature work, like writing unit tests or refactoring messy code, will pay off eventually. They’ll know all these things and they’ll fund them, with money, staff, and time.

When you try to use buggy software, it’s okay to be frustrated. Just recognize that it’s not an individual problem. It wasn’t one person that released that bug. It was a whole team that did it.

* assuming it’s even that kind of bug, with explicitly incorrect behavior, as opposed to something else, like an unexpected consequence, platform limitations, or a missing feature.

Leave a Reply

Your email address will not be published. Required fields are marked *