16.4 A Proposed Software Project Assessment Method
We propose a software project assessment method as shown in Figure 16.1, which is based on our project assessment experience over the past many
Figure 16.1. A Proposed Software Project Assessment Method
16.4.1 Preparation Phase
The preparation phase includes all planning and preparation. For an assessment team external to the organization whose project is to be assessed, a good understanding of the business context and justification, objectives, and commitment is important. Since most of the project assessments are done by personnel within the organization, or from a separate division of a company, this is normally not needed. In this phase, a request for basic project data should be made. General information on the type of software,
For overall planning, we recommend the assessment be run as a project with all
Another easily neglected activity in the preparation phase is a project closeout plan. Good project management calls for planning for the closeout on day 1 of the project. A closeout plan in this case may include the kind of
16.4.2 Facts Gathering Phase 1The first phase of facts gathering involves detailed review of all aspects of the project from the project team's perspective. The format of this phase may be a series of project team's descriptions or presentations. In the assessment team's request for information, at least the following areas should be covered:
The assessment team's role in this phase is to gather as much information as possible and gain a good understanding of the project. Therefore, the members should be in a listening mode and should not ask questions that may mislead the project team. Establishing the
At the end of a project review, critical success factors or major reasons for failure should be discussed. These factors may also include sociological factors of software development, which are important (Curtis et al., 2001; DeMarco and Lister, 1999; Jones, 1994, 2000). For the entire review process, the assessment team's detailed note-taking is important. If the assessment team consists of more than one person and the project review lasts more than one day, discussions and exchange of thoughts among the assessment team members is always a good practice.
16.4.3 Questionnaire Customization and
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
All Design Work Done Rigorously |
All Major Pieces of Design Items |
Selected Items Based on Criteria (e.g., Error Recovery) |
Design Reviews Were Occasionally Done |
Not Done |
|
|---|---|---|---|---|---|
|
Original design |
|||||
|
Design changes/rework |
The differences between the two set of questions are obvious: One focuses on process maturity and organizational policy and the other focuses on specific project practices and degree of execution.
Second, a major objective of a project assessment is to identify the gaps and therefore opportunities for improvement. To elicit input from the project team, the vignette-question approach in questionnaire design can be used with regard to importance of activities in the development process. Specifically, the vignette questions include a question on the state of practice for the specific activity by the project and another question on the project team's assessment of the importance of that activity. The three following questions provide an example of this approach:
Are there entry/exit criteria used for the independent system verification test phase?
If yes, (a) please provide a brief description.
(b) how is the criteria used and enforced?
Per your experience and assessment, how important is this practice (entry/exit criteria for SVT) to the success of the project?
Very important
Important
Somewhat important
Not sure
If your assessment in question 2 is "very important" or "important" and your project's actual practice did not match the level of importance, what were the reasons for the disparity (e.g., obstacles, constraints, process, culture)? Please explain.
Third, it is wise to ask for the team's direct input on strengths and weaknesses of the project's practices in each major area of the development process (e.g., design, code, test, and project management). The following are the two common questions we used in every questionnaire at the end of each section of questions.
Caution:
These questions should not be asked before a description of the overall project practices are completed (by the project team) and
Is there any practice(s) by your project with regard to testing that you consider to be a strength and that should be
If you were to do this project all over again, what would you do differently with regard to testing and why?
The Appendix in this book shows a questionnaire that we have used as a base for customization for many software project assessments.
In this phase, the questionnaire is administered to the project team including development managers, the project manager, and technical leads. The respondents complete the questionnaire separately. All sections of the questionnaire may not apply to all respondents. The responses are then
As Figure 16.1 depicts, this phase runs parallel with other phases, starting from the preparation phase and ending with the final assessment report phase. Assessing the project's strengths and weakness and providing recommendations for improvement
Findings from the literature.
For example, Jones (1994, 1995, 2000) provides an
Successful projects
Effective project planning
Effective project cost estimating
Effective project measurements
Effective project milestone tracking
Effective project quality control
Effective project change management
Effective development processes
Effective communications
Capable project managers
Capable technical personnel
Significant use of specialists
Substantial volume of reusable materials
Failing projects
Inadequate project planning
Inadequate cost estimating
Inadequate measurements
Inadequate milestone tracking
Inadequate quality control
Ineffective change control
Ineffective development processes
Ineffective communications
Ineffective project managers
Inexperienced technical personnel
Generalists rather than specialists
Little or no reuse of technical material
Experience:
The assessment team's experience and findings from previous project assessments are essential. What works and what doesn't, for what types of projects, under what kind of environment, organization, and culture? This experience-based knowledge is extremely
Direct input from the project team
. As discussed earlier in the chapter, we recommend placing direct questions in the questionnaire on strengths and weakness, and what the team would do differently. Direct input from the team provides an insider's view and at the same time implies feasibility of the suggested improvement opportunities. Many
Jones's findings highlight the importance of good project management and project management methods such as estimating, measurements, and tracking and control. Sizing and schedule development without the support of metrics and experience from previous projects can lead to overcommitment and therefore project failure. This can happen even in well-established development organizations.
When developing improvement recommendations, feasibility of implementation in the organization's environment should be considered. In this regard, the assessment team should think like a project manager, software development managers, and team
As an example, the following segment of recommendations is extracted from a project assessment report that we were involved with. This segment addresses the
It was not apparent as to whether there were trust issues between the two development teams. However, given that the two
teams have never worked together on the same project and the different environments at the two sites, there is bound to be at least some level of unfamiliarity if not a lack of trust. The following techniques could be employed to address these issues.
Nothing can replace face-to-face interaction. If the budget allows it, make time for the Leadership Team (managers, technical leads, project leads) to get together for face-to-face interaction. A quarterly "Leadership Summit" can be useful to review the results of the last 90 days and establish goals for the next 90 days. The social interaction during and after these meetings is as important as the technical content of meetings.
A close alternative to travel and face-to-face meetings is the use of video conferencing. Find a way to make video conference equipment available to your teams and
A simple thing that can be done to enhance cross-site communications is to place a picture board at each site with pictures of all team members.
Stress the importance of a single, cross-site team in all area communications and make sure the Leadership Team has completely bought into and is promoting this concept. Ensure processes, decisions, and communications are based on technical merit without unwarranted division by site. One simple example is that the use of site-specific distribution lists may promote communications divided between the sites. We recommend the leadership team work to abolish use of these lists and establish distribution lists based on the needs and
In this phase, the assessment team discusses its findings and draft recommendations with the project team and obtains its feedback before the final report is completed. The two teams may not be in total agreement, and it is important that the assessment team make such a declaration before the session takes place. Nonetheless, this phase is important because it serves as a validation mechanism and
The format of the report may vary (a summary presentation, a final written report, or both) but a formal meeting to present the report is highly recommended. With regard to content, at least the following topics should be covered:
Project information and basic project data
The assessment approach
Brief descriptions and observations of the project's practices (development process, project management, etc.)
Strengths and weaknesses, and if appropriate, gap analysis
Critical success factors or major project pitfalls
What the project team would do differently (improvements from the project team's perspective)
Recommendations
Tables 16.2 through 16.4 show report topics for three real assessed projects so you can relate the outcome to the points discussed earlier (for example, those on questionnaire construction). All three assessed projects were based on similar versions of the questionnaire in the Appendix. Project X is the software that supports the service processor of a computer system, Project Y is the
Table 16.2 shows the basic project data for the three projects. Table 16.3 summarizes the state of practices of key development and project management activities throughout the development cycle, and the project team's self-assessment of the importance of the specific practices. For most
The most gaps were identified for Project X, in the areas of requirements and reviews, specifications, design document in place to guide implementation, design reviews, effective sizing and bottom-up schedule development, major checkpoint reviews, staging and code drop plans, and in-process metrics.
For Project Y, gaps were in the areas of design document, design reviews, effective sizing and bottom-up schedule development, and in-process metrics. For Project Z , the gaps were in the project management areas such as sizing and bottom-up schedule development as they related to the planning process and project assumptions. Development/unit test was also identified as a key gap as related to the Cleanroom software process used for the project. The Cleanroom software process focuses on specifications, design and design verification, and mathematical proof of program correctness. For testing, it focuses on statistical testing as it
Table 16.4 shows the project team's improvement plan as a result of the iterative emphasis of the assessment method. Note that the project team's own improvement ideas or plan are separate from the final recommendations by the assessment team, although the latter can include or reference the former.
|
Project X |
Project Y |
Project Z |
|
|---|---|---|---|
|
Size (KLOC) |
|||
|
228 |
4000 |
1625 |
|
78 |
100 |
690 |
|
Team size |
10.5 |
35 |
225 |
|
Development cycle time (mo) |
|||
|
30 |
18 |
38 |
|
23 |
17 |
29 |
|
Team experience |
Inexperienced 70% <2 yr |
Very
|
Very experienced 80% >5 yr |
|
Cross-site development |
Y |
Y |
Y |
|
Cross-product brand development |
Y |
N |
Y |
|
Development environ/library |
CMVC |
PDL, Team Connect |
AIX CMVC DEV2000 |
|
Project complexity (self-rated 10 pts) |
7 |
8 |
10 |
|
Project Activity |
Project X |
Project Y |
Project Z |
|---|---|---|---|
|
Requirements reviews |
-Seldom -Very important |
-Always -Very important |
-Always -Very important |
|
Develop specifications |
-Seldom -Very important |
-Usually -Very important |
-Always -Very important |
|
Design documents in place |
-No -Very important |
-No -Very important |
-Yes -Very important |
|
Design reviews |
-Not done -Very important |
-Occasionally -Very important |
-Major pieces -Very important |
|
Coding standard/ guidelines |
-No |
-Yes |
-Yes |
|
Unit test |
-Yes |
- ad hoc |
-Yes -No |
|
Simulation test/environment |
-No -Very important |
-Yes -Very important |
-No -Important |
|
Process to address code integration quality and driver stability |
-Yes -Very important |
-Yes -Very important |
-Yes -Very important |
|
Driver build interval |
-Weekly “ >Biweekly |
-Biweekly with fix support |
-1 “ 3 days |
|
Entry/exit Criteria for independent test |
-Yes -Very important |
-Yes -Very important |
-Yes -Important |
|
Change control process for fix integration |
-Yes -Very important |
-Yes -Very important |
-Yes -Important |
|
Microcode project manager in place |
-Yes (midway through project) |
-No |
-No |
|
Role of effective project management |
-Very important |
-Important |
-Important |
|
Effective sizing and bottom-up schedule development |
-No -Very important |
-No -Important |
-No -Very important |
|
Staging and code drop plans |
-No -Very important |
-Yes -Very important |
-Yes -Important |
|
Major checkpoint reviews |
-No -Very important |
-No Somewhat important |
-Yes -Very important |
|
In-process metrics |
-No (started midway) -Very important |
-No -Very important |
-Yes -Somewhat important |
|
Project |
Improvement Plan |
|---|---|
|
Project X |
|
|
Requirements and specifications: |
Freeze external requirements by a specific date. Create an overall specifications document before heading into the design phase for the
|
|
Design, code, and reviews: |
Eliminate most/all shortcuts in design and code to get to and through bring-up. The code that goes into bring-up is the basis for shipping to customers and many times it is not the base that was desired to be working on. Establish project-specific development milestones and work to those instead of only the higher-level system mile-stones. |
|
Code integration and driver build: |
Increase focus on unit test for code integration quality, document unit test plans. |
|
Test: |
Establish entry/exit criteria for test and then
|
|
Project management (planning, schedule, dependency management, metrics): |
Staff a project manager from the beginning. Have dependency management mapped to a specific site, and minimize cross-site dependency. |
|
Tools and methodologies: |
Use a more
|
|
Project Y |
|
|
Requirements and specifications: |
Focus more on design flexibility and considerations that could deal with changing requirements. |
|
Design, code, and reviews: |
Conduct a more detailed design review for changes to the system structure. |
|
Test: |
Better communications between test groups, make sure enough understanding by the test groups that are in different locations. |
|
Project management (planning, schedule, dependency management, metrics): |
Implement microcode project manager(s) for coordination of deliverables in combination with hardware deliverables. |
|
Tools and methodologies: |
Force the parallel development of test enhancement for regression test whenever new functions are developed. |
|
Project Z |
|
|
Requirements and specifications: |
Link requirements and specifications with schedule and review schedule assumptions. |
|
Design, code, and reviews: |
Document what types of white box testing need to be done to verify design points. |
|
Project Management (planning, schedule, dependency management, metrics): |
Strong focus on project management, scheduling, staffing, and commitments. Periodically review schedule assumptions and assess impact as assumptions become invalid. |
Table 16.6 summarizes the essential points discussed under each phase of the proposed software project assessment method.
|
Phase |
Essential Activities and Considerations |
Phase ”
|
|---|---|---|
|
(1) Preparation |
- As appropriate - Gain understanding of business context and justification, objectives and constraints. - Establish assessment project plan. - Establish project charter and secure commitment. - Request basic project data. - Develop an initial set of questions based on information available thus far, or use an existing. questionnaire. - Establish assessment project closeout plan. |
(3) Phase 3 - possible improvement opportunities and recommendations. - Review findings and improvement frameworks in the literature. |
|
(2) Facts gathering ” phase 1 |
- Build a detailed project review from the project team's perspective. - Focus on whats and hows; at times on whys via probing. |
- Formulate ideas at the end of project review. |
|
(4) Questionnaire customization |
- Customize to project being assessed. - Use vignette-question approach for gap analysis. - Define strengths and weaknesses. - Gather team's improvement ideas. |
- Design questionnaire to include questions on improvements from the project team. |
|
(5) Facts gathering ” phase 2 |
- Administer questionnaire to project personnel. - Validate responses. - Triangulate across respondents and with information gathered from Phase 1. - Brainstorm project strengths and weaknesses; ask what the project team would have done differently. |
- Formulate whole list of recommendations - actions for immediate improvements and for strategic directions. |
|
(6) Team discussions feedback |
- Review with project team and assessment results and draft recommendations. |
- Finalize recommendations. |
|
(7) Reporting and closeout |
- Complete final report including recommendations - Meet with assessment executive sponsor and management of assessed project. |