A Pragmatic Approach. Brent Bradbury Joshua Bruning. The Evils of Duplication. DRY – Don’t Repeat Yourself!. Imposed Duplication Multiple representations of information Documentation in code Documentation and code Language issues Inadvertent Duplication Impatient Duplication
DRY – Don’t Repeat Yourself!
Make It Easy to Reuse!
Eliminate Effects Between Unrelated Things
Use Tracer Bullets to Find the Target
How Accurate is Accurate Enough?
First assess how accurate an estimate the customer needs
Choose your units accordingly-- “6 months” sounds general whereas “130 days” sounds very specificEstimating
Where do Estimates Come From?
Often from someone who has already done it, bolstered by doing the following…
Understand what’s being asked
Define assumptions and scope
Build a Model of the System
A simple mental model will allow you to think through the complexities of the proposed software. Your experience will tell you when to stop refining the model.
Break the Model into Components
Understand the mathematical complexity of each software component.
Give Each Parameter A Value
Decide which parameters represent critical points in execution, and calculate how much time they’ll take to execute.
Calculate the Answers
Use all of the small estimations to make a final, large estimation.