QA Role for the Success of Project is very important. QA role is leadership role for the software project. This article is based upon my experiences in SQA organizations. Some times this role is misunderstood by QA professionals and that creates problems and as a result software product suffers from quality point of view and sometimes project is not delivered within time and allocated budget.
As we know software engineering is intellectual and technical human intensive task and if care is not taken something will go wrong. Agility is most popular in modern day’s software development, as agile teams are self-organized and jelled teams. It is heard from quality assurance personas that, this is not our task for example “I am qa person ask to anyone else for user manuals or mockups or requirements documents”. This statement is problematic.
If we study cricket teams, Football teams or hockey teams, they have well define role and everyone tries to achieve the goal. If for example some people in Football team say ask to someone else to defend or reach towards the goal instead of struggling, this will create problem in a team.
CMMI- TSP (Team software Process) focus is to make self-organized and jelled teams. In jelled teams whole is greater than the sum of their individual efforts. No one can defeat them and no one can stop them to jelled teams. Let’s take an example of four people team; one QA person, two developers and one technical writer. Technical writer is on medical leaves for 15 days and during that time client requires user manual, instead of waiting for technical writer to come and prepare the document QA person should start writing without any delay, as they do testing the product an can prepare the document better than anyone else. It will be against the self-organized team if they say I will not do it ask to someone else.
Software Testing is psychological destructive task. It is same as someone has built the house and you are trying to break it. It is often heard from QA people that “Developers are not happy with me, it’s mean I am doing good testing”. And they often blame to developers for bugs. In reality it is not the fault of developers, instead of helping the development team they create barriers between the teams. They save their sides. But in this situation saving sides will not work for long periods of time. Frustration can lead to resign, demoralization, lack of trust in team can badly effect the morals of teams.
Agile manifesto says, client preference over documentation. QA should be diplomatic and should have client perspective and their focus should be on client as quality lies in the mind of client. Agile does not say no to documentation but necessary document which can help, preparing the documentation which is not used by anyone else is useless. So garbage removal is important in lean principle.
It is not important or require in some organization to achieve the CMMI certification but it is important to implement the best practices from agile, lean development, CMMI, PSP, TSP, PSP and other areas in software development process.
Software projects fails due to two main reasons. These are “Technical” and “Systemic”. Technical problems are easy to solve as compared to systemic problem. System problems are management problems and requires management solution. Research shows that most of project fails due to systemic problems in organization. In human intensive task if systemic problems exists then organization will fail to attract the good professionals and meet the customer demands and contract violation may lead to legal penalties.