how to make great software estimates
TRANSCRIPT
![Page 1: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/1.jpg)
HOW TO MAKE GREAT
SOFTWARE ESTIMATES
Greg Thomashttp://www.rambli.com
![Page 2: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/2.jpg)
And it begins…How long does it take to build this widget?When will you be done?Do I know what am I doing?Where do I start?What did they ask for?Did I think this through?Have I missed something?Am I as fast as Jeff?
![Page 3: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/3.jpg)
estimatingThese are all questions we ask ourselves when we, as developers, are presented with a new problem and asked to provide an estimate as to how long it will take AND when it will be ready.
![Page 4: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/4.jpg)
START?Two questions with two answers where one does not necessarily answer the other.
WHERE DO WE
![Page 5: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/5.jpg)
EXPERIENCEKNOWLEDGE UNDERSTANDING
How long it will takeIt starts with looking at your experience, knowledge and gaining a keen understanding of the problem.
It starts with 3 Core Tenants
![Page 6: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/6.jpg)
Experience• Have I ever worked on this
component?• What language am I using?• Do I know this language?• Is this a hard problem?• Do I know the platform?• Do we have requirements?• Is this a high-priority?• When does it need to be done?
![Page 7: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/7.jpg)
Experience starts the process of
asking yourself these
questions with each problem.
![Page 8: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/8.jpg)
experienceThe person with the most practice in that particular area of development will always yield the most “near” accurate estimation as to what needs to be done and how.
Experience grows over time and increases with each success and failure.
You want to fail, to get better.
http://www.rambli.com/2015/10/factors-of-software-estimation-experience/
![Page 9: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/9.jpg)
Ruby on Rails
ERPManufacturing
CRMDesign Patterns
MySQL
.NET
SharePoint
JavaPLACEHOLDER
Communications
PHP
Knowledge• Do you know what
language you are using?• Do you know the
underlying framework and architecture?
• Do you have Domain Knowledge to your field?
• Do you have expertise on the platform you are building on?
![Page 10: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/10.jpg)
What do I know that I
can leverage in this
estimate?
![Page 11: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/11.jpg)
KnowledgeThe culmination of everything we know applied to what we know about the problem and our experience.
http://www.rambli.com/2015/10/factors-of-software-estimation-your-knowledge/
![Page 12: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/12.jpg)
UNDERSTAND“I didn’t understand the problem”
“I’m not 100% sure what to do here”
“It should just work”
“It didn’t do this last time”
All statements that are uttered after you have started coding, but failed to take the time to understand the problem you
are trying to solve.
![Page 13: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/13.jpg)
Never start coding if you
do not understand
what you are trying to
code.
![Page 14: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/14.jpg)
Understand the problem1) Know the end user and identify what they expect2) Learn the platform/architecture that you are building
on3) Write down your assumptions and vet them with your
users, peers and team.
There is no “should” when you Understand.
http://www.rambli.com/2015/10/factors-of-software-estimation-understand-the-problem/
![Page 15: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/15.jpg)
When will We ship?
![Page 16: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/16.jpg)
Not YETWe have only figured out how long it will take to accomplish our task
By Understanding the Problem, leveragingour Experience and applying our Knowledge we have created an estimatethat we feel can stand by.
But it is not shipping time!
![Page 17: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/17.jpg)
JANUARY 2015SO When will it be ready?
![Page 18: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/18.jpg)
Your ConfidenceIs the most important component to any estimate. How confident are you in your estimate? 75%? 80% ? 50%?
Whichever the percentage, that is your SLUSH, which is the amountof extra time you think you might need to accomplish this task.
http://www.rambli.com/2015/11/factors-of-software-estimation-slush/
![Page 19: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/19.jpg)
And what should you not apply to
an estimate?
![Page 20: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/20.jpg)
80mphSpeedDo not build “acceleration” or “in the zone” time to your estimates. You are only as fast as you are going now. Building in future “I’m gonna know it by then” numbers will only hurt you down the road.
![Page 21: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/21.jpg)
No CopyingNEVER use someone else’s estimates as yours. You don’t have their experience, knowledge or understanding of the problem.
They are not yours, you are already behind if you take them as your own.
![Page 22: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/22.jpg)
No GuessingGuessing is for the lazy – “I don’t know, say 200 hours” – this means nothing, this helps with nothing, it might as well have been 2 hours as the result will have been the same.
![Page 23: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/23.jpg)
Good Estimates are composed of• Knowledge• Experience• Understanding the Problem• Condfident Slush
Bad Estimates• Apply Speed Factors• Copy other People• Guess
SO REMEMBER…
![Page 24: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/24.jpg)
Good estimatesWill tell you how long and when you will deliverBad estimatesWill give you nothing
![Page 25: How to Make Great Software Estimates](https://reader034.vdocument.in/reader034/viewer/2022042723/5871af351a28abda6a8b6405/html5/thumbnails/25.jpg)
T h e e n dGreg Thomas
http://www.rambli.com