Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Creating the Project Plan


January 2001: Creating the Project Plan

One of the most difficult tasks for a project manager is creating a baseline that will be used to manage a project's development effort. Even with a correct estimate of effort and time, it's easy to forget tasks, incorrectly allocate effort among tasks or fail to allot enough resources for maintenance. Software estimating is a science that can be learned; it is possible to accurately and consistently estimate development costs and schedules for a wide range of projects, then quickly create a project plan. These articles have provided you the tools you need to understand step-by-step approaches to estimating the cost and schedule for your projects.

In the first article, "Estimating Software Costs" (Project & Process Management, Oct. 2000), I covered the various methods of estimating the size of a program (called program volume). I discussed the traditional measures of Lines of Code and Function Points, in addition to introducing other approaches, and, finally, I revealed how to prepare a preliminary, unadjusted estimate using that infor-mation. In "Project Cost Adjustments" (Project & Process Management, Nov. 2000), I reviewed the concept of project cost adjustments for variations in the project environment and illustrated how to create an accurate estimate of the time and cost required to develop a new application. "Calculating for Reuse" (Project & Process Management, Dec. 2000) explained how to quantify the impact of software reuse and commercial components and libraries on your estimate. Finally, this article describes how you can use your new insight into projectcost and schedule to create a complete project plan

The Work Breakdown Structure
The most fundamental building block of a project plan is the work breakdown structure (WBS). The WBS contains a list of tasks to be accomplished, and you can implement a template WBS in a spreadsheet as a list of task names, task percentages of effort and task descriptions. A simple WBS template applicable for many e-commerce jobs is recreated in Table 1.

Once you've determined the correct total effort for the job using the approach and information described in the first three articles in this series, you can use the percent of effort to quickly and easily allocate that effort among all of the tasks in your WBS.

The Deliverable Plan
On most projects, you will be required to create technical documentation.

Typically, this facilitates communication during development, assists in maintenance and provides milestones for payment.

The first step is to create another template, this time of document titles and descriptions. Templates of documentation are often referred to as standards; however, we can go beyond this initial step. It's valuable to include an estimate of the page count for each document in your project plan. This information helps set client expectations, defines the document scope for the developers who will write the documentation and acts as an estimate of review time.

I've found that the correct number of pages of documentation can be predicted using the staff months of development effort as the input. This is accomplished using the following formula:

Pages = A * B (Person MonthsC)

To apply this formula, you raise the person months of effort to a variable (C), multiply the results times another variable (B), then add a third variable (A).

Table 2 contains a sample deliv-erable planning standard applicable for many e-commerce development projects.

Using the standard, illustrated in Table 2, let's calculate the estimated page count for Software Design Description (SDD) on a 50 person month of effort project.

Begin by noticing that the values for A, B and C are 0.00, 8.00 and 0.91 respectively. The calculation is as follows:

Pages = A + B (EffortC) = 0 + 8 (500.91) = 8 * 35 = 280 pages

Estimating Maintenance Effort
It's often necessary to estimate maintenance effort as part of your planning process. You may need to plan for an adequate maintenance staff, or you may need to provide a warranty on the software. Both tasks require you to estimate the effort required to provide these services.

First and foremost, you must ensure that you share a common understanding of maintenance work with your customer. At the CostXpert Group, we divide maintenance activities into three categories: corrective, adaptive and perfective. Standard bug fixes are considered corrective maintenance, while adaptive fixes involve modifications to the software required by such changes in the operating environment as database or operating system upgrades, compiler version changes and so on. Perfective maintenance is the most complex, in that it involves changing the code to allow the software to meet the same requirement but in a significantly more acceptable manner. The largest example of perfective maintenance is modifications of the code to improve performance in trouble spots. Note that not all changes to the code to add new functionality are considered maintenance, nor are any changes that are based strictly on user preference.

Figure 1. Distribution of Maintenance Effort
The appropriate distribution of maintenance effort based on research by Capers Jones (Estimating Software Costs, McGraw-Hill, 1998).

Figure 1 shows the approximate distribution of maintenance effort based on one study by Capers Jones (see Estimating Software Costs, McGraw Hill 1998). Table 3 also illustrates the proper categorization of each maintenance activity based on the approach detailed in this series.

I've found that steady state maintenance annual effort is proportionate to development effort (this conclusion was initially proposed by Barry Boehm, then confirmed by numerous researchers). The range varies between 3 and 20 percent of development effort. The vast majority of projects fall in the more narrow range of 12 to 17 percent of original effort.

For example, suppose you have a project that requires 50 person months of development effort. You estimate that the maintenance effort will be 15 percent. The annual budget for maintenance then needs to be 50 * .15, or 7.5 person months of effort.

I qualified this statement by saying "the steady state maintenance." At the CostXpert Group, we've found that it takes four years of maintenance following delivery to reach the steady state for a typical system. During this period, the maintenance effort will be greater than the steady state effort. The optimum maintenance effort actually drops off exponentially from a value roughly twice the steady state value immediately following delivery to the steady state value at the start of the fourth year. During this time, the additional effort is spent on corrective and perfective maintenance.

This concludes this series, which has covered all aspects of developing a software project baseline. Though everyone has a favorite theory as to why software failures occur, my experience and work while with the Mitre Corporation, the Cost Xpert Group and Booz, Allen & Hamilton has taught me that more projects are doomed by poor cost and schedule estimates than by technical, political or team problems. Capers Jones's extensive research, found in his book Estimating Software Costs, makes a similar claim. It's no surprise, therefore, that so few companies and individuals understand that software estimating is not just an art, but a science that can be learned.

Table 1. A Simple Work Breakdown Structure Template
Task Percent Description
Project Planning and Management 10 Project estimating, planning and risk management.
Define Business Strategy 4 Define the business strategy and document it in a creative fashion.
Define Marketing Strategy 4 Define the marketing strategy and document it a creative fashion.
Define Requirements 4 Define system requirements in both documentation and prototype form, plus define a production or style guide.
Design Site 30 Prepare functional specifications, technical specifications, site architecture and testplan.
Build Site 19 Build the site, including the front end, middle-tier, agents and interfaces.
Test Site 19 Test the site, both at the unit level and the integration level.
Deploy Site 10 Deploy the site, including acceptance testing and user documentation when required.

[back to text]

 
Table 2. A Sample Deliverable Planning Standard

Deliverable A B C Description
Software Development Document Plan (SDP) 5.00 0.08 0.91 Describes a developer's plans for conducting a software development effort. This is expressed in the form of a project Gantt chart, supplemented by one or more Project Work Orders covering the various phases of work.
Strategic Brief 2.00 0.90 0.91 Documents strategic business objectives, measures of business success, stakeholders and stakeholder objectives.
Creative Brief 2.00 0.90 0.91 Defines target audience(s), objectives, market and product positioning, branding and relationship between Web strategy and overall market strategy.
Software Requirements Specification (SRS) 3.00 1.21 0.91 Specifies the requirements for a computer program and the methods to be used to ensure that each requirement has been met.
Prototype 1.00 0.00 1.00 System prototype.
Functional Specifications 0.00 4.00 0.91 Defines back-end and middle-tier functional requirements from a business perspective.
Technical Brief 0.00 4.00 0.91 Defines the technical details of the system design, including object design.
Site architecture 0.00 2.14 0.91 Describes the site architecture with sufficient detail to allow the site to be configured for deployment.
Software Test Plan (STP) 5.00 0.12 0.91 Describes plans for acceptance testing of a computer program. It describes the software test enviroment, identifies the tests to be performed and provides schedules for test activities.
Software Design Description (SDD) 0.00 8.00 0.91 Describes the program-wide design decisions, the software architectural design and the detailed design needed to implement the software. It includes the middle-tier object and application server design, pseudocode for all key algorithms and business rules, field mappings for all screens, sort, select and display requirements for reports, and detailed data format specifications for all interfaces.
Software Test Description (STD) 5.00 2.27 0.91 Describes the test preparations, test cases and test procedures to be used to perform acceptance testing of a computer program.
Software User Manual (SUM) 15.0 2.10 0.91 Instructs a hands-on software user how to install and use a computer program. It includes a tutorial describing how to accomplish specific user work tasks identified as Operational Scenarios in the Software Requirements, Specification, and it also offers a comprehensive reference to all screens, reports and menu choices.

[back to text]

 
Table 3. Proper Categorization of Maintenance
Category on figure Maintenance Category
Emergency program fixes Corrective
Routine debugging Corrective
Accommodate changes to input data files Adaptive
Accommodate changes to hardware operating system Adaptive
Enhancements for users Not included as maintenance
Improve documentation Not included as maintenance
Improve code efficiency Perfective
Other Other

[back to text]


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.