Ensuring quality software delivery in a rapidly evolving market
22 May 2019 | 0
Quality is an intrinsic part of what IT delivers in software development, but the pressure to deliver quality at speed has never been greater, while the definition of quality itself is also getting broader. Today’s end user is more discerning and tech savvy than ever, so their expectations are higher while their tolerance for poor experience is lower. There’s a growing view that good functionality alone can’t be the only important part of a software quality agenda. In today’s digital world, we shouldn’t consider software as delivered unless the customer experience matches expectations.
These external pressures challenge IT in how it responds, and in the technical skills of the test resources that it allocates to help the organisation deliver quality. This means the way to build and embed quality into software development also needs to change.
It used to be that the project would start with writing a specification, followed by writing the software, testing it and then implementing. Now, some of these tasks are running simultaneously at a rapid cycle. It’s common to see version 1 go live while developers are already working on version 2.
If the business demands faster delivery without sacrificing accuracy, the first step is to define the right software quality assurance strategy. There is no “one size fits all” approach to this, since no two organisations follow exactly the same development model. Some companies still hold to the traditional ‘waterfall’ approach of a development life cycle, which is a disciplined way to build software. Others have responded by using Agile approaches or moving to DevOps practices, with fast-moving multi-disciplined teams. Some organisations combine both approaches: a more traditional model for updating core backend systems and more agile models for newer digital technologies. This makes sense, because legacy systems don’t need to change as often as a front-end Web offering.
It’s been a long-standing experience in the software industry that the later you find bugs, the more expensive they are to fix. Introducing speed tends to carry the risk of greater error, so it follows that the faster you update software, the more frequently you need to run tests. Relying on quality testing only at the end of the development cycle makes it more likely to delay the go-live date because it will take longer to solve all the problems that arise.
I believe organisations should look to build quality in to their development lifecycle as early as possible and use testing to validate that quality rather than as a defence mechanism to catch bugs that have passed through unnoticed. If your development team is running sprints every two weeks, and you want a deployable output every two weeks, then it’s essential to get quality right, and quickly. There are a variety of Agile approaches being used, including Scrum, Kanban, Lean, Extreme Programming (XP), and TDD. A key constant is the increased reliance on automated testing.
I believe organisations need to look at their SQA model and how they are testing, what resources they are allocating, and whether they’re doing so efficiently. This is particularly important where Agile approaches are being used as the responsibility for software quality is shared across the team. The reality is, there is never enough time to test everything 100%, so you test what’s most appropriate, giving sufficient coverage that focuses the most energy on the parts of the code with the greatest risk. This approach depends on understanding the strategy first and making decisions based on that. The fundamental principles are to keep the design simple, make it easy to test, then test intelligently and make sure all the team are contributing to the quality agenda as suits their roles.
At Vantage, our main business is supplying ‘quality’ resources. These can be to deliver projects directly, deliver a service or to augment a customer’s own team. To help with software quality, we also provide Metisure, which is a flexible framework to help clients assess their current state and map their future desired state and develop quality roadmaps and SQA strategies. Metisure also has a full suite of processes covering all aspects from test planning, to preparation and execution, all the way to closure. And it has a facility for reviewing and improving which you can feed it into your process for the next time round.
Metisure is not designed to be prescriptive. Instead, it’s a set of best practices that an organisation can blend with the development models it prefers. Metisure is a toolbox to help organisations find the approach that’s right for them, and that delivers the quality they require.
Paul Verjans is CTO of Vantage Resources software quality and testing practice