The BQA acronym comes from Business Analyst/Quality Assurance and since neither role is properly defined in Scrum, we combined the roles to fill the void. This bridge between technical expertise and customer satisfaction is something we’re passionate about and have written about in the past. Today, we’ll go over the 6 gates of quality our BQAs implement to ensure quality in the process while maintaining business functionality and value throughout every phase of the development cycle.
By being involved in the project from start to finish and assuring clear and concise requirements, BQAs identify defects sooner in the project lifecycle. This is important because eliminating and preventing imperfections is one of the biggest factors that determine whether a project is successful or not. When it comes to organizational spending caused by faulty software, the data is staggering:
- 71% of failed software projects are traced to poor requirements – CIO Magazine
- $357 billion will be spent on software development by the end of 2017 (Gartner)
- In 2016 software failures cost the economy USD $1.1 trillion in assets (according to research by tricentis.com)
On top of such significant (yet preventable) costs, companies must also consider ongoing developer costs to find and fix issues, and a potential loss in revenue due to unsatisfied clients. The fix? For BQAs is all about quality.
Gates of Quality
The BQA quality process can be broken down into 6 areas:
1) Creating a Quality Strategy
Business Quality Assurance team has a mandate to customize each quality strategy that:
- Identifies the types of quality verification related to the project scope
- Identifies business processes that could potentially impact quality, and update the quality assurance proess accordingly
- Developes quality-related deliverables/artifacts the client expects
- Specifies what technical tools would be efficient and effective to help project deliever on time with quality
- Identifies any risks that could impact quality, and develope strategies to better communicate with stakeholders in avoid and/or mitigate the possibles risk
- Clarifies the reporting content for the “rejected stories", v.s. "defects” during the product development
2) Concise User Stories and Acceptance
As we know, Agile practice is all about efficient communication,especially the 3 C's when writing user stories. In Rangle,the team of BQAs also creates/help writing user stories so that requirements are understood by the delivery team. A good user story helps deliever value, so the product will have:
- Better business functionality
- Clearer Acceptance Criteria (Requirements)
- Easily testable user stories
- Easy transation to create additional related user stories when needed
- Helpful solutions to bridge the possible gap between business/client team and technical development/delievery team
- Help the entire team to get "things done the right way at the first time!"
3) Creating Test Scenarios
Outside of Acceptance Criteria, team of BQAs also creates test scenarios, and use cases with expected results and outcomes listed in each user story. That way, the developers aware of the test scenarios before they code, another example of effective team work. These scenarios also provide input into coding and TDD (Test Driven Development) / Unit Testing.
4) Pair Testing with Developers
A key contenet of Agile development is to enforce efficient delievery processe. For this reason, the team of BQAs would work hand-in-hand with developers to help them test their own work. This includes testing code before it is merged into the master codebase, giving a more in-depth view of the business intentions, and making developers aware of edge cases and alternate paths. The ultimate goal here is to have developers that excel at testing their own work, thus improving their code time after time.
5) Performing Manual Verification
Pair testing leads to code that’s top-quality and bug-free before it is even merged into the master codebase, an important early win. On top of that, although creating automated tests is paramount in software development, our BQAs also perform manual verification and functional testing, including: exploratory testing; end-user emulation; usability testing; and manual regression testing.
6) Automated Regression Test
When necessary,our team of BQAs perform automation testing base on the projet needs. Automated regression testing allows the team to easily check if new changes break or modify existing functionality; these automated tests can run day or night,as often as project needs. Alternatively, can also be done after each code merge. Another advantage of automated regression testing is that it can be simultaneously executed in different environments, ultimately reducing the time it takes to run regression testing.
Value Added. Always.
In light of the mind blowing statistics mentioned above, why not empower the people who normally find the defects/bugs in your software to make a difference earlier on in the process? After all, an experienced quality resource is often so adept at finding bugs that they can predict the errors they'll find in a feature eve before they start testing it. After collectively spending tens of thousands of hours doing QA and logging bugs, our team has devised a way to allow quality resources to be more than just "testers". Industry statistics have shown that a defect prevented in the requirement phase can save you 100 times the cost than if it is detected in production.
Yet, thanks to our team of BQA members, most defects can be caught before coding, resulting in:
- Substantially reduced time to fix
- Substantially reduced costs
- Increased team moral, eliminates the feature of continous deployment efficiency
- Happier customers because they get business value out of project continous delivery
- Faster releases, giving the ability to our clients to provide value in their business