The process of creating an accurate development schedule consists of three steps:

1. Estimate the size of the product: estimate the work size

2. Estimate the effort: estimate the effort to do that work

3. Estimate the schedule: calculate and allocate the work and create schedule

4. Estimation refinement: do some modification while doing the project periodically

1.0 Size estimation

1.1 Function-Point Estimation

A function point is a synthetic measure of program size that is often used in a project's early stages.The number of function points in a program is based on the number and complexity of each of the following items:

Estimation Tips

2.0 Estimate Presentation Styles1. Estimate the size of the product: estimate the work size

2. Estimate the effort: estimate the effort to do that work

3. Estimate the schedule: calculate and allocate the work and create schedule

4. Estimation refinement: do some modification while doing the project periodically

1.0 Size estimation

1.1 Function-Point Estimation

A function point is a synthetic measure of program size that is often used in a project's early stages.The number of function points in a program is based on the number and complexity of each of the following items:

- Inputs
- Outputs
- Inquire
- Logical internal files
- External interface files

Estimation Tips

- Allow time for the estimate, and plan it.
- Use data from previous projects.
- Use developer-based estimates.
- Estimate by walk-through.
- Estimate by categories.
- Estimate at a low level of detail.
- Don't omit common tasks.
- Use software estimation tools.
- Change estimation practices as the project progresses.

The way you present an estimate initially can have a huge impact on what happens when the estimate needs changing later.

techniques for presenting schedule estimates

- Plus-or-minus qualifiers.
- Ranges.
- Risk quantification.
- Cases.
- Confidence factors.

3.0 Effort Estimation

you'll need an effort estimate in order to know how many people to put on your project; and having an effort estimate makes it easy to derive the schedule estimate. Deriving the effort estimate is a straightforward process.

4.0 Schedule Estimation

A rule of thumb is that you can compute the schedule from the effort estimate by using Equation :

Schedule in months = 3.0 * man-months1/3

**Commitment-Based Scheduling**

effort estimates.

practice that Capers Jones has described as "first order estimation."

5.0 Schedules

**Jones's First-Order Estimation Practice**

practice that Capers Jones has described as "first order estimation."

5.0 Schedules

The schedules are listed in terms of calendar months. They include all the design, construction, and testing time needed to complete a project. They do not include time for requirements specification. Schedules are giving to one or two significant digits; greater precision than that would not be meaningful.

**Efforts**

You can compute the average team size by dividing the effort months by the schedule months. The schedules do not attempt to represent the full range of possible combinations of schedules and team sizes

**System sizes**

The system sizes are in lines of code, which are nonblank, noncomment source statements.

**Small projects**

The processes don't contain schedules for projects smaller than 10,000 lines of code.

**Lines of code**

Project sizes in these tables are given in lines of code.

5.1 Shortest Possible Schedules

Shortest possible schedules contain a hat full of extremely optimistic assumptions.

- Staffing:Schedules assume that your team has drawn its talent from the top 10 percent of the talent pool.
- Management : These schedules assume that the project has ideal project management, and that the developers' time isn't diverted into activities unrelated to technical development work.
- Tool support : Advanced software tools are available, and the developers have unlimited access to computer resources.
- Methodology : The most time-efficient development methods and development tools are also used.
- Compression : These schedules have been compressed as much as possible below the nominal

schedules for this set of assumptions.

**1. There is a shortest possible schedule, and you can't beat it.**

At some point, adding more software developers slows a project down instead of making it faster.

**2. Costs increase rapidly when you shorten the schedule below nominal.**

Once your tools and methods are in place, you can reduce your schedule simply by increasing the

number of developers or the amount of overtime.

5.2 Efficient Schedules

The efficient schedules assume that you do most things right, but they stop short of making the ideal-case assumptions that underlie the shortest possible schedules.

What to Do First with the Ballpark Schedules

That's actually the best thing to do because it's the best way to learn about your projects. If the numbers in the tables estimate higher or lower than your last project, you'll know how to calibrate them before you use them to estimate your next project.