Applications Services Blog
Get the latest thought leadership and information about the role of Applications Services in an increasingly interconnected world at the HP Blog Hub.

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

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?

 

Previous blogs in the Producing Quality Software series by Jim Hughes:

Previous Focus on Fundamental blogs 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.

Leave a Comment

We encourage you to share your comments on this post. Comments are moderated and will be reviewed
and posted as promptly as possible during regular business hours

To ensure your comment is published, be sure to follow the community guidelines.

Be sure to enter a unique name. You can't reuse a name that's already in use.
Be sure to enter a unique email address. You can't reuse an email address that's already in use.
Type the characters you see in the picture above.Type the words you hear.
Search
About the Author
Jim has been with HP for 33 years and currently leads a global Strategic Capabilities Management team, with a specific focus on Business Ana...


Follow Us
The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the Terms of Use and Rules of Participation