Early estimating using prior experience
As you make better estimates the picture comes into focus, and what you find might surprise you.
Forecasts on uncertain specs
Early estimate usually by a single person; in-project done by the whole team
Effort and accuracy - small effort gives you decent accuracy
[We've found this: specs tend to be "fractal" and breaking them down just leads to more accurate small items which total up to very similar to the original estimate]
How made?
Spreadsheet
and dedicated developer
1. Timebox work beforehand
Based on top-level gut instinct guestimate - order of magnitude - assign time
2. Analyse requirements
Look for assumptions client made, and question them
3. Guestimate
Top-level
4. Extract features and write solutions
A deliverable with a proposed solution - not necessarly the MDF
Content type as a feature; modules as features
Cutting features [if the client will let you]
Wireframes good for extracting features
[but can contain a lot of assumptions]
5. Estimate features
Estimating needs to include:
development
unit tests
config
testing
fixing bugs
deploy
Estimation sheet
Can the client cut requirements? Negotiate high-estimate requirements with them
Use a scale [e.g. T-shirt sizes]
Always round up!
1,2,5hrs
3hrs for admins to be notified when links are added - round up to 5hrs
Order-of-magnitude estimates at the higher level e.g. 0.1,0.2,0.5hrs or 10,20,50hrs
You have to take testing and design into account
6. Uncertainty and errors
Large features - large uncertainty
Unknown features - possible error
Offer a pilot study
Chaotic development can worsen errors
inexperienced personnel
Poor coding practices
Requirements not investigated
Inexperienced personnel
Developers going too far
Constraints alongside features
Performance
Stability
Unfounded optimism - tend to underestimate by 20-30%
NO OFF-THE-CUFF estimates. Don't give a number until you're sure.
Cone of uncertainty
Reduce by proposing well-tested solutions you have used before
Research solutions by Googling, reading articles and blogposts
Prototype!
Avoid unknown third party integration
7. Final estimation
Degrees of experience
1-5 works fairly well as a scale
Put into the spreadsheet
Apply ranges based on degree of experience
Be careful with low experience - shot in the dark
Overhead time - admin / PM, testing, theming
Culture of awareness of time at the company
If unsure, ask an expert
"What do you do with early guesstimates?"
Be clear to the client: say what your assumptions are.
"How to avoid specification drift at the design phase and still encourage design creativity?
Get designers and developers to work closely together as early as possible. Include them in the estimation process. Team should share the estimate. Designers need early feedback from developers, and developers need to be constructive. Neither should restrict the other, but they need to compromise.