210 likes | 370 Views
Dark Art or Science?. Software Development Estimation. Stefan Kiryazov (Vereo, Wizefish). инвестираме в бъдещето. wizefish.com Софтуерни решения за успешен бизнес. Introduction. Target audience Senior software developers Technical leaders Project managers High level managers Customers
E N D
Dark Art or Science? Software Development Estimation Stefan Kiryazov (Vereo, Wizefish)
wizefish.com • Софтуерни решения за успешен бизнес
Introduction • Target audience • Senior software developers • Technical leaders • Project managers • High level managers • Customers • Required background skills • Familiarity with the software development process
Contents • Causes for Uncertainty • Presenting Estimates • Estimation Process
Background • Why is estimating important? • A foundation for efficient development Estimate too high – Parkinson’s law Estimate too low – inefficient planning • Is perfect estimating possible? • The software estimating story
Causes for Uncertainty • Will the customer want Feature X? • Will the customer want the cheap or expensive version of Feature X? • If we go for the cheap, will he/she want the expensive one later after all? • How will Feature X be designed? • How long will it take to fix the bugs in Feature X? • How long will it take to integrate Feature X?
Causes for Uncertainty • Software development – a process of gradual refinement • The perfect estimate is doing the project work itself • The earlier, the less precise
“It is the mark of an instructed mind to rest satisfied with the degree of precision which the nature of the subject admits and not to seek exactness when only an approximation of the truth is possible …” Nichomachean Ethics, Aristotle
Presenting Estimates • Presentation styles • Plus/minus • Conditions • Cases • Ranges • Avoid overprecise estimates • Accuracy vs precision • Use coarse periods
Estimation Process • Size estimation • Effort estimation • Schedule estimation
Size Estimation • What is size? • Function points • Lines of code • Custom measurement • Compare with past projects • Compare with documented data, not personal memory
Effort Estimation • Derived from size estimate • No off-the-cuff estimates! • Even with conditions! • Estimate at high level of detail • Law of large numbers
Effort Estimation • Don’t omit common tasks • Developer based estimates • Sanity checking • Commitment-based estimates • Compare estimates
Schedule Estimation • The nominal schedule Schedule = 3 * Effort1/3 Schcedule – months, Effort - manmonths • Schedule compression Compression Factor (CF) = Nominal / Compressed • Compression increases cost! Compressed cost = Initial cost / CF
Questions ? Provide some feedback, please!