In this chapter we discuss how to conduct software project assessments.  The scope of a project assessment includes the end to end methodologies for the development and management of the project. Development methodologies refer to the development process from requirements and specifications, to design, code, integration and driver build, testing, and early customer programs (when applicable ), tools and development environment, sizing and schedule development, dependency management, and overall project management. The level and scope of concern here is different from the discussions in the last chapter in which the focus of interest was to determine a project's in-process quality status and whether it is on track to achieve its quality objectives. Here we are concerned with the overall development effectiveness and efficiency, and improvement opportunities. In-process quality assessments are key activities of the project quality management effort and conducted by members of the project team. Project assessments are invariably conducted by people external to the project team. A project assessment can be conducted when the project is under development or when it is complete. Usually, a project assessment is triggered by some unfavorable field results, with the intent to improve a follow-on release or another project by the same team.
 An earlier version of this chapter was presented by Stephan H. Kan and Diane Manlove at the Tenth International Conference on Practical Software Quality Techniques (PSQT 2002 North), St. Paul, Minnesota, September 10 “11, 2002.
Software assessments, which originated from the need for improvement in the software industry, started in the 1960s and 1970s as informal assessments. Since then software assessments has evolved into formal software process assessments based on the maturity concept and standard questionnaires. In recent years , they have become a fast growing subindustry. Arguably, the standard assessment approaches all gear toward the organization level as the assessment unit. At the same time, in software development organizations, managers continue to ask the original question: How do I improve my project or how do I perform my next project better. Conducting project assessments for their organization is still the bona fide responsibility of software quality professionals. Peer reviews of projects are also common in software development organizations. The assessment unit of these project assessments, by definition, is at the project level. These kinds of project assessments, not organizational-level process assessments, are the subject of this chapter. The interest is on assessing a specific project for immediate improvement actions or for a small number of projects for identifying best practices. We propose a systematic approach for conducting software project assessments.
What Is Software Quality?
Software Development Process Models
Fundamentals of Measurement Theory
Software Quality Metrics Overview
Applying the Seven Basic Quality Tools in Software Development
Defect Removal Effectiveness
The Rayleigh Model
Exponential Distribution and Reliability Growth Models
Quality Management Models
In-Process Metrics for Software Testing
Complexity Metrics and Models
Metrics and Lessons Learned for Object-Oriented Projects
Measuring and Analyzing Customer Satisfaction
Conducting In-Process Quality Assessments
Conducting Software Project Assessments
Dos and Donts of Software Process Improvement
Using Function Point Metrics to Measure Software Process Improvements
A Project Assessment Questionnaire