Quality Management Practices in Software Development

Reaffirming our commitment to quality management in software development with ISO9001 certification

We recently reaffirmed our commitment to quality by becoming ISO9001:2008 certified. While ISO9001 certification does not in and of itself ensure quality, it strengthens the 6th pillar in our software development quality assurance practice: Quality of the integrated organisation wide system for managing quality.

Our 6 pillars of quality assurance (Quality of Explicit and Implicit User Requirements Elicitation, Functional Quality, Code Quality, Reliability, Quality of User Experience and Quality of the Organisation Wide Quality Management System) have evolved through our experience developing applications across software and hardware engagements, technology platforms, industries and value chain activities. This experience has taught us that while quality concerns everything that affects user experience, behind that statement there are many important layers each requiring a structured approach to management for quality. Because we believe quality to be the most pivotal aspect of any software development engagement, we elaborate on our philosophy and practices across each pillar, below.

Quality of explicit and implicit user requirements elicitation

Incorrect, inaccurate, or excessive definition of requirements undoubtedly leads to schedule delays, wasted resources and ultimately customer dissatisfaction. Because of this, we invest a lot of time and effort upfront to ensure we get it right. While this puts us at risk of prospective clients using us as a free software specification service and going for a cheaper quote from an entity that has simply had the full specification handed to them, we wouldn’t have it any other way. Not at the risk of the customer rushing the process to minimise cost and getting an application that doesn’t fully do the job it is meant to do. We’re also careful to select and train account management teams with strong technology expertise, strong business acumen and strong communication skills. This ensure’s our people are positioned to understand the customer’s needs rather than over quoting for unknowns or confusing them with technical jargon. The practices we’ve set up to deliver quality requirements elicitation are our first layer of quality.

Functional Quality

The next layer of practices we’ve set up to manage quality is concerned with our aspiration to achieve zero defects for each project; as end users are rarely happy with software they perceive as buggy. In this regard, we’ve put in place a range of quality tests including architectural design sign off, peer review, automated testing scripts and manual tests.

Code Quality

Code quality is one of the hardest aspects of quality to test and one that, for the sake of cost savings, may be neglected as it isn’t immediately obvious to the customer that it has been missed. Effective management of quality in this area ensures that the code is organised in a way that makes testing easy, that it is easy to add new code or update existing code without making the existing system susceptible to malfunction, that the code is understandable so that people working on it later don’t have to redo it at a cost to the client, that the code is efficient (i.e. it does what it is meant to do in the simplest and quickest way) and that the code has an inbuilt layer of security by design (in case of temporary lapses in the security of the client’s IT environment). Our quality management practices in this regard include code quality testing scripts, peer review of code and outsourced testing of all final code prior to deployment.

Reliability

Reliability is concerned with minimising the probability and range of events that could occur to prevent the application from doing the job it is meant to do. With regard to this pillar, codium has put in place a number of reliability assurance practices that include reliability design tests, automated and manual server monitoring to identify any issues in real – time, predictive monitoring scripts to anticipate potential issues and enable them to be resolved before affecting end user experience and regular onsite visits to identify client IT environment issues.

Quality of User Experience Design

User Experience Design is concerned with how efficiently, effectively and enjoyably a software application performs the job it is meant to perform for end users. While some may not see it the same way, we see it as a critical quality issue since it impacts top line KPIs such as sales revenue, repeat purchases and average spend per transaction as well as bottom line KPIs such as resource productivity and operating margins. As part of our management of quality in this area, we’ve developed specialist workshops for our developers and pre release UX and Gamification checklists for all applications as a minimum. On top of this, and depending on the client budget, we have built relationships with specialist UX, Gamification and Software Testing strategic partners whom we engage to maximise user experience benefits.

Quality of Quality Management System

The final pillar in our quality assurance is ensuring that our different systems and processes work together in an integrated and seamless manner to deliver world class quality and reliability first-time, every-time. It is with this in mind that we undertook and maintain ISO9001 certification. That is, to ensure we have in place a continuously audited world class system for maintaining the organisation structure, procedures, process and resources to deliver world class quality standards and improvements in these standards.

About Codium

Codium is one of Australia’s leading providers of ISO9001 certified custom software development and support services, with a particular focus on Cloud Application Development, Business Process Automation, software integration, Database Development and IoT services. Our Clients include ASX listed resources companies, innovative small and medium sized entities across Australia, Federal and State government institutions and community development agencies. From time to time we write about emergent themes and practices from our broad technology engagements across industries, organisation types and value chain activities. Where we have the permission of our clients, we also share case study examples of these themes and practices in action. The most recent of these can be found on our website at www.codium.com.au