Making QA Successful in Agile Software Development
Agile software development is here to stay. More and more companies are embracing agile and learning how to make it successful for their employees, customers, and organizational goals. Thanks to a boom in agile software designed specifically to support product owners, developers, testing or QA, technical writers, and project managers – making the transition to agile is no longer a formidable undertaking.
While there is a lot of space devoted to how to transition to agile or how to be a successful product owner, we want to shine a light on the role of QA in an agile software development team. While we all know that software must be tested before reaching the customer, QA is often overlooked or given less priority. We want to change this mindset and highlight how and why QA matters.
The Role of QA
It’s impossible to sum up the role of QA in an agile software development team in one sentence. We’ve stated it above and we’ll reiterate it here: the importance of a quality QA team and practices must not be overlooked in agile development. Your QA team does the following (and more):
- Sprint planning. There is typically no one else on the team who knows the software as well as the QA team. It’s important that product owners value the opinion and feedback of QA during sprint planning. QA should be providing estimates on how long it will take to test the new code and the other intangibles the stories introduce. QA should take advantage of sprint planning sessions to speak up and make sure there is time scheduled for acceptance test planning, full testing, and final review of the story.
- Stand up participation. Depending on the size of your team and the QA team, one or all of the QA members should attend the daily stand up. This is the chance for QA to hear first-hand from development about potential barriers, problems/blockers, and overall progress. Often, QA can provide vital feedback to help development work through problems. QA should also use the stand up to update the entire team on testing progress.
- Developer interaction. The QA team and development team should not be working in isolation of each other. Ideally, the two teams should be sitting close to one another to enable easy communication and collaboration. Development should give QA a quick demo of the story before handing it off for testing – this gives QA a chance to ask extra questions and to understand how the feature is supposed to work.
- Design feedback. While this can be a touchy area for some software development teams, QA does have the best perspective on how the feature, app, or piece of software is designed and works. Some teams approach QA as the customer and encourage the UI/UX team to work with QA to review, test, and discuss design decisions. Remember, QA uses the software on a daily basis and has a unique perspective on what the software does and doesn’t do.
- Acceptance test documentation. The acceptance test documentation is key in supporting the entire lifecycle of the agile project. Along with clearly detailing the acceptance test cases, this documentation provides insight to new team members into how the feature or software is designed. As well, the acceptance test plans and documentation are useful to the technical writing team when planning and writing the documentation.
This is of course, a high-level look at the role of QA in an agile software development team. It’s important to the success of the agile project that the QA team is given just as much support and access to best-in-class agile software as development.
The QA Perspective
In an agile development environment, the QA team is just as important to the overall success of the project as the development team. In a non-agile software development scenario, the QA team is typically relegated to just executing test cases and finding bugs. However, on an agile software team, the QA does much more than execute test cases and has the unique ability to bring an all-encompassing perspective or view to the stories and project as a whole.
Ideally, QA should be involved from start-to-finish to provide the product owner, development, design team, and documentation with real tangible feedback and support. Product owners are smart to take advantage of the QA perspective during project and story planning – rely on QA to provide feedback on how previous features did or didn’t add value, to provide input on risk analysis, and to help create clear testable stories.
As highlighted above, QA feedback is key in successful sprint planning. Teams that neglect to include QA during sprint planning quickly discover that story deliverables are inadequate and often that the story definition is incomplete. Because QA has to completely understand the story, these team members bring the ability to break-down the story into specific tasks and even sub-stories.
Depending on the structure of your organization – your sales, customer support, and product management teams should see the QA team as a valuable resource. From providing feedback on training materials to helping customer support work through customer problems to providing feedback to product management on the overall feature or software – QA can and should be looked to as deep company resource.
QA Success for Agile Software Development Success
It might sound cheesy but it’s true: a happy and supported QA team means a happy and successful agile software project. Keep your QA team close and remember that these people provide a unique and valuable perspective on the product, feature, and project.