testiloquent

Testing-EssentialsThink Like a TesterTest StrategyTest Tooling, AutomationTest Analysis and -DesignPerforming Tests and ReportingAppendix


Quality Assurance in IT Organisations

You will recall our definitions of quality - fit for purpose and value to some person. How different projects go about assuring quality will depend to an extent on the development approach or software development lifecycle model (SDLC) they apply.

Software Development Lifecycle Models (SDLCs)

The SDLCs most larger IT departments in Switzerland use can be broadly categorized as sequential or iterative.

Sequential SDLCs

Well into the 2010s, phase-gate processes were the preferred way of managing projects in larger firms. For software development projects in these companies, a sequential SDLC was the norm.

Squeezed into the project plan before the software is delivered to customers, the testing phase inevitably becomes a bottleneck, especially when errors in the requirements specifications or far-reaching system design decisions are discovered at this late stage in the project.

The V-Model SDLC was in widespread use in large IT organisations in Switzerland. It addressed the testing bottleneck problem by explicitly mapping testing to each project phase. The W-Model SDLC, a variant of the V-Model, includes the reviews (points 1-5 in the diagram below) that are carried out to conclude the earlier project phases.

<a href="https://en.wikipedia.org/wiki/V-model_(software_development)> V-Model diagram. Image source: https://upload.wikimedia.org/wikipedia/commons/e/e8/Systems_Engineering_Process_II.svg</a>
Fig. 1: V-Model
W-Model diagram
Fig. 2: W-Model

In larger projects, the testing phase would be a sub-project, led by a test manager, producing deliverables much like those defined in the IEEE standard.

Iterative Software Development

Over the past 10 years, Agile software development has gained popularity in Switzerland, resulting in sequential SDLCs gradually falling out of favour. Thus it’s likely that in your place of work, teams will be applying an Agile framework - usually Scrum, Kanban, and sometimes the hybrid. (Find out more about Scrumban in Wikipedia or on the Agile Alliance site.) In large IT organisations, you’ll also likely encounter a scaling framework such as SAFe.

Although Agile teams will likely see the Agile Manifesto and the principles behind it as their “North Star”, Scrum teams and Kanban teams will generally adopt most or all of the ground rules laid out in the Scrum Guide / Kanban Guide, how Agile teams work can vary from one organisation to another.

Quality Assurance in Sequential Software Development

Quality assurance in sequential software development is likely to center around standardization:

Value to Some Person

Dig around in the project documentation, and you will likely find a business case, and perhaps an investment appraisal. These documents laying out the projected savings or increased earnings that the software ought to make possible over time reference value to the company.

Fit For Purpose

The purpose that decision-makers envision for the product and the way customers are expected to use it might be documented in requirements specifications, some of which might be supplemented by use cases or other models.

Quality Assurance in Agile Software Development

In Sooner Safer Happier, Jonathan Smart nicely sums up the essence of quality assurance in Agile software development:

One of the principles states: “Simplicity, the art of maximizing the amount of work not done, is essential.” The focus is on outcomes over output. That is, maximizing outcomes with minimal output, the most value for the least effort. The definition of “productivity” is the number of units of output for each unit of input, which for unique emergent work is not optimal. Instead, the focus should be on “value-tivity,” maximizing outcomes for the least output. – Smart

Value to Some Person

This aspect of quality is addressed clearly in the principles behind the Agile Manifesto.

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

The Manifesto is not a prescriptive document. It does not include detailed instructions on how Agile teams achieve this. The values and principles it lays out describe a mindset and culture that make it possible for teams to define their own ‘best’ practices - and in subsequent iterations, to define their own ‘even better’ practices.

Fit For Purpose

The Agile Manifesto and the principles behind the Manifesto place great emphasis on working software, close collaboration with business and welcoming changing requirements, signaling a commitment to delivering solutions that are fit for purpose.

This commitment is supplemented by the values of continual improvement and responsiveness to change and the principles of craftsmanship and simplicity. The greater the ability of an Agile team to work according to the values and principles, the better equipped they should be to continually deliver solid solutions, even in a rapidly changing project environment.

SDLC Project Organisation

The various phases in a V- or W-model project demand people with specific skills. The specialists may be organised centrally so that they can move from one project to the next as their skills are required.

example project plan for sequential SW development
Fig. 3: Planning Specialist Teams in Sequential SDLC Projects

Agile Project Organisation

Dilbert comic - pointy-haired boss introduces Agile: more work with fewer people. Image source: https://www.flickr.com/photos/rudavis/5266579259
Fig. 4: Pointy-haired boss hears Agile's siren song

How Agile teams organise their day-to-day work will depend on the framework they have chosen for their team and how they have tailored their process to suit their own needs.

Furthermore, the team may practice DevOps, which will impact tooling and processes for building, deploying and maintaining software:

DevOps is a set of software-development practices that combines a software development mentality with other functions in the organization. DevOps puts a heavy emphasis on shared responsibilities across all teams throughout the software development life cycle. The edges of job functions soften, as operations team members take on tasks that were traditionally more developer-focused, and development team members do the same. The term DevOps is most commonly associated with development (Dev) and IT operations (Ops), but the approach can be extended to other groups as well, including but not limited to security (DevSecOps), QA, database operations, and networking. – Smith

Finally, in larger IT organisations, a scaling framework such as SAFe will likely be in place. SAFe introduces additional roles, processes and events that teams need to take into consideration.


Previous: Why Test? ▪ Next: Testing in IT.