Software engineers, especially if they are at a smaller firm or a startup, are under constant pressure every time they work on a new customer-facing program to make sure it gets out the door quickly and that it works superbly upon release. It can be difficult to do both at once, to be quick without being sloppy and to be thorough without moving at a snail's pace. What are development and enterprise test management pros supposed to do?
To help make sure everything is good to go, many teams utilize a checklist to make sure all of their bases are covered. The main one used by students at California Polytechnic State University's Computer Science Department, which was created by software engineer and author Steve McConnell, has 25 boxes that need to be checked before software is released. Others use shorter or longer lists depending on what they care about what, the software's intended use and many other factors. The most important thing is not the length of the list, but that teams have a set list of core benchmarks to follow.
When creating such a product release checklist for the first time, it can be difficult for development and enterprise test management teams to start. Should all quality assurance metrics be listed? Should real-time test management be prioritized? By making sure a new product release checklist thoroughly answers these three questions, teams will know they have the benchmarks they need.
1) Is It Viable?
In agile software development, the goal is not to release perfect software that will never have to be tweaked, as this is just unrealistic today. Instead, the idea is to create a minimum viable product, so that something usable can be released on a shortened time frame to meet end-user needs in little time. With an MVP, changes will invariably need to be made later on, but the vast majority of end users understand this software reality.
While an MVP will not be as complete as software developed under a waterfall methodology, the product still needs to be viable. The checklist should include a number of points that will help software engineers determine a product's viability prior to its initial release. After all, what's the point of releasing something quickly if it barely works or fails to function entirely?
2) Has Everything Been Thoroughly Tested, Including the Testing Scripts?
It's no accident that the bulk of McConnell's checklist is devoted to quality assurance metrics and enterprise test script activities. If software is like an essay or a novel, then testing is the editing stage. It would be silly to publish a book without editing it first, and it would be just as silly to even release an MVP without testing its core components and functionality.
It's critical to also make sure that the testing mechanisms used are thoroughly vetted. Test scripts can help automate many of the most important but tedious testing tasks, but teams need to first make sure that the scripts they're relying on are good and can be trusted. Once the scripts are tested, then engineers can be certain that the bulk of the testing that will occur is catching key errors.
3) Are Teams Ready to Document Changes?
Most software today is created by teams consisting of many developers, coders, testers and others, and this group can be geographically distributed too. Unless they all have a way of documenting what was done and what needs to be completed coming up, there's no way all team members can be on the same page at all times. No documentation equals unnecessary duplicate work and some key tasks falling through the cracks.
Documentation also doesn't end once the MVP is released. Before the creation of the MVP, team members should document changes they would eventually like to make after software release. Engineers should also have a way of collecting and noting feedback from end users after release, so that they can keep tweaking the product. Many teams find it helpful to have specific documentation-related tasks within their overarching spreadsheet so that it doesn't fall through the cracks.
No matter what points are included in the final product release checklist, it's hugely important to have enterprise test management software in place. A quality, real-time test management platform encourages thoroughness and collaboration, which is why all good agile software development teams use test management tools.