Upload
katelyn-hahn
View
217
Download
0
Embed Size (px)
Citation preview
Gross Estimates
The “Brooks” Formula
Patrick Boens
12/05/2010
Page 2
1. Background
2. Context & Objectives
3. Formula
1. Base
2. Updated
1. Developers’ focus
2. Supervision
3. Contingency
4. Deployment
Agenda
Page 3
Background
• Frederick Brooks is a Software Engineer and Computer Scientist, best-known for managing the development of IBM 0S/360.
• Author of the famous “The Mythical Man-Month”, a book about Software Engineering and Project Management.
• He had mistakenly added more workers to a project falling behind schedule, considering the equivalence of “resources” and “time” (Man-Month).
• In his book, he presents a simple formula for software estimates, a formula he considered to be invalid in subsequent editions.
• Still, this formula is a very good basis for early estimates.
Page 4
Context & Objectives
• Early stages of a project (inception, initiation)
• Gross != precise it gives an idea, a rough estimate (no equivalence with COCOMO II for example)
Page 5
Base Formula
• Effort = 1/3 specs + 1/6 code + 1/4 ut + 1/4 it … where
- specs = requirements + analysis
- code = build
- ut = unit tests
- it = integration testing
itutcodespecEffort 41
41
61
31
Page 6
Updated Formula
• Some refinements are needed in order to cope with “Prince 2” sort of slicing:
- Specs = Requirements + analyses (BA, FA, TA) = 1/3 = 4/12
- Code = Code + Unit tests = 1/6 + 1/4 = 5/12
- Tests = Integration Testing + Functional Testing* = 1/4 = 3/12
itutcodespecEffort 41
41
61
31
*UAT is not included (not a concern of IT)
Page 7
Updated Formula
• Supervision effort (PM and Team Leader work) not included
• Contingency not included
• Deployment effort not included
• The formula becomes:
- Specs = Requirements + analyses = 1/3 = 4/12
- Code = Code + Unit tests = 1/6 + 1/4 = 5/12
- Tests = Integration Testing + Functional Testing = 1/4 = 3/12
- + supervision + contingency + deployment effort
itutcodespecEffort 41
41
61
31
Page 8
Updated formula: Developers’ focus
• Developers focus on:
- Specs = Requirements + analyses = 1/3 = 4/12
- Code = Code + Unit tests = 1/6 + 1/4 = 5/12
- Tests = Integration Testing + Functional Testing = 1/4 = 3/12
- + supervision + contingency + deployment effort
itutcodespecEffort 41
41
61
31
Page 9
Updated formula: Supervision
• Supervision is often seen as a percentage of the overall project (± 15%*)
• Example: Specs + Code + Tests = 100 mdays Supervision = 15 mdays
• Total effort = 100 mdays + 15 mdays = 115 mdays
itutcodespecEffort 41
41
61
31
* Although acceptable, a more precise formula exists to calculate the Supervision effort. we’ll see this in a minute
Page 10
Updated formula: Contingency
• Contingency is a way to foresee what’s impredictable. Statistically, 17% contingency is used. This percentage must be adapted to the context of your project, based on the degree of uncertainty.
• Example: Specs + Code + Tests + Supervision = 115 mdays Contingency = 20 mdays
• Total effort = 100 mdays + 15 mdays + 20 mdays = 135 mdays
itutcodespecEffort 41
41
61
31
Page 11
Updated formula: an example
• Imagine a developer’s evaluation of 50 mdays, and now calculate the overall effort 1/12 = 10 mdays
› specs = 4/12 = 40 mdays
› code = 5/12 = 50 mdays
› tests* = 3/12 = 30 mdays
• Effort = 40 mdays + 50 mdays + 30 mdays = 120 mdays
• Supervision = 120 mdays x 15/100 = 18 mdays
• Contingency = 138 mdays x 17/100 = 23 mdays
• Deployment = x mdays (say, 5) Total effort = 161 mdays + 5 mdays = 166 mdays
itutcodespecEffort 41
41
61
31
* UAT not included
Page 12
Updated formula: the bottom line
• You started with 50 mdays and you ended up with 166 mdays!
• This sounds funny: an experienced Project Manager said that he always multiplied the developers’ evaluations by PI 50 mdays x 3.141592 = 157 mdays! ... which is close enough to the end result (it remains a gross figure!)
itutcodespecEffort 41
41
61
31
* UAT not included
Page 13
Supervision Effort : ≠ 15%
• Time and team size must be balanced (theoretical view). A project of 6 months should be worked out with 6 people (team size and duration are equilibrated = square root). Always favor “more time” instead of “more people” (get back to Brooks’ findings).
• A PM is needed for the whole duration of the project. If a month work is 20 days of work, you need the PM during 6 x 20 days, x% of his time.
• The direct span of control is about 6 people* for a project of 3 months, you need the PM half of his time; for a 6 months project, you need him full-time.
• Getting back to our example of 50 mdays of developers’ estimates we have calculated an effort of 120 mdays 120 / 20 = 6 SQRT(6) = 2.45 team of 2 people and timeline of 3 months ( 2 x 20 x 3 = 120 mdays) (ideal view) PM is needed 33% of his time (2 persons for a possible span of 6) during 3 months Supervision effort = 3 x 20 x 1/3 = 20 mdays (instead of 18 mdays with 15%).
• Contingency of 17% (120 + 20 ) mdays x 17/100 = 24 mdays
• Deployment (5 mdays) Total effort = 120 + 20 + 24 + 5 = 169 mdays remember, you started from 50!
itutcodespecEffort 41
41
61
31
* Software industry