We’ve touched on this theme a bit in the past – whether or not testers should be involved in the software design process.
Our feelings are pretty straightforward (spoiler alert – the answer is “yes” they should be involved). But before we explain why and to what extent, let’s look at some of the pros and cons of each development style.
Why Software Testing Should Be Separate from Development
For starters, software development is outside the testers’ area of expertise. There’s something to be said about the division of labor and letting each team member excel in his or her core competency.
You also run into the problem of “problems.”
As testers, we’re naturally inclined to think of areas in which a project can fail – we bring an entirely different set of tools to the table. This is a great asset when the development team needs us to find leaks, but it can be somewhat unproductive during the design phase when creativity and brainstorming add greater value. This is the time to find ways how to do it, not why it won’t work.
And lastly, you potentially have too many cooks in the kitchen. The operative words are “too many” – an idea that varies from project to project. But you can definitely have excessive input. See our earlier post about “less being more.”
Why Software Testing Should Accompany Development
As mentioned before, we’re big advocates of involving testers from the very beginning. Let’s see why.
Having software testers early on makes it more likely that results can be accurately tested. You can’t have the right tools for the job if there’s no agreement on what the job is. Imagine sending one person to pick up an Ikea table and sending another to buy a screwdriver – and discovering that the table requires a flathead and all you have is a Phillips.
Next. Although design is not a tester’s expertise – usability is. Better to get that input early on so you can avoid costly or embarrassing errors down the road (see our earlier post on this topic).
Lastly, there’s the intangible but very real power of team spirit. By involving the entire group during the design phase, you foster a shared commitment to excellence.
The Middle Path to an Optimal Development & Test Management System
The truth is, you don’t have to choose between the two test management systems outlined above. It’s possible to select aspects of each approach and find a middle path.
That middle path is the Agile approach to software testing – one in which we provide incremental input in an advisory role without crowding the kitchen.
In other words, we treat each project as a work in progress, offering our analysis throughout each stage. In areas of usability and results, this analysis should receive primacy. And in areas of design or functionality, developers should take the lead. But the goal is to steadily build a superior product through constructive collaboration.
This is a pretty contentious topic for many, and I’m sure some of you have strong opinions on the subject. So please – share your thoughts below.