Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Projects involving software are notorious for overruns and as project managers, were familiar with the signs: business
stakeholders get pressured to accept a reduced scope, the project team gets pressured to deliver more rapidly and external
stakeholders apply pressure to senior management and the project board. Meanwhile, the number of defects begins to rise and,
in many cases, critical defects relating to the basic design or operation of the system are found mid-way or late in the
development.
If we look at the technology related problems, quality issues are generally identified as defects and integration problems during
the various testing phases of the project. There are ways to mitigate these issues and some agile approaches can improve
quality. However, for the vast majority of software development projects there are still basic problems in how quality is built into
software products.
A better approach based on the principles that QA and test teams already apply is to treat all products delivered through the
project lifecycle as testable (i.e. assurable) items. Just like the code, documents and other artefacts are part of the overall
solution. When done properly, improving quality by addressing technical and business risk factors in early lifecycle products is a
high value-add activity.
The results from taking a more solution-based approach and assuring products earlier in the project can be dramatic. Figure
1[1] shows that the earlier a defect is introduced, the higher the ultimate cost of removing that defect e.g. removing defects
introduced at the requirements stage can cost 100 times more than defects introduced during integration.
Starting assurance earlier in the lifecycle may mean that QA resource is engaged on projects for longer, but the reduction in
workload towards the end of the project more than compensates for this (because fewer defects are discovered and re-tested).
Catching just one major issue early on could be enough to make the difference between on time and overrun.
There is some irony in the fact that one of the best ways to reduce your spend on testing effort is to do more testing, albeit of a
different sort to that which most test and project managers are accustomed to. We think about assurance as an ongoing activity,
not something we do after a piece of software has been built. The fact remains that by assuring and testing products earlier in
our projects, we can significantly increase the likelihood of avoiding technical surprises and thus bringing our projects in on time.
Making it happen - four steps for building quality into your projects
Step one: Mindset is critical. We often hear of the software development lifecycle (SDLC), which tends to focus the attention on
the software. Instead, we should think in terms of a SOLUTION DELIVERY lifecycle, in which all project/programme artefacts
form part of the solution and are subject to scrutiny by testers.
Step two: Identify the key artefacts produced during the solution delivery lifecycle, and define the business and technical risk
based acceptance criteria for them.
Step three: Coach the testers in the review process that you follow - these can range from full blown Fagan type inspections
that appeared in the late 1970s to informal reviews. Exercise caution here: it is all too easy for this kind of assurance activity to
turn into a box-ticking exercise and assurers need to have people skills and objectivity.
Step Four: Record the outcomes of inspections or reviews as you would for a software defect, assigning priorities to the
defects; if using a defect tracking tool, record the fact that they were raised following an inspection and identifying the artefact
that they were found in. Independence from the project is important to ensure objectivity and assurers should not normally be
part of the project delivery team.