the power of unknowns
play

The Power of Unknowns Harnessing what you don't know to estimate - PowerPoint PPT Presentation

The Power of Unknowns Harnessing what you don't know to estimate project duration John Keklak Software Development Institute john@keklak.com The Power of Unknowns Harnessing what you don't know to estimate project duration John Keklak


  1. Estimating with Unknowns Get project assignment Identify what you don't know (there's lots; be as thorough as you can) Estimate the time needed to resolve each unknown (decompose if you can't comfortably estimate) Add up your estimates John Keklak Software Development Institute john@keklak.com

  2. How do you estimate the time required for an unknown? John Keklak Software Development Institute john@keklak.com

  3. How do you estimate the time required for an unknown? + Reduce an unknown to tasks John Keklak Software Development Institute john@keklak.com

  4. How do you estimate the time required for an unknown? + Reduce an unknown to tasks + Estimate time for each task John Keklak Software Development Institute john@keklak.com

  5. How do you estimate the time required for an unknown? + Reduce an unknown to tasks + Estimate time for each task + Add up the total time John Keklak Software Development Institute john@keklak.com

  6. How do you estimate the time required for an unknown? An example: John Keklak Software Development Institute john@keklak.com

  7. How do you estimate the time required for an unknown? An example: Unknown: "WIDKI how to send an email with a PHP script." John Keklak Software Development Institute john@keklak.com

  8. How do you estimate the time required for an unknown? An example: Unknown: "WIDKI how to send an email with a PHP script." Tasks: ?? John Keklak Software Development Institute john@keklak.com

  9. How do you estimate the time required for an unknown? An example: Unknown: "WIDKI how to send an email with a PHP script." Tasks: ?? Time required for each task: ?? John Keklak Software Development Institute john@keklak.com

  10. Types of tasks for resolving unknowns John Keklak Software Development Institute john@keklak.com

  11. Types of tasks for resolving unknowns Talking to customers John Keklak Software Development Institute john@keklak.com

  12. Types of tasks for resolving unknowns Talking to customers Iterating through UI designs John Keklak Software Development Institute john@keklak.com

  13. Types of tasks for resolving unknowns Talking to customers Iterating through UI designs "on paper" John Keklak Software Development Institute john@keklak.com

  14. Types of tasks for resolving unknowns Talking to customers Iterating through UI designs "on paper" Creating lots of little programs to develop programming skills John Keklak Software Development Institute john@keklak.com

  15. Types of tasks for resolving unknowns Talking to customers Iterating through UI designs "on paper" Creating lots of little programs to develop programming skills (like how to send an email with a PHP script) John Keklak Software Development Institute john@keklak.com

  16. Types of tasks for resolving unknowns Talking to customers Iterating through UI designs "on paper" Creating lots of little programs to develop programming skills Getting fluent with existing code John Keklak Software Development Institute john@keklak.com

  17. Types of tasks for resolving unknowns Talking to customers Iterating through UI designs "on paper" Creating lots of little programs to develop programming skills Getting fluent with existing code Expect to do a lot of such tasks John Keklak Software Development Institute john@keklak.com

  18. Types of tasks for resolving unknowns ***Does NOT involve writing final product code*** John Keklak Software Development Institute john@keklak.com

  19. Types of tasks for resolving unknowns ***Does NOT involve writing final product code*** John Keklak Software Development Institute john@keklak.com

  20. All tasks are intended for gathering knowledge John Keklak Software Development Institute john@keklak.com

  21. All tasks are intended for gathering knowledge What does it mean to "gather knowledge"? John Keklak Software Development Institute john@keklak.com

  22. All tasks are intended for gathering knowledge What does it mean to "gather knowledge"? + To learn what the customer wants John Keklak Software Development Institute john@keklak.com

  23. All tasks are intended for gathering knowledge What does it mean to "gather knowledge"? + To learn what the customer wants + To learn what the UI should look like John Keklak Software Development Institute john@keklak.com

  24. All tasks are intended for gathering knowledge What does it mean to "gather knowledge"? + To learn what the customer wants + To learn what the UI should look like + To learn how code and data should be structured John Keklak Software Development Institute john@keklak.com

  25. All tasks are intended for gathering knowledge What does it mean to "gather knowledge"? + To learn what the customer wants + To learn what the UI should look like + To learn how code and data should be structured + To learn how existing code and data are structured John Keklak Software Development Institute john@keklak.com

  26. So let's get started... John Keklak Software Development Institute john@keklak.com

  27. The project I have in mind John Keklak Software Development Institute john@keklak.com

  28. The project I have in mind A facelift for... John Keklak Software Development Institute john@keklak.com

  29. The project I have in mind A facelift for... ...our very own boston-spin.org web site! John Keklak Software Development Institute john@keklak.com

  30. The project I have in mind A facelift for... ...our very own boston-spin.org web site! + Give it a modern appearance John Keklak Software Development Institute john@keklak.com

  31. The project I have in mind A facelift for... ...our very own boston-spin.org web site! + Give it a modern appearance + Clean it up / reorganize John Keklak Software Development Institute john@keklak.com

  32. The project I have in mind A facelift for... ...our very own boston-spin.org web site! + Give it a modern appearance + Clean it up / reorganize + Add some features John Keklak Software Development Institute john@keklak.com

  33. The project I have in mind A facelift for... ...our very own boston-spin.org web site! + Give it a modern appearance + Clean it up / reorganize + Add some features + To be performed by Boston SPIN members! John Keklak Software Development Institute john@keklak.com

  34. No need for panic! John Keklak Software Development Institute john@keklak.com

  35. No need for panic! All we will do right now is… John Keklak Software Development Institute john@keklak.com

  36. No need for panic! All we will do right now is… ...estimate the time required for the project. John Keklak Software Development Institute john@keklak.com

  37. What should we do? John Keklak Software Development Institute john@keklak.com

  38. What should we do? Identify what we don't know John Keklak Software Development Institute john@keklak.com

  39. What should we do? Identify what we don't know (there's lots; let's be as thorough as we can) John Keklak Software Development Institute john@keklak.com

  40. Let's make a list... John Keklak Software Development Institute john@keklak.com

  41. Let's make a list… ...of WIDKI's. John Keklak Software Development Institute john@keklak.com

  42. Let's make a list of WIDKI's Categories: John Keklak Software Development Institute john@keklak.com

  43. Let's make a list of WIDKI's Categories: + What the customer wants John Keklak Software Development Institute john@keklak.com

  44. Let's make a list of WIDKI's Categories: + What the customer wants / what features the website currently has John Keklak Software Development Institute john@keklak.com

  45. Let's make a list of WIDKI's Categories: + What the customer wants / what features the website currently has / what should be added John Keklak Software Development Institute john@keklak.com

  46. Let's make a list of WIDKI's Categories: + What the customer wants / what features the website currently has / what should be added + What the UI should look like John Keklak Software Development Institute john@keklak.com

  47. Let's make a list of WIDKI's Categories: + What the customer wants / what features the website currently has / what should be added + What the UI should look like + How code and data should be structured John Keklak Software Development Institute john@keklak.com

  48. Let's make a list of WIDKI's Categories: + What the customer wants / what features the website currently has / what should be added + What the UI should look like + How code and data should be structured John Keklak Software Development Institute john@keklak.com

  49. To be continued... John Keklak Software Development Institute john@keklak.com

  50. To be continued... ...over the course of the year. John Keklak Software Development Institute john@keklak.com

  51. To be continued... ...over the course of the year. To find out more, fill out a form and leave it with me. John Keklak Software Development Institute john@keklak.com

  52. So why do you think unknowns produce reliable estimates? John Keklak Software Development Institute john@keklak.com

  53. So why do you think unknowns produce reliable estimates? + Hint: John Keklak Software Development Institute john@keklak.com

  54. So why do you think unknowns produce reliable estimates? + Hint: Programmers spend about 2% of their time writing new code, John Keklak Software Development Institute john@keklak.com

  55. So why do you think unknowns produce reliable estimates? + Hint: Programmers spend about 2% of their time writing new code, less than 10% of their time modifying existing code, John Keklak Software Development Institute john@keklak.com

  56. So why do you think unknowns produce reliable estimates? + Hint: Programmers spend about 2% of their time writing new code, less than 10% of their time modifying existing code, and 80+% of their time figuring out what the customer wants, what a UI should look like, how to organize data, how to structure code, how to use API's, how code should do things, how existing code works, and what is causing a particular bug. John Keklak Software Development Institute john@keklak.com

Recommend


More recommend