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