A fool proof way to
Estimate aSoftware
Project
Maurice de Beijer
@mauricedb
 Maurice de Beijer
 The Problem Solver
 Microsoft MVP
 Freelance developer/instructor
 Helping startups
 Currently at https://someday.com/
 Twitter: @mauricedb
 Web: https://www.TheProblemSolver.dev
 E-mail: maurice.de.beijer@gmail.com
2
© ABL - The Problem Solver
Topics
 No Estimates?
 Program evaluation and review technique
 Three-point estimation
 OpenAI and ChatGPT
 Team size
No Estimates?
Can we learn from history?
Submarines
& Planning
USVirginia-class submarine
Apollo &
Planning
Photo by NASA on Unsplash
Apollo &
Planning
Photo by NASA on Unsplash
Program evaluation
and review technique
Program
evaluation and
review
technique
PERT is a method of analyzing the tasks involved in completing a
given project, especially the time needed to complete each task,
and to identify the minimum time needed to complete the total
project. It incorporates uncertainty by making it possible to
schedule a project while not knowing precisely the details and
durations of all the activities.
https://en.wikipedia.org/wiki/Program_evaluation_and_review_technique
Three-point estimation
Three-point
estimation
The three-point estimation technique is used in management
and information systems applications for the construction of an
approximate probability distribution representing the outcome
of future events, based on very limited information.
https://en.wikipedia.org/wiki/Three-point_estimation
Assumption
It will probably take 3 days plus or minus 2 to do a task.
The average is 3 days!
Reality
It will probably take 3 days to do a task. If everything goes well
just 1 day. But it could take up to 9 days if we are unlucky.
The average is 3,66 days!
Three-point
estimation
Three-point
Estimation
Activity Predecessor
Time estimates
Expected
time
Opt. (o)
Normal
(m)
Pess. (p)
A — 2 4 6 4.00
B — 3 5 9 5.33
C A 4 5 7 5.17
D A 4 6 10 6.33
E B, C 4 5 7 5.17
F D 3 4 8 4.50
G E 3 5 8 5.17
Resulting
Gantt chart
What
Activities?
Photo by Dollar Gill on Unsplash
The Magical Number
Seven, Plus or MinusTwo:
SomeLimitsonOurCapacityfor
ProcessingInformation
Miller's law
What
Activities?
Photo by petr sidorov on Unsplash
Can we add from the future?
The future
Photo by Ameer Basheer on Unsplash
AI is very good
at cancer
detection
Photo by National Cancer Institute on Unsplash
OpenAI
ChatGPT
Photo by Jonathan Kemper on Unsplash
Generate a list of tasks
Generate tasks
ChatGTP Prompts
ChatGTP
Prompts
Generate estimates
using PERT
Generate
estimates
Excel table
Creating aGantt chart
Creating a
Gantt chart
Creating a
Gantt chart
Team size
Team size
“Nine women can't make a baby in one month”
“Adding manpower to a software project that is
behind schedule delays it even longer”
-- Brooks's laws
Team size
 Start with a small and experienced team
 Add some less experienced developers after a while
 Is the project is struggling at the end?
 Don’t add more developers!
 Instead remove less capable developers!
 ☞ “Less capable” does not mean “Less experienced” ☜
Conclusion
 No Estimates usually doesn’t work
 PERT works well even with a lot of uncertain tasks
 ChatGPT will help you find and estimate tasks
 Keep the team size as small as possible
Specially when struggling with the final delivery
Maurice de Beijer
@mauricedb
maurice.de.beijer
@gmail.com
© ABL - The Problem Solver 40

A foolproof Way to Estimate a Software Project

Editor's Notes

  • #7 US Virginia-class submarine https://en.wikipedia.org/wiki/Nuclear_submarine
  • #8 September 12, 1962
  • #9 July 20, 1969
  • #11 Developed by the US Navy in 1957
  • #29 I want you to become my Prompt Creator. Your goal is to help me craft the best possible prompt for my needs. The prompt will be used by you, ChatGPT. You will follow the following process: 1. Your first response will be to ask me what the prompt should be about. I will provide my answer, but we will need to improve it through continual iterations by going through the next steps. 2. Based on my input, you will generate 3 sections. a) Revised prompt (provide your rewritten prompt. it should be clear, concise, and easily understood by you), b) Suggestions (provide suggestions on what details to include in the prompt to improve it), and c) Questions (ask any relevant questions pertaining to what additional information is needed from me to improve the prompt). 3. We will continue this iterative process with me providing additional information to you and you updating the prompt in the Revised prompt section until it's complete.