As progressive organisations embrace the agile development methodology to remain competitive, the traditional rules of software development have hit the spotlight. Is there still a need for a Quality Assurance team?
More aspects of delivery and testing processes are automated to enable faster turnaround for the end-user, blurring the lines of accountability between software developers, testing teams and those in charge of delivery. Where months were once spent detailing the requirements of a system before the development, testing and production stages even took place, the agile methodology breaks this process down.
Now software features and solutions are delivered in incremental development cycles within significantly shorter timeframes.
Following the emergence of test driven development (TDD), code testing is integrated throughout the lifecycle, with software testing instigated at all stages of development. Some specialists believe TDD deems unit testing as unnecessary.
Traditionally, responsibility for software bugs rested with the testers. Now, more and more companies are transitioning to a change in company culture so that software developers take full responsibility for the code they write.
So, should unit testing be removed altogether? And who is ultimately responsible for the quality of the code?
Kareem Tawansi, CEO of Solentive Technology Group says the testing function does not need to be removed, but this does not mean that software developers are not accountable for the quality of their code. The CEO believes accountability is paramount.
According to Tawansi, when software developers take ownership, this speeds up the deployment process so that usable software can be released within shorter timeframes for a faster return on investment.
“Quality software development requires thorough testing to allow developers to fix bugs before they go any further,” explains Tawansi, “It is imperative that software developers remain completely accountable for the quality of their code.”
The adoption of the agile methodology requires that more than ever, before every person in the software builds from an idea to the final release, they must work together to ensure that the software is robust, bug-free and dependable.
Tawansi emphasises that while testing should remain a function of the Quality Assurance team, it is important that the development team work side-by-side with the Quality Assurance team all the way through.
“In the past,” says Tawansi, “the Quality Assurance team were generally not involved from the start of a project. They were not included in the requirements gathering process and they were given unrealistic deadlines. In an increasingly agile world, it is absolutely essential that everyone has a similar understanding of what is happening.”
Successful agile software development requires the teamwork, discipline and accountability of every party involved in the software build. Working with a team that is dedicated to quality at every stage of the software development lifecycle will ensure that your organisation will achieve a faster return on investment.