Software Quality: Definitions and Strategic Issues

In general, software quality is crucial in software engineering. Read this article and explore the various definitions of quality and the quality models. Notice the priority of quality factors and how software quality can be measured.

3. The strategic importance of quality

3.1. Quality and the system developer

Software developers need to consider quality from two points-of-view. The first addresses issues that relate to developing generic product for off-the-shelf sale in the High Street. The second is their philosophy relating to the management of quality and quality assurance for bespoke product development.

3.1.1 Marketing strategy

Developers producing generic products will need to map their strategic philosophy to a model like Porter's (1980) generic business strategy (Figure 3.1).

Product Differentiation. By following this strategy the organisation hopes to win customers by offering "better" products or services than its competitors. The organisation adopting this strategy must focus on building unique products and services and publishing their existence.



Overall Cost Leadership. By following this strategy the organisation seeks to win customers upon the basis of cost, for a given level of quality and service. The organisation must focus on "good" cost control, seeking cost reductions wherever possible. This cost leadership can be achieved throughout the value chain, from low unit cost raw materials to low unit cost distribution process.
Focus/Niche. By following this strategy, the organisation is targeting particular parts of the market, such as certain customer groups or a regional area. This basis for competition is selective but, within the niche market, competition is either on a low cost or differentiation basis.

Figure 3.1 - Porter's generic business strategies (after Robson)

This model identifies three different strategies that an organisation can employ - product differentiation, overall cost leadership and focus/niche. To implement Porter's model Robson (1994) suggests a three step approach. 

 

  • What basis? - alternative competitive strategies

The basis (or alternative competitive strategy) is to decide on differentiation, cost leadership or focus/niche. Reading the text in the model we can see that quality is all important - "better" products or "level of quality" being the requirement. The significance of quality as a strategic marketing technique can be seen from the following observations by Hooley and Saunders (1993).
"A prime factor in differentiating the product or service from that of competitors is quality". They continue, "of central importance is the consumer's perception of quality which may not be the same as the manufacturer's". "Quality has been demonstrated to be a major determinant of success. Indeed, Buzzell and Gale (1987) concluded that relative perceived quality (customer's judgements of the quality of the supplier's offer relative to its competitors) was the single most important factor in affecting the long run performance of a business. Quality was shown both to have a greater impact on ROI level and to be more effective at gaining market share than lower pricing".

 

  • Which direction? - alternative decisions

Under which direction, Robson quotes seven alternatives: do nothing, withdrawal, consolidation, market penetration, product development, market development and diversification. 

  • do nothing - do nothing new, continue as before, go with the flow
  • withdrawal - the organisation withdraws from the market - no demand
  • consolidation - stabilise with a view to accumulating reserves for future development
  • market penetration - generating growth within the same market
  • product development - creating new products for the same market
  • market development - expanding through new market uses, geographical expansion or new market sectors
  • diversification - new products for a new marketplace

So the organisation will have to decide which directional approach best suits their situation at any particular time.

 

  • How? - alternative methods

Having decided on which direction it is then necessary to decide to what extent quality can be incorporated into their plans. According to Robson, two of these directions - consolidation and market penetration - are achieved by increasing quality. So software developers are well advised to include quality as part of the strategic policy.

 

Examples of the three alternative strategies in the marketplace are: 

Differentiation. A very successful Irish payroll system which was developed to reflect social insurance, income tax and other criteria which were specific to Irish employment. This product had many usability quality factors that competing products - which had been developed for other countries - were missing. The developers were able to charge a higher price because of their differentiation strategy.

Low cost leadership. There is a very well known microcomputer operating system which has been persistently sold by its developers at a low and affordable cost as a strategy to gain market penetration for their product. The same developers also produce a full range of office automation products which run on this operating system. So the low cost leadership strategy has achieved the desired market penetration and has also supported their efforts to achieve a dominating position in the marketplace. Another example relates to the Internet. Service providers are prepared to make browsing software for the Internet available free of charge to fee-paying subscribers to their internet service.

Focus/Niche. The industry standard product for professional desktop publishing on the Apple range of computers is an excellent example of focus/niche. It provides full functionality for the tasks to be completed and is the leader by far in the marketplace. However, having only the one product the developers need to be conscious of their vulnerability. There are other specialist applications (the professions like engineering, medicine, auctioneering etc.) that fit into the focus/niche category.

 

3.1.2 Tendering and cost estimation

If the developers are producing product on a bespoke basis, then entering into contracts will be a major part of their business. Obviously, being ISO 9000 certified will be in the developers favour when seeking enquiries. Current European Union requirements stipulate that those seeking to submit tenders for projects within the European Community must be ISO 9000 certified. It also follows that organisations that are ISO 9000 certified for tendering purposes will have little difficulty marketing their generic products on the High Street.

It is easy to agree that quality costs money. Most people can quote a motor car example. So we should expect that software quality factors will play a prominent part in software costing and estimating. And so they do. Two tables prepared by Boëhm (1984) - see figures 3.2 and 3.3 - as part of the Constructive Cost Model (COCOMO) model for software estimating, list factors like re-use, reliability, conformance with external interface specification (interoperability) and storage constraints. All of these are specific quality factors. Also to be considered as part of the estimating process is the all embracing "need for software conformance with pre-established requirements". Good estimators will want to consider all quality factors in their calculations irrespective of whether they are stated in the requirements specification or not.

Group Factor
Size attributes

Source instructions

Object instructions

Number of routines

Number of data items

Number of output formats

Documentation

Number of personnel

Program attributes

Type

Complexity

Language

Re-use

Required display

Display requirements

Computer attributes

Time constraint

Storage constraint

Hardware configuration

Concurrent h/w development

Interfacing equipment/software

Personnel attributes

Personnel capability

Personnel continuity

Hardware experience

Application experience

Language experience

Project attributes

Tools and techniques

Customer interface

Requirements definition

Requirements volatility

Schedule

Security

Computer access

Travel/rehosting/multi-site

Support software maturity

Figure 3.2 - Factors used in cost estimating models.

 

Feature
Mode
  Organic Semi-detached Embedded
Organisational understanding of product objectives Thorough Considerable General
Experience with working with related software systems Extensive Considerable Moderate
Need for software conformance with pre-established requirements Basic Considerable Full
Need for software conformance with external interface specification Basic Considerable Full
Concurrent development of associated new hardware and operational procedures Some Moderate Moderate
Need for innovative data processing architectures and algorithms Minimal Some Considerable
Premium on early completion Low Medium High
Product size range < 50 KDSI < 50 KDSI All sizes

Figure 3.3 - COCOMO software development modes. 

 

3.1.3 Human Resources and quality 

Human resource management is part of all good strategic policy. Brendan Lawlor, Quality and Methods Manager at Kindle Banking Systems in Dublin, believes that quality is achieved through people. He is supported by Gillies (1992) who holds the following view: 

  • It is people and human organisations who have problems to be tackled by computer software.
  • It is people who define the problems and specify the solutions.
  • It is (currently) people who implement designs and produce code.
  • It is (currently) people who test code.
  • It is people who use the final systems and who will make judgements about the overall quality of the solution.

So software developers need to put in place human resources policies as part of their strategic plans. As part of this strategy the following issues might be considered:

  • Selecting only top talent to work on a development team.
  • Matching staff skills to tasks to be completed.
  • Understanding that the special career progression needs of computer people are not necessarily the same as for other staff. Creating teams with balanced age, experience and skills.
  • Removing mis-fits who are not achieving with the team.

 

3.1.4 Productivity 

And finally, productivity is improved through focusing on quality factors and through a quality assurance system. Quality factors like reusability and portability improve the production process in that development time and testing time are both reduced. Developing with maintenance in mind will reduce the time and cost of maintaining products in their later life. Object oriented techniques, too, will improve productivity through well organised class libraries and re-use philosophies. 

In relation to the implementation of ISO 9000, Macfarlane (undated) explains that the first evidence [of productivity] appears when an engineer says "It's really nice to always be able to get a current copy of the functional specification". Obviously a published quality policy and quality plan, understood by all employees will make for a more efficient workforce. Improved productivity ensues.