February 9, 2015
Quality Assurance is one of the key aspects in the Project Management space and arguably one of the fastest transforming areas in software creation. Often, when we discuss Project Management, we tend to focus a lot on execution not discussing the qualities required for a QA Project Manager or the challenges associated with ensuring software quality.
While a dev manager may be focused on deadlines and ensuring the completion of a functionality or sometimes (at a lower level) APIs, the QA manager’s consistent focus throughout the project is to ensure the code quality, test coverage and delivering a bug-free product. This can at times pit the two departments in contradiction with each other because a QA person is ready to leave out a few features for the sake of quality. The delivery manager on the other hand, is focused on maximizing the benefit to the client packing in as many features as possible in the product.
A few years back, the role of QA involved writing test cases, manually validating them and coordinating with the dev team. There used to be a separate QA team with its own team lead and a QA manager with the team specialising on just testing. While in some firms and projects, this model still continues to exist, the prevalent use of Agile methodology and the automation route has changed the landscape of QA organizations.
Agile teams are at any point focused on delivering story points in one sprint. In this model, they usually have one or two testers identified within the team, who would do the QA work. This role may even be rotated amongst the members in different sprints to give a variety of exposure to the individuals and to help them stack up on expertise. The concept of a huge QA team is hardly prevalent in new age development.
Bug identification, testing, tracking and resolution is all done through a tool like JIRA, which minimizes the need for unnecessary communication between developers and testers. You identify an issue, log it in JIRA, give enough background, logging and documentation to corroborate the issue and that’s it. It is then left to the Scrum master to prioritize the issue into an available sprint.
A few trends in the automation space have changed the QA world for good.
1) There has always been API based automated testing, but even complex GUI screens are now part of the test suite. Test servers are procured at the initiation stage of the project, where heavy test suites are made to run overnight, signing off on the code quality for the day.
2) Testing is now integrated with code build and check-in, implying that once you do the due diligence of identifying the right test cases and implementing them, there is continuous integration between development and testing.
3) Move away from testing through automation, even generation of test cases is automated now. There are tools that throw out test cases, once you feed in the business case. There are also code coverage tools that give you a fairly accurate idea of your product’s test quotient.
There used to be a time when QA did not get due recognition and was considered an impediment to faster delivery and the QA team was isolated from all the action. However, things are quite different now. The ever changing dynamic market requirements and the customers pushing for more up to date solutions means software is being revised much more often now than before. This has opened everyone’s eyes towards investing in a solid QA strategy
QA Centers of Excellence (CoE) have been ramped up in organizations; these centers generate solutions aimed for the future. These teams are in touch with the latest technologies in their space and are the go-to people whenever a new project is initiated and people need to be trained.
I say that QA is finally getting its due because it is no longer looked at as a poor alternative to ‘cool’ coding. The tight integration between coding and testing is certainly taking us one step towards that. If you are a Project Manager, who is looking to specialize in the QA space, you can be rest assured that it’s not a bad time to do that.