Developing robust, bug-free, functionality-rich and high quality software is the objective of every solution developer; but achieving this is a challenge. Contrary to common perception, Quality Assurance (QA) teams are not the gatekeepers of quality. In fact, quality is a collective effort where a number of people across teams play a role. The software development methodology employed is the key to delivering this team effort.
Typically, a number of metrics are used to demonstrate the quality of software and different organisations use a variety of measures, depending on what they want to track, control and improve. Over the past few years, the Lexis Visualfiles development team has embarked on a journey to move away from the Waterfall methodology to embrace the Agile approach to software development. We found the Waterfall methodology to be rigid and it created a culture of isolation among teams; and in some cases, a division of labour between groups, for instance, "developers" and "testers". With Waterfall, when development is complete and testing actually starts, there is always a danger that there won’t be enough time to test everything set out in the plan as defect count and testing are the last processes before delivery. With this kind of ‘big bang’ approach, the increased risk of defect leakage to the quality of the software increases. Keeping pace with change is an issue also as there is no easy mechanism in this methodology to keep up with shifting client needs.
On the other hand, the Agile approach to software development is iterative, and enables different teams and functions to work together continuously throughout the project. We are able to ‘show and tell’ completed features and fixes internally and externally at regular intervals. This approach ties in with the most important principle of Agile – i.e. satisfying the customer through early and continuous delivery. It’s worth noting that ‘customer’ in this context can be internal and external. From an internal perspective, we receive daily builds and work closely with all those involved in the project to continually give and receive feedback. This has a positive impact on quality as the testing team has visibility of any changes introduced daily as result of fixes or enhancements, so there are no big surprises. Regular demos and retrospectives mean that not only do we get validation for our work, but that we are constantly improving how we work. Working together and communication are key to project success and responsibility is shared amongst the teams collectively. From an external perspective, this approach means that we can engage sooner with the customer and build in their feedback continuously in the product.
Also, we find that the Agile methodology facilitates good communication and helps build strong relationships with clients. A collaborative approach truly supports a partnership-led attitude between the two parties, which is valuable as every project is powered by a variety of complementary expertise.
If you are looking for more information on our approach or would like to participate in the development of new requirements, please speak to your Professional Services advisor.