Inside Atlassian – How QA makes development faster

This post is part of a series of blogs on Atlassian QA. We will cover how the QA strategy has been implemented in different teams, the tools and techniques we use, and the personal experiences from members of the team.

Traditionally, software QA is often seen as an impediment to software development; a necessary evil that gets in the way of delivering features to customers. QA time is dutifully scheduled on the project plan, but as deadlines get uncomfortably closer, it’s the first item to be squeezed out to save time. It’s a tricky tradeoff – more time on testing means higher quality, so improving quality means slowing down development.

When I joined Atlassian over four years ago, I learned that the Atlassian QA goal was quite ambitious: not just to improve quality, but speed up development as well, with only a small number of people (roughly one QA engineer for every 10 developers). To me, this seemed impossible. Aside from the practical complications, how could it even make sense on the theoretical level?

To explore this concept, let’s fall back to an old favorite – the overextended metaphor.

The metaphor

Software development is a highway with lots of trucks driving along it, delivering goods to customers.

The problem

Unfortunately, for our more mature products, driving on the highway can be quite hazardous. The older the highway is, the more rocks there are on the road. We hire some of the best truck drivers in the world; people who are used to driving on nice roads at full speed. But when they drive at full speed on our highways, accidents happen and the customers don’t get the goods in the state they wanted.

As traditional software testers coming across this situation, our natural response was to lower the speed limit and spend our days sitting by the side of a road with a radar gun, issuing speeding tickets (i.e. raising bugs). This prevented a lot of accidents, got a lot of trucks to their destinations that would have otherwise had nasty crashes, and prevented damage to the goods in the trucks. It was a semi-successful approach, one that’s used in many software companies today.

However, it had some serious drawbacks:

Worst of all:

It was easy to get so focused on writing speeding tickets that we forgot that our aim was getting the goods to the customers.

The solution

As we’ve described in previous posts, the Atlassian QA strategy is more about prevention and trust. As QA, we know the roads really well – we know what causes accidents, and where the accidents have been in the past. So instead of sitting by the road with a radar gun to catch speeding drivers, we sit in the cab with the drivers and say, “careful in this next bit, there’s a huge rock in the middle of the road after that blind corner.” In safer stretches, we say, “There’ve been no nasty accidents in this stretch in the past, full speed ahead!”

This has the following advantages:

This helps the drivers get to their destinations more quickly because:

Back to reality

What does this just-in-time QA advice look like in practice? For the Jira QA team, you can read further details in this post.

By being intelligent about risks, by knowing the product well, and by demonstrating that we have the same goals as the developers, we can earn their trust more easily.

And in the end, we can work with them to deliver value to our customers, faster, and with higher quality.

Exit mobile version