In 1998, NASA launched its Mars Climate Orbiter. After months of travel, the multimillion dollar spacecraft missed the intended altitude to enter Mars’ atmosphere. This navigation error resulted in the complete destruction of the spacecraft. What caused such a failure? A subcontractor in the engineering team failed to make a simple conversion of English units to metric.
Not only did this failure cost embarrassment to the NASA team, it also cost millions of dollars to be thrown out into, well, space. The lack of checking that unit conversions were done correctly, is also a lack of QA. The participation of QA would have prevented the miscalculation and ultimately the destruction of the multimillion dollar project.
This is an extreme example, but here at BitBakery, we strongly believe QA is critical to project success. It only takes slow, unpredictable, or simply broken products to make us all appreciate the importance of QA in our daily lives.
QA is key to the success of products
In software development, QA should not center around a test pass or fail - or the mentality that if it works for me, it should work for everyone. Don’t get us wrong, covering all the technicalities is as important, from manual to automatic testing (stay tuned for another post on that!). But, quality assurance is more than just testing. It provides all the faces of the product with an extra boost of reassurance from usability testing and performance to client and customer satisfaction.
Assures project aligns to client’s requirements
At BitBakery, we make sure QA participates starting with the ideation (the beginning) phases of a project. This helps create a more comprehensive understanding of the expected outcomes. For example, if a certain feature is missing or is not working as intended, QA can help pull it back to the team to fix.
Maintains high standards for usability and improves user experience
It’s easy to create a feature that works as expected, but, nothing is more frustrating than not understanding what something is supposed to do. We take into consideration the perspective of the user. From start to finish, we run through different edge cases and user stories to make sure it is usable, reliable, and understandable. In return, the product gains trust and loyalty from its users and increases credibility.
Work closely with development to optimize for the long-term
QA helps track issues stemming from latest technology, future enhancements or housekeeping items. Allows us to have a quick turnaround for upcoming projects. It also lowers overhead costs involved with ongoing support and potential troubleshooting.
QA fits right into agile development
The more QA is involved throughout the project, the better the outcome. Making QA part of our agile development means we’re testing as code is completed. Unlike the waterfall method of finishing a project and then doing QA, having testing as part of our agile process avoids the snowball effect in finding layers of bugs at the end of a project.
Here are few simple but effective ways we make sure to include a touch of quality assurance every step of the way:
- Continuous client meetings
During sprints, we make sure to have either daily or weekly meetings with the client. This assures that we monitor the progress and have a chance to address any items that may come up.
- Daily internal standups
Standups help to monitor the backlog and project process. This keeps everyone informed and on track with the project scope.
- Creating general and specific test plan
While having a generalized test plan helps with consistency, a specific one can help with the less predictive scope of work that comes with sprints. We always check for sprint requirements, consistency, usability, and functionality.
- Working hand-in-hand with developers
This is crucial to surface inadequacies in the product and allows fixes to happen at the time of coding – instant fixes!
- Continuous improvement
We have retrospectives for both internal and external stakeholders at the end of sprints and projects. This helps us learn constantly and stay informed about new technologies and platform requirements
QA has a huge impact in a product’s life, from ideation to long-term maintenance. It will surface many questions and inadequacies that could possibly prevent another NASA failure. Making exceptional products means looking at the quality of the product as a whole.