Enterprise Services
Showing results for 
Search instead for 
Do you mean 

Producing Quality Software (Part 3 of 5): How can we produce Quality Software?

‎02-27-2014 08:36 AM - edited ‎09-30-2015 07:01 AM

By:  James (Jim) R. Hughes, Global Business Analysis Capability Leader, Hewlett Packard Company


check.jpgSo far, we have considered a better definition for software quality (What is Software Quality?) than the usually offered definition — e.g. defect-free — and have established that every role on a project is responsible for software quality (Who is Responsible for Software Quality?) — not just the testing team, as it is often suggested. This next blog in the series considers how we can produce quality software.






Constructing software is similar to constructing a custom home—consider the following parallels:


Custom Home

Custom Software

Architect understands the buyers’ needs and defines initial design objectives; reviewed and signed off

Clear, correct, concise requirements defined; reviewed and signed off

Building located in a city neighbourhood

System located within customer’s business process context

Building optimally located on a lot (e.g. street access, connection to services, good views, sun exposure, retaining mature trees, etc.)

System optimally situated in context of customer’s automated systems

Location of rooms, windows, plumbing, outlets, and fixtures, ease of flow from space to space; draft design

‘Location’ of every function and user and system interface identified; wireframes of system flow

Architect’s design; reviewed and signed off

System Architecture; reviewed and signed off

Construction blueprints; reviewed by civil engineers

Module decomposition/design; reviewed by s/w engineers

Build schedule prepared

Build schedule prepared

Day-to-day on-site management of skilled trades

Day-to-day management of skilled resources

Interim municipal inspections for conformance to building code (foundation, electrical, insulation, etc.)

Work product reviews and unit, system, performance, etc. testing.

Pre Delivery Inspection

User Acceptance Testing


The process outlined above would often be referred to as a ‘waterfall’ process. However, contrary to what most people think, properly applied agile and iterative processes follow essentially the same steps, but with some of them in repeated shorter cycles. Regardless, following a standard, disciplined, process is the first step toward producing quality software.


Another key aspect, which may not stand out in the steps above, is the application of skilled resources. It surprises me how often management of software projects attempt to reduce costs by assigning less experienced resources to projects in order to reduce costs. They wouldn’t do that if they were building their own custom home — they would want the most skilled resources they could find, at a reasonable cost.


An additional consideration for producing quality software can be illustrated by the following example. When I am shopping, I sometimes see a product that has fallen on the floor. If I see this, I will usually stop and pick up the item and place it back on its hook or shelf. What amazes me is how often store staff walk by an object on the floor and not pick it up. When I see this, I feel like complaining to the store manager or simply leaving over their lack of concern. This example provides an analogy for our consideration of software quality. It is often said that in the commercial sector, “retail is detail.” The same applies to any well-done job — whether it is completing free throws in basketball, making cabinets, or writing software.


Other key factors contribute to the production of quality software such as the commitment level of team members, team camaraderie, openness and honesty, clear communication, and timely decision making. However, the three most important factors for producing quality software are to:

  1. Follow a disciplined process
  2. Use skilled, experienced, resources in all roles
  3. Pay attention to the details.

Next up:  Part 4 – Why should we produce Quality Software?


Other blog postings by Jim Hughes, which address the challenges that limit applications solution delivery success, and how to overcome them:



Blogs in the Producing Quality Software series by Jim Hughes


Other blogs by Jim Hughes:


About the Author


Jim-150X210.jpgJames (Jim) R. Hughes, Global Strategic Capability Leader, Hewlett Packard Company

Jim has been with HP for 33 years and currently leads a global Strategic Capabilities Management team, with a specific focus on Business Analysis and Configuration Management. Jim also manages a team within the US State, Local, and Education division of HP.  He was a member of the IIBA committee that created a Business Analyst Competency Model and he participated in the development of IEEE standards.  Jim graduated from Harvard University, the University of British Columbia, and Ottawa Theological Hall.  He currently lives in Toronto, Canada.

0 Kudos
About the Author


Jim has been with HPE for almost 35 years and leads a matrixed global Strategic Capabilities Management team. His specific focus is on the Business Analysis capability. Jim is also a member of a team within the US Public Sector division of HPE, responsible for delivering application software to Federal and State governments. He was a member of the IIBA committee that created a Business Analyst Competency Model and he participated in the development of IEEE standards. Jim graduated from Harvard University, the University of British Columbia, and Ottawa Theological Hall. He lives in Toronto, Canada.

Nov 29 - Dec 1
Discover 2016 London
Learn how to thrive in a world of digital transformation at our biggest event of the year, Discover 2016 London, November 29 - December 1.
Read more
Each Month in 2016
Software Expert Days - 2016
Join us online to talk directly with our Software experts during online Expert Days. Find information here about past, current, and upcoming Expert Da...
Read more
View all