Needless to say, if you have a lot of bugs in the software, your customers won’t be happy. Since developers are notoriously poor at testing their own code, it is up to you to ensure that the program gets tested. This might mean you wind up doing the testing or might mean you have to hire a QA (Quality Assurance) tester/team.
The key to dealing with defects is to find them and get them fixed early. The longer it takes to find a bug and the further it gets into the development life cycle, the more costly the defect.
The chart below shows the relative cost to fix a bug at different points in the lifecycle. Note that it is not linear and the cost increases significantly the further the defect gets in the development process. Think of all the people that get involved later in the cycle.
Factors related to cost
So how do you ensure that you don’t wind up with bugs that throw you over budget? As mentioned above, proper testing is paramount. Investing in just one QA tester can make all the difference in whether bugs make it to production or not. I have found that for every one hour of development there should be one hour of QA testing. This ratio has yielded the best results for quickly identifying and fixing any bugs before the product is released.
It is also important that QA has a firm understanding of how the software should work. They should be given all functional specs to assist them in properly testing the product. One way to ensure that QA understands the requirements is to hire individuals to fill a dual role as analyst and QA. These team members then write the specs up front and test them once they have been programmed. This may require a slightly higher level person with a corresponding increase in pay, but it is well worth it.
Communication between developers and QA testers can also make a huge difference in how quickly bugs are discovered and fixed. I have worked on many projects where the QA and Development departments did not get along. Poor communication and too much of the blame game allowed too many errors and bugs to slip through to further stages in the development lifecycle. It is important that both groups have a mutual respect for each other, and are willing and able to communicate in a professional manner that reflects their combined efforts to do what is best for the business unit.
Lastly, using the proper tools to document defects and communicate between the development and QA groups can help to rectify some of the communication issues. Visual Studio Online is a fantastic tool that allows for both groups to document, attach screen shots, and easily communicate between each other. It also allows you, as the project manager, to keep tabs on what is broken and what has been fixed.
All of these things will help to ensure that you are building quality into your product from the get go. For more information on how to develop a successful software product please take a moment to download my free eBook, Software Product Development for the Non Technical. You’ll find it is packed with even more useful information on how to properly staff and manage a software development project.