# Gross Estimates The Brooks Formula Patrick Boens 12/05/2010.

## Presentation on theme: "Gross Estimates The Brooks Formula Patrick Boens 12/05/2010."— Presentation transcript:

Gross Estimates The Brooks Formula Patrick Boens 12/05/2010

Page 1 1.Background 2.Context & Objectives 3.Formula 1.Base 2.Updated 1.Developers focus 2.Supervision 3.Contingency 4.Deployment Agenda

Page 2 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 3 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 4 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

Page 5 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 *UAT is not included (not a concern of IT)

Page 6 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

Page 7 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

Page 8 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 * Although acceptable, a more precise formula exists to calculate the Supervision effort. well see this in a minute

Page 9 Updated formula: Contingency Contingency is a way to foresee whats 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

Page 10 Updated formula: an example Imagine a developers 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 * UAT not included

Page 11 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!) * UAT not included

Page 12 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! * Software industry