Project Management and Software Quality

advertisement
Project management tools and software quality
Project Management and Software Quality
One of the most important topics in the entire software quality domain is the relationship between
software quality and software project management. This relationship is also true between quality
control and project management for manufactured and engineered products.
W Edwards Deming, Joseph Juran, Phil Crosby, and most other quality experts have asserted that the
main source of quality problems can be assigned to management rather than to technical workers.
For software quality, the correlation between project management and quality is both strong and
somewhat disturbing. Among SPR's client companies and the software projects they have analysed, the
following correlations have been noted for a sample that comprises more than 100 companies and more
than 1,000 software projects.
Project Management Approaches Correlating with Poor Software Quality:

Use of manual project estimation methods

Use of manual project planning methods

Failure to estimate or consider software defect potentials

Failure to estimate or even know about software defect removal efficiency

Failure to perform even rudimentary risk-analysis

Failure to provide time for pre-test inspections

No historical quality data from similar projects available

Milestone tracking absent or perfunctory

Defect tracking absent or perfunctory

Management focus was concentrated only on schedules

Schedules (and costs) tended to be overrun
By contrast, for projects that had a synergistic combination of low defect potentials, high defect
removal efficiency, and high user satisfaction, the following correlations have been observed.
Project Management Approaches Correlating with High Software Quality

Use of automated project estimation methods

Use of automated project planning methods

Use of early and automated estimates of software defect potentials

Use of early and automated estimates of software defect removal efficiency

Formal project risk-analysis

Provision of adequate time for pre-test inspections

Historical quality data from similar projects available

Milestone tracking automated and thorough

Defect tracking automated and thorough

Management focus was concentrated on achieving excellent results

Schedules (and costs) tended to be achieved
1/3
Project management tools and software quality
Although the correlations are indirect, a very useful approach is to examine the set of software project
management tools utilised. To a surprising degree, software quality levels can be correlated with the
usage of a robust set of project management tools, although the correlation with a set of quality
assurance and testing tools is even stronger.
Seven software project management tools stand out as having a significant impact on software quality:
1) Project planning
2) Project estimating
3) Risk analysis
4) Milestone tracking
5) Resource tracking
6) Methodology management
7) Assessment support
Project planning tools are the standard general-purpose tools for performing critical path
analysis, producing Gantt charts, and in general laying out the sequence of activities associated with
projects of any type, including software. These tools are often called "project management" tools but
for software they perform such limited functions that "project management" is actually a misnomer.
Examples of project planning tools include Artemis, Microsoft Project, Primavera, Time Line, and at
least 80 others in the United States alone. They, affect quality in the hands of expert software managers
because they can show the time needed for effective quality approaches such as formal inspections. For
software, project planning tools are not sufficient but usually are coupled to software estimating tools.
Project estimating tools are specialised predictive tools aimed specifically at software projects.
These tools include sizing capabilities, schedule and cost estimating capabilities, and for several,
quality and reliability estimating capabilities as well. Many support both function point and lines of
code estimates and include automatic conversion in either direction.
Examples of software estimating tools include Bridge Modeler, CHECKPOINT, COCOMO, Estimacs,
Price-S, Seer, SLIM, SPQR/20, and perhaps 50 others in the United States alone.
These tools are particularly important for software quality because they include "what if" modelling
capabilities that can demonstrate the impact of various QA approaches such as formal design
inspections, formal code inspections, testing specialists, and so forth. Several software estimating tools
include a "side-by-side" capability which can show the same project as it might appear using two
different development scenarios so the value of effective QA methods can be seen easily.
These tools are often closely coupled with project planning tools.
Risk analysis tools are either special custom-built tools usually found within large corporations or
they are add-on features associated with software project estimating tools or methodology management
tools. Whether they work in standalone mode or as part of another tool, they usually predict technical
risks (i.e., inadequate defect removal, requirements volatility). A few can also predict sociological risks
(i.e., excessive schedule pressure, staff burnout).
Some risk-analysis tools can predict the probability that a software project will run late, exceed its
budget, or even have a high probability of litigation.
Milestone tracking tools record both planned and actual events that are deemed critical for
software projects. Examples of typical milestones include completion of high-level design, completion
of design inspections, completion of low-level or detailed design, completion of coding, completion of
code inspections, completion of first drafts of user manuals, and so forth.
Milestone tracking tools are seldom found as standalone tools, although custom milestone tracking
tools circa the 1970s sometimes are still used. More often, they are noted as add-ons to either project
planning tools, project estimating tools, or methodology management tools.
2/3
Project management tools and software quality
These tools have a role in software quality because they can highlight quality events.
Indeed, within leading companies the quality milestones are the major drivers of software development
processes and the rest of the development cycle is built around quality milestones such as completion
of design and code inspections and various test stages.
Resource tracking tools are one of the oldest forms of project management capability, and have
existed in standalone mode since the late 1950s and have been part of other project management tools
ever since. Resource tracking tools accumulate data on the human effort and costs expended on
software projects.
Ideally, these tools will support a very granular chart of accounts so that costs can be apportioned to
specific activities. However, sometimes the charts of accounts are too coarse to be really useful.
For quality cost and resource measurements, the charts of accounts should identify the effort devoted to
inspections, all forms of testing, and to some kinds of defect prevention approaches such as joint
application design UAD) and quality function deployment (QFD). These tools, properly used, allow
retrospective economic analysis to be performed.
One strong criterion for precision in the quality domain, which is often lacking, is that these tools
should capture unpaid overtime and show this as a separate category. Unpaid overtime is a major
component of quality control, because more than half of the total volume of unpaid overtime usually
occurs during late-night and weekend testing marathons.
Methodology management tools are a fairly new category of software project management
tool. These tools may include planning and estimating support and also aspects of risk management and
even quality estimation. They are usually keyed to one or more of the standard software development
methodologies such as information engineering, rapid application development (RAD), Merise, or
conventional structured analysis and design. Within this context, they provide guidance for what
deliverables are needed, scheduling, planning, and other management topics.
The concept of the methodology management approach is to aggregate a number of managerial
functions under one umbrella. Here too, these tools may be coupled to software project planning and
software estimating tools, or planning and estimating capabilities may be integrated into the
methodology management tool itself.
Assessment support tools are another fairly new class of automated tools that are keyed to one or
more of the standard forms of evaluating software methods and approaches, such as the Bootstrap
approach, the ISO 9001 approach, the Software Engineering Institute Capability Maturity Model (SEI
CMM), or the Software Productivity Research (SPR) assessment method.
When used near the beginning of major projects (i.e., > 5,000 function points) they can highlight both
strengths and weaknesses. Obviously, the weaknesses will need repair prior to moving into full
development. Assessment tools can either be standalone tools or add-ons connected to software
estimating tools or software methodology management tools.
The most sophisticated assessment tools can also serve to gather data that can modify cost, schedule,
and quality estimates. Several software cost estimating tools have assessment gathering input
capabilities (CHECKPOINT, SLIM, COCOMO II.)
3/3
Download