Getting Early Estimates RightJakob Persson
Introducing me                          Lead Drupal Solutions Architect                          Co-Founder of NodeOne    ...
Introducing                       am and clients So me of No deOne’s te                                        Scandinavia...
What we do at NodeOne,apart from...
card games...                                     Hi, I’m                                     Dries!*                     ...
Druplicons wielding nun-chuks...        Druplicon Road Trip – “Showdown in Paris” (YouTube)
Drupal rock stars...   “The Kitten Killers” Live at DrupalCon Copenhagen (photo by Dries)
Pilot studies  Design and usability         DevelopmentHosting and scalability              Training            Consulting
Early estimating“There’s no point in being exact about somethingif you don’t even know what you’re talking about.”        ...
frustrated!
frustrated!     bored...
frustrated!        bored... uncertain?!
What is an early estimate?
“Estimation is the calculated approximation of aresult which is usable even if input data may beincomplete or uncertain.” ...
Useless!    http://www.sxc.hu/photo/1259850
http://www.sxc.hu/photo/1259850 Use        less                !Project X    Project Y                    ≠   Project ?
Early estimates vs in-project estimates               Early        In-project  Target       Feature       User story      ...
Effort and accuracy     100%   Accuracy              Effort                 Adapted from “Agile Estimating and Planning”, ...
Early estimates• Can be made in relatively short time• Generates estimates that aren’t based on  random guesses or chance•...
How early estimates are made
“Divide et impera”, how’s that for a     strategy?
#   Title   Estimate   DoE   Solution12                                                    A spreadsheet34                ...
The method
Timebox your estimation workAnalyze the requirementsMake initial guesstimateExtract features and write proposed solutionsE...
Tim        eb           oxAn      aly          ze                req                     uir                        em    ...
TIMEBOX ESTIMATION WORK
ANALYZE THE REQUIREMENTS            From: johndoe@awesomecoolwebsites.com            To: You            Subject: Link dire...
ANALYZE THE REQUIREMENTS            From: johndoe@awesomecoolwebsites.com            To: You             C heck o ut the s...
MAKE INITIAL GUESSTIMATE       “BETWEEN THUMB AND INDEX FINGER”
EXTRACT FEATURES ANDWRITE SOLUTIONS    From: johndoe@awesomecoolwebsites.com    To: You    Subject: Link directory on Drup...
The sample requirements for the link directory    website can also be found on the web:      http://bit.ly/drupalestimating
Feature A   2                            Feature B   10                            Feature C   1               are brokenR...
Definition of a   Feature
Definition of a         FeatureA conceptually and contextually discretepiece of the final deliverables with anestimated prop...
Link directory sample requirements:http://bit.ly/drupalestimating
From: johndoe@awesomecoolwebsites.comTo: YouSubject: Link directory on DrupalHey,Were looking into moving our site awesome...
From: johndoe@awesomecoolwebsites.com                                To: You                                Subject: Link ...
From: johndoe@awesomecoolwebsites.com                                To: You                                Subject: Link ...
1     Nodetype: Link                    From: johndoe@awesomecoolwebsites.com                                        To: Y...
1       Nodetype: Link                  From: johndoe@awesomecoolwebsites.com                                        To: Y...
14   Featured link on the front page   A view displaying a single node of type “Featured”
1   Nodetype: Link2   Users add links which are unpublished before approved3   Administrators are notified when links are a...
#   Description                   Proposed solution                                  Create a node type called link and us...
-30%
-30%
Do this          Code less             Use the UI instead
By: http://www.sxc.hu/profile/agentoseis                                                                                   ...
Estimation sheet with sample requirements  http://bit.ly/estimationsheet3
Estimation Sheet Templatehttp://bit.ly/estimationtemplate3
Number                                                              Description                                           ...
Number                                                              Description                                           ...
ESTIMATING FEATURES
• Development• Writing automated tests• Configuration• Testing• Fixing bugs• Deploying to staging server
Estimating using a scale•   Scale of fixed number of hours•   Only use numbers from the scale.•   Always round up          ...
Popular scale   1   2   4   8   16
Popular scale   1   2   4       8   16 Scale I use    1   2       5
Use Flag and Rules modules to create a    Administrators are notified when links3                                          ...
Use Flag and Rules modules to create a    Administrators are notified when links3                                          ...
Use Flag and Rules modules to create a    Administrators are notified when links3                                          ...
Use Flag and Rules modules to create a    Administrators are notified when links3    are added                             ...
Factor 0.1Scale I use    Factor 1    1   2        5              Factor 10            10       20
Factor 0.1 Factor 1    1   2        5Factor 10            10       20
Changing settings or setting                                     Factor 0.1      configuration                             ...
Changing settings or setting                                                       Factor 0.1         configurationBuilding...
Changing settings or setting                                                   Factor 0.1         configurationBuilding fun...
50+
gooEstimating         http://www.sxc.hu/photo/716594
TAKING UNCERTAINTYAND ERRORS INTOACCOUNT
The cone of uncertainty             4x             2x            1.5xEstimate   1.25x            1.0xerror       0.8x     ...
The cone of uncertainty      4x      2x     1.5x    1.25x     1.0x     0.8x    0.67x     0.5x    0.25x
The cone of uncertainty               4x               2x              1.5x             1.25x              1.0x           ...
The cone of uncertainty               4x               2x              1.5x             1.25x              1.0x           ...
The cone of uncertainty      4x      2x     1.5x    1.25x     1.0x     0.8x    0.67x     0.5x    0.25x
The cone of uncertainty      4x      2x     1.5x    1.25x     1.0x     0.8x    0.67x     0.5x    0.25x
The cone of uncertainty      4x      2x     1.5x    1.25x     1.0x     0.8x    0.67x     0.5x    0.25x
Annonsera | Kontakta oss | In English                                                                                     ...
Chaotic development
Chaotic development        Requirements that                            weren’t investigate                               ...
Chaotic developmentPoor coding practices cause extensive bug fix                                             ing           ...
Chaotic development                                                   Inexperi                                            ...
Chaotic development                                                   Inexperi                                            ...
Chaotic development                              g under pressure           Abandoning plannin                            ...
Chaotic development                              g under pressure           Abandoning plannin                            ...
Chaotic development                              g under pressure           Abandoning plannin                            ...
Overlooked activities
Overlooked activitiesMigration of dataProducing help or documentationDeploymentIntegrating third party systemsWorking with...
Overlookedexpectations
Performance
Stability
Security
Usability
Unfounded optimism“You never have to fear that estimates createdby developers will be too pessimistic, becausedevelopers w...
Off-the-cuff estimation
Off-the-cuff estimation
Assume for clarityMake an assumption and communicate it: “I’m not sure what you mean by ‘integrated user bookmark blogging...
Avoid uncertain solutions
Avoid uncertain solutionsBase solutions on wireframes and mockups or comps ifavailable.
Avoid uncertain solutionsBase solutions on wireframes and mockups or comps ifavailable.Proposing well-tested solutions you...
Avoid uncertain solutionsBase solutions on wireframes and mockups or comps ifavailable.Proposing well-tested solutions you...
Avoid uncertain solutionsBase solutions on wireframes and mockups or comps ifavailable.Proposing well-tested solutions you...
Avoid uncertain solutionsBase solutions on wireframes and mockups or comps ifavailable.Proposing well-tested solutions you...
Factoring in solution    uncertainty
Degrees of experience      You have done the exact same thing in other projects.   Someone else at your company has done i...
Degrees of experience   5   You have done the exact same thing in other projects.        Someone else at your company has ...
#   Description                   Est   Degree of Exp.   Proposed solution                                                ...
Degrees of experienceDeg.                           Description 5     You have done the exact same thing in other projects...
Degree of experience              Deg.              Description                  U                     You have done the e...
Degree of experience              Deg.              Description                  U                     You have done the e...
Degree of experience              Deg.              Description                  U                     You have done the e...
Degree of experience              Deg.              Description                  U                     You have done the e...
Degree of experience              Deg.              Description                  U                     You have done the e...
Degree of experience               Deg.              Description                  U                      You have done the...
Degree of experience                    Deg.              Description                  U                           You hav...
Degree of experienceDeg.              Description                  Uncertainty factor       You have done the exact same t...
#   Description                   Est   Degree of Exp.   Range             Low     High    Pro                            ...
#   Description                   Est   Degree of Exp.   Range             Low     High    Pro                            ...
#   Description                   Est   Degree of Exp.   Range             Low     High    Pro                            ...
#   Description                   Est   Degree of Exp.   Range             Low     High    Pro                            ...
ee of                                                1 × 0.8 = 0.8                       Cre1   Nodetype: Link            ...
ee of                                                1 × 0.8 = 0.8                       Cre1   Nodetype: Link            ...
ee of                                                1 × 0.8 = 0.8                        Cre1   Nodetype: Link           ...
ee of                                                1 × 0.8 = 0.8                        Cre1   Nodetype: Link           ...
Symmetrical uncertainty     Low uncertainty       Low    High       0.8x   1.25x          Ideal        estimate
Symmetrical uncertainty        High uncertaintyLow                         High0.25x                        4x            ...
Asymmetrical uncertainty  Or: it can only get worse!            Low                High             1x                 4x ...
Pessimistic                  Optimistic    Symmetrical   Asymmetrical   Symmetrical   Asymmetrical1   0.17    6      1    ...
Pessimistic                  Optimistic    Symmetrical   Asymmetrical   Symmetrical   Asymmetrical1   0.17    6      1    ...
Pessimistic                  Optimistic    Symmetrical   Asymmetrical   Symmetrical   Asymmetrical1   0.17    6      1    ...
Symmetrical uncertainty           Pessimistic                  Optimistic    Symmetrical   Asymmetrical   Symmetrical   As...
Asymmetrical uncertainty           Pessimistic                  Optimistic    Symmetrical   Asymmetrical   Symmetrical   A...
Use the UncertaintyFactors tab in your sheet to         set factors and symmetry                                 Copy the ...
In the endIts easy to estimate what you know.Its hard to estimate what you know you dont know.Its very hard to estimate th...
Overhead timeAdministration and project management   1.25xTesting                                 1.15x
COMPARE WITH GUESSTIMATE           ???            ho              ur                 s
Start big, reduce later
Awareness of time
Culture
If unsure, ask an expert
Recommended reading
What did you think?Locate this session on the DCC website:http://go.nodeone.se/estimatesClick the “Take the Survey” link.C...
Getting Early Estimates Right, DrupalCon Chicago 2011
Getting Early Estimates Right, DrupalCon Chicago 2011
Getting Early Estimates Right, DrupalCon Chicago 2011
Getting Early Estimates Right, DrupalCon Chicago 2011
Getting Early Estimates Right, DrupalCon Chicago 2011
Getting Early Estimates Right, DrupalCon Chicago 2011
Upcoming SlideShare
Loading in …5
×

Getting Early Estimates Right, DrupalCon Chicago 2011

7,843 views

Published on

These are the slides from my session at DrupalCon Chicago. Session description:

Almost all clients who approach you about a project want to know up front what the total cost will be. They hand you some loose notes and expect a fixed number of hours or price. To many this presents an impossible task. What is often forgotten is that an exact estimate isn't expected. What you need to produce is one that is accurate enough to close the sale.

In this talk I will introduce an early estimation method. Using it we're able to tell a client early on the expected size of a project and close sales faster. It allows us to provide estimates early on helping clients to make early decisions regarding the scope and focus of the project.

In this session you will learn how to:
- Use fixed estimates to manage uncertainty
- Break requirements down into features
- Drafting rough Drupal solutions for features
- Estimate based on experience instead of guesswork

Published in: Technology
1 Comment
7 Likes
Statistics
Notes
  • Awesome lecture. One of my favorites at Drupalcon Chicago.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
7,843
On SlideShare
0
From Embeds
0
Number of Embeds
2,241
Actions
Shares
0
Downloads
88
Comments
1
Likes
7
Embeds 0
No embeds

No notes for slide

Getting Early Estimates Right, DrupalCon Chicago 2011

  1. 1. Getting Early Estimates RightJakob Persson
  2. 2. Introducing me Lead Drupal Solutions Architect Co-Founder of NodeOne Worked with Drupal since 2005 jakob@nodeone.se http://www.twitter.com/realsolipsist http://drupal.org/user/37564 STOCKHOLM | GOTHENBURG | COPENHAGEN www.nodeone.se
  3. 3. Introducing am and clients So me of No deOne’s te Scandinavia’s largest Drupal services provider Employs 39 people Offices in Sweden and Denmark
  4. 4. What we do at NodeOne,apart from...
  5. 5. card games... Hi, I’m Dries!* * No he’s not really Dries, but you knew that already. www.drupalcardgame.com
  6. 6. Druplicons wielding nun-chuks... Druplicon Road Trip – “Showdown in Paris” (YouTube)
  7. 7. Drupal rock stars... “The Kitten Killers” Live at DrupalCon Copenhagen (photo by Dries)
  8. 8. Pilot studies Design and usability DevelopmentHosting and scalability Training Consulting
  9. 9. Early estimating“There’s no point in being exact about somethingif you don’t even know what you’re talking about.” — John von Neumann
  10. 10. frustrated!
  11. 11. frustrated! bored...
  12. 12. frustrated! bored... uncertain?!
  13. 13. What is an early estimate?
  14. 14. “Estimation is the calculated approximation of aresult which is usable even if input data may beincomplete or uncertain.” Source: Wikipedia
  15. 15. Useless! http://www.sxc.hu/photo/1259850
  16. 16. http://www.sxc.hu/photo/1259850 Use less !Project X Project Y ≠ Project ?
  17. 17. Early estimates vs in-project estimates Early In-project Target Feature User story Decide on Purpose investment Planning Accuracy Low to medium High Method Expert Team
  18. 18. Effort and accuracy 100% Accuracy Effort Adapted from “Agile Estimating and Planning”, Cohn 2008
  19. 19. Early estimates• Can be made in relatively short time• Generates estimates that aren’t based on random guesses or chance• Lets you use your experience as a yardstick and reference
  20. 20. How early estimates are made
  21. 21. “Divide et impera”, how’s that for a strategy?
  22. 22. # Title Estimate DoE Solution12 A spreadsheet34 – and possibly also –A Drupal-devoted developer Dick Olsson, kick-ass Drupal developer at NodeOne
  23. 23. The method
  24. 24. Timebox your estimation workAnalyze the requirementsMake initial guesstimateExtract features and write proposed solutionsEstimate featuresTake uncertainty and errors into accountCompare with guesstimate
  25. 25. Tim eb oxAn aly ze req uir em enIni ts tia l gu ess ti m ateEx tra ct fea t ure sEst im ate fea t ure sUn cer tai nty and err orCo mp s are w ith gue sst im ate
  26. 26. TIMEBOX ESTIMATION WORK
  27. 27. ANALYZE THE REQUIREMENTS From: johndoe@awesomecoolwebsites.com To: You Subject: Link directory on Drupal Hey, Were looking into moving our site awesomecoolwebsites.com to drupal and wonder how much it would cost. We would like to get rid of the proprietary software we use and have more flexibility. Drupal seems to be the best choice for us. Our site is a link directory where people with awesomely cool sites can post links to their sites. The directory is divided into categories and people can pay for premium exposure. We also have something called "link of the day" which costs $50 and puts a link to your site on the front page. The site has a blog where we post updates and business articles on a regular basis. This blog is written by several people and they can only be able to edit their own blog posts. Though they should be able to add other users who can edit their posts so that they can cooperate on a post. Were not planning on migrating content but were offshoring the work and all old links will be added manually. We want to tag content too and we think its best to migrate manually and do the tagging at the same time. Its important that its super easy to post new links and comment on blog posts. when you add a link you get a user account. Unless you have one already. Also, administrators must be able to approve links posted. Admins should get an email when links are added so they can go and check. We want captcha so that automated postings are prevented. When you buy a premium link you pay with credit card, we have a processor for this and drupal needs to integrate with them. Its important that users feel super safe when submitting links. For this reason the whole submit process must be over secure connection. We plan on launching the new drupalized site in the next six months. Looking forward to your quote. Sincerely, John Website Manager
  28. 28. ANALYZE THE REQUIREMENTS From: johndoe@awesomecoolwebsites.com To: You C heck o ut the sample Subject: Link directory on Drupal Hey, requirements for the Were looking into moving our site awesomecoolwebsites.com to drupal and wonder how much it would cost. We would like to get rid of the proprietary software we use and have more flexibility. Drupal seems to be the best choice for us. k d irector y site at: Our site is a link directory where people with awesomely cool sites can post lin links to their sites. The directory is divided into categories and people can pay for premium exposure. We also have something called "link of the day" which costs $50 and puts a link to your site on the front page. The site has a blog where we post updates and business articles on a regular basis. This blog is written by several people and they can only be able to edit their own blog posts. Though they should be able to add other users who can edit http://bit.ly/ their posts so that they can cooperate on a post. Were not planning on migrating content but were offshoring the work and all old links will be added manually. We want to tag content too and we think its rupalestimating best to migrate manually and do the tagging at the same time. d Its important that its super easy to post new links and comment on blog posts. when you add a link you get a user account. Unless you have one already. Also, administrators must be able to approve links posted. Admins should get an email when links are added so they can go and check. We want captcha so that automated postings are prevented. When you buy a premium link you pay with credit card, we have a processor for this and drupal needs to integrate with them. Its important that users feel super safe when submitting links. For this reason the whole submit process must be over secure connection. We plan on launching the new drupalized site in the next six months. Looking forward to your quote. Sincerely, John Website Manager
  29. 29. MAKE INITIAL GUESSTIMATE “BETWEEN THUMB AND INDEX FINGER”
  30. 30. EXTRACT FEATURES ANDWRITE SOLUTIONS From: johndoe@awesomecoolwebsites.com To: You Subject: Link directory on Drupal Hey, Were looking into moving our site awesomecoolwebsites.com to drupal and wonder how much it would cost. We would like to get rid of the proprietary software we use and have more flexibility. Drupal seems to be the best choice for us. Our site is a link directory where people with awesomely cool sites can post links to their sites. The directory is divided into categories and people can pay for premium exposure. We also have something called "link of the day" which costs $50 and puts a link to your site on the front page. The site has a blog where we post updates and business articles on a regular basis. This blog is written by several people and they can only be able to edit their own blog posts. Though they should be able to add other users who can edit their posts so that they can cooperate on a post. Were not planning on migrating content but were offshoring the work and all old links will be added manually. We want to tag content too and we think its best to migrate manually and do the tagging at the same time. Its important that its super easy to post new links and comment on blog posts. when you add a link you get a user account. Unless you have one already. Also, administrators must be able to approve links posted. Admins should get an email when links are added so they can go and check. We want captcha so that automated postings are prevented. When you buy a premium link you pay with credit card, we have a processor for this and drupal needs to integrate with them. Its important that users feel super safe when submitting links. For this reason the whole submit process must be over secure connection. We plan on launching the new drupalized site in the next six months. Looking forward to your quote. Sincerely, John
  31. 31. The sample requirements for the link directory website can also be found on the web: http://bit.ly/drupalestimating
  32. 32. Feature A 2 Feature B 10 Feature C 1 are brokenRequirements down into Feature D 20 Feature E 5 Feature F 1
  33. 33. Definition of a Feature
  34. 34. Definition of a FeatureA conceptually and contextually discretepiece of the final deliverables with anestimated proposed solution
  35. 35. Link directory sample requirements:http://bit.ly/drupalestimating
  36. 36. From: johndoe@awesomecoolwebsites.comTo: YouSubject: Link directory on DrupalHey,Were looking into moving our site awesomecoolwebsites.com to drupal and wonderhow much it would cost. We would like to get rid of the proprietary software weuse and have more flexibility. Drupal seems to be the best choice for us.Our site is a link directory where people with awesomely cool sites can postlinks to their sites. The directory is divided into categories and people canpay for premium exposure. We also have something called "link of the day" whichcosts $50 and puts a link to your site on the front page.The site has a blog where we post updates and business articles on a regularbasis. This blog is written by several people and they can only be able to edittheir own blog posts. Though they should be able to add other users who can edittheir posts so that they can cooperate on a post.Were not planning on migrating content but were offshoring the work and allold links will be added manually. We want to tag content too and we think itsbest to migrate manually and do the tagging at the same time.Its important that its super easy to post new links and comment on blog posts.when you add a link you get a user account. Unless you have one already.Also, administrators must be able to approve links posted. Admins should get anemail when links are added so they can go and check.We want captcha so that automated postings are prevented.When you buy a premium link you pay with credit card, we have a processor forthis and drupal needs to integrate with them. Its important that users feelsuper safe when submitting links. For this reason the whole submit process mustbe over secure connection.We plan on launching the new drupalized site in the next six months.Looking forward to your quote.Sincerely,JohnWebsite Manager
  37. 37. From: johndoe@awesomecoolwebsites.com To: You Subject: Link directory on Drupal Hey, Were looking into moving our site awesomecoolwebsites.com to drupal and wonder how much it would cost. We would like to get rid of the proprietary software we use and have more flexibility. Drupal seems to be the best choice for us.“Our site is a link directory Our site is a link directory where people with awesomely cool sites can postwhere people with awesomely links to their sites. The directory is divided into categories and people can pay for premium exposure. We also have something called "link of the day" whichcool sites can post links to costs $50 and puts a link to your site on the front page.their sites” The site has a blog where we post updates and business articles on a regular basis. This blog is written by several people and they can only be able to edit their own blog posts. Though they should be able to add other users who can edit their posts so that they can cooperate on a post. Were not planning on migrating content but were offshoring the work and all old links will be added manually. We want to tag content too and we think its best to migrate manually and do the tagging at the same time. Its important that its super easy to post new links and comment on blog posts. when you add a link you get a user account. Unless you have one already. Also, administrators must be able to approve links posted. Admins should get an email when links are added so they can go and check. We want captcha so that automated postings are prevented. When you buy a premium link you pay with credit card, we have a processor for this and drupal needs to integrate with them. Its important that users feel super safe when submitting links. For this reason the whole submit process must be over secure connection. We plan on launching the new drupalized site in the next six months. Looking forward to your quote. Sincerely, John Website Manager
  38. 38. From: johndoe@awesomecoolwebsites.com To: You Subject: Link directory on Drupal Hey, Were looking into moving our site awesomecoolwebsites.com to drupal and wonder how much it would cost. We would like to get rid of the proprietary software we use and have more flexibility. Drupal seems to be the best choice for us.“Our site is a link directory Our site is a link directory where people with awesomely cool sites can postwhere people with awesomely links to their sites. The directory is divided into categories and people can pay for premium exposure. We also have something called "link of the day" whichcool sites can post links to costs $50 and puts a link to your site on the front page.their sites” The site has a blog where we post updates and business articles on a regular basis. This blog is written by several people and they can only be able to edit their own blog posts. Though they should be able to add other users who can edit their posts so that they can cooperate on a post. Were not planning on migrating content but were offshoring the work and all old links will be added manually. We want to tag content too and we think its best to migrate manually and do the tagging at the same time. 1 Nodetype: Link Its important that its super easy to post new links and comment on blog posts. when you add a link you get a user account. Unless you have one already. Also, administrators must be able to approve links posted. Admins should get an email when links are added so they can go and check. We want captcha so that automated postings are prevented. When you buy a premium link you pay with credit card, we have a processor for this and drupal needs to integrate with them. Its important that users feel super safe when submitting links. For this reason the whole submit process must be over secure connection. We plan on launching the new drupalized site in the next six months. Looking forward to your quote. Sincerely, John Website Manager
  39. 39. 1 Nodetype: Link From: johndoe@awesomecoolwebsites.com To: You Subject: Link directory on Drupal Hey, Were looking into moving our site awesomecoolwebsites.com to drupal and wonder how much it would cost. We would like to get rid of the proprietary software we use and have more flexibility. Drupal seems to be the best choice for us.“Also, administrators must be able toapprove links posted. Admins should Our site is a link directory where people with awesomely cool sites can post links to their sites. The directory is divided into categories and people canget an email when links are added so pay for premium exposure. We also have something called "link of the day" which costs $50 and puts a link to your site on the front page.they can go and check.” The site has a blog where we post updates and business articles on a regular basis. This blog is written by several people and they can only be able to edit their own blog posts. Though they should be able to add other users who can edit their posts so that they can cooperate on a post. Were not planning on migrating content but were offshoring the work and all old links will be added manually. We want to tag content too and we think its best to migrate manually and do the tagging at the same time. Its important that its super easy to post new links and comment on blog posts. when you add a link you get a user account. Unless you have one already. Also, administrators must be able to approve links posted. Admins should get an email when links are added so they can go and check. We want captcha so that automated postings are prevented. When you buy a premium link you pay with credit card, we have a processor for this and drupal needs to integrate with them. Its important that users feel super safe when submitting links. For this reason the whole submit process must be over secure connection. We plan on launching the new drupalized site in the next six months. Looking forward to your quote. Sincerely, John Website Manager
  40. 40. 1 Nodetype: Link From: johndoe@awesomecoolwebsites.com To: You Subject: Link directory on Drupal Hey, Were looking into moving our site awesomecoolwebsites.com to drupal and wonder how much it would cost. We would like to get rid of the proprietary software we use and have more flexibility. Drupal seems to be the best choice for us.“Also, administrators must be able toapprove links posted. Admins should Our site is a link directory where people with awesomely cool sites can post links to their sites. The directory is divided into categories and people canget an email when links are added so pay for premium exposure. We also have something called "link of the day" which costs $50 and puts a link to your site on the front page.they can go and check.” The site has a blog where we post updates and business articles on a regular basis. This blog is written by several people and they can only be able to edit their own blog posts. Though they should be able to add other users who can edit their posts so that they can cooperate on a post. Were not planning on migrating content but were offshoring the work and all old links will be added manually. We want to tag content too and we think its Users add links which are best to migrate manually and do the tagging at the same time. 2 unpublished before approved Its important that its super easy to post new links and comment on blog posts. when you add a link you get a user account. Unless you have one already. Also, administrators must be able to approve links posted. Admins should get an Administrators are notified email when links are added so they can go and check. 3 We want captcha so that automated postings are prevented. when links are added When you buy a premium link you pay with credit card, we have a processor for this and drupal needs to integrate with them. Its important that users feel Administrators can view and super safe when submitting links. For this reason the whole submit process must 4 be over secure connection. approve links We plan on launching the new drupalized site in the next six months. Looking forward to your quote. Sincerely, John Website Manager
  41. 41. 14 Featured link on the front page A view displaying a single node of type “Featured”
  42. 42. 1 Nodetype: Link2 Users add links which are unpublished before approved3 Administrators are notified when links are added4 Administrators can view and approve links
  43. 43. # Description Proposed solution Create a node type called link and use the Link module for the1 Nodetype: Link link field. Users add links which are Use Flag and Rules modules to create a workflow. The workflow2 unpublished before approved sets a newly created Link node as unpublished. Administrators are notified Workflow created with Rules, it sends an email to the webmaster3 when links are added once a link node is created. Administrators can view and A list of unpublished nodes of type “link”, created using the Views4 approve links module.
  44. 44. -30%
  45. 45. -30%
  46. 46. Do this Code less Use the UI instead
  47. 47. By: http://www.sxc.hu/profile/agentoseis Get this Future-proof your website Enjoy a safe upgrade pathhttp://www.flickr.com/photos/jns001/2958140977/
  48. 48. Estimation sheet with sample requirements http://bit.ly/estimationsheet3
  49. 49. Estimation Sheet Templatehttp://bit.ly/estimationtemplate3
  50. 50. Number Description Estimate Degree of Experience Proposed Solution Use Flag and Rules modules to create a Users add links which are unpublished2 2 5 workflow. The workflow sets a newly before approved created Link node as unpublished.
  51. 51. Number Description Estimate Degree of Experience Proposed Solution Use Flag and Rules modules to create a Users add links which are unpublished2 2 5 workflow. The workflow sets a newly before approved created Link node as unpublished.
  52. 52. ESTIMATING FEATURES
  53. 53. • Development• Writing automated tests• Configuration• Testing• Fixing bugs• Deploying to staging server
  54. 54. Estimating using a scale• Scale of fixed number of hours• Only use numbers from the scale.• Always round up 1 2 4 8 16
  55. 55. Popular scale 1 2 4 8 16
  56. 56. Popular scale 1 2 4 8 16 Scale I use 1 2 5
  57. 57. Use Flag and Rules modules to create a Administrators are notified when links3 workflow. The workflow sets a newly are added created Link node as unpublished.
  58. 58. Use Flag and Rules modules to create a Administrators are notified when links3 workflow. The workflow sets a newly are added created Link node as unpublished. ~ 3 hours (ideally)
  59. 59. Use Flag and Rules modules to create a Administrators are notified when links3 workflow. The workflow sets a newly are added created Link node as unpublished. ~ 3 hours (ideally) 2 5
  60. 60. Use Flag and Rules modules to create a Administrators are notified when links3 are added 5 workflow. The workflow sets a newly created Link node as unpublished. ~ 3 hours (ideally) 2 5
  61. 61. Factor 0.1Scale I use Factor 1 1 2 5 Factor 10 10 20
  62. 62. Factor 0.1 Factor 1 1 2 5Factor 10 10 20
  63. 63. Changing settings or setting Factor 0.1 configuration Factor 1 1 2 5 Factor 10 10 20 Add a user reference field to Article Co-authors for articles 0.2 node type
  64. 64. Changing settings or setting Factor 0.1 configurationBuilding functionality using Drupal’s Factor 1 1 2 5 user interface Factor 10 10 20 List of most popular user profiles based Add a user reference field to and sorts it A view listing Profile nodes Article Co-authors for articles 0.2 1 on number of guestbook entries node type the number of comments each based on has
  65. 65. Changing settings or setting Factor 0.1 configurationBuilding functionality using Drupal’s Factor 1 1 2 5 user interfaceDeveloping new modules or themes Factor 10 10 20 AWrite listing Profile field to and sorts it view a reference nodes Article Add a usermodule that POSTs the user’s List of most popular user profiles based Co-authors userarticles with mailing list 0.2 Integrate for accounts 110 node type the number of comments each based on email address to the provider’s REST API on number of guestbook entries service provider has when the user registers.
  66. 66. 50+
  67. 67. gooEstimating http://www.sxc.hu/photo/716594
  68. 68. TAKING UNCERTAINTYAND ERRORS INTOACCOUNT
  69. 69. The cone of uncertainty 4x 2x 1.5xEstimate 1.25x 1.0xerror 0.8x 0.67x 0.5x 0.25x Resolution of decisions in the course of a project
  70. 70. The cone of uncertainty 4x 2x 1.5x 1.25x 1.0x 0.8x 0.67x 0.5x 0.25x
  71. 71. The cone of uncertainty 4x 2x 1.5x 1.25x 1.0x 0.8x 0.67x 0.5x 0.25xRough idea0.25x - 4x
  72. 72. The cone of uncertainty 4x 2x 1.5x 1.25x 1.0x 0.8x 0.67x 0.5x 0.25xRough idea User Interface Design Complete0.25x - 4x 0.8x - 1.25x
  73. 73. The cone of uncertainty 4x 2x 1.5x 1.25x 1.0x 0.8x 0.67x 0.5x 0.25x
  74. 74. The cone of uncertainty 4x 2x 1.5x 1.25x 1.0x 0.8x 0.67x 0.5x 0.25x
  75. 75. The cone of uncertainty 4x 2x 1.5x 1.25x 1.0x 0.8x 0.67x 0.5x 0.25x
  76. 76. Annonsera | Kontakta oss | In English Sök Maria Jakobsson | Min profilNyheter Bli medlem Engagera dig Aktiviteter Career Service Partners Reversen Om oss Logg utFritid, utbildning & framtidVi stoltserar idag med drygt 2 200 medlemmar och är därmed en avUppsalas största studentföreningar. Vi intresserar oss för allt som rör fritid, Bli medlemframtid och studier för studenter med ekonomianknytning i Uppsala ochjobbar ständigt för att på ett professionellt sätt utveckla både utbildningenoch studiernas förankring till arbetslivet. Läs mer om oss "Detta är varför jag tycket du skall engagera dig!" NAMN NAMNSSON, ORDFMeningsfull och rolig tillvaro vid Täta kontakter och nära Bevakar och förbättrarsidan av studierna genom relationer med näringslivet utbildningen genomfester och events, sport, spel- genom föreläsningar, besök, utvärdering och påverkan i KOMMANDE AKTIVITETERoch filmkvällar med mera casetävlingar, jobbannonser och nära samarbete med informella möten studenterna och universitet Alla Fritid Framtid Studier 12/12 Luciabalen med grodornas aftonSENASTE NYTT Fritid Framtid Studier Restaurang Lantis, 17.45 - 01.00 12/12 Luciabalen med grodornas afton Restaurang Lantis, 17.45 - 01.00 12/12 Luciabalen med grodornas afton Restaurang Lantis, 17.45 - 01.00 12/12 Luciabalen med grodornas afton Restaurang Lantis, 17.45 - 01.00 12/12 Luciabalen med grodornas afton Restaurang Lantis, 17.45 - 01.00 Fler aktiviteter...På ekonomikum just nu: KontaktdagarnaDen 2:a och 3:e februari är det äntligen dags för årets mest efterlängtade Detta är en puffmässa med 60 företag och organisationer som kommer till Uppsala för att Sveriges bästa nollning är i fullträffa dig! Kontaktdagarna är ett ypperligt tillfälle att knyta nya kontakter gång i Uppsala och du hittar denmed intressanta företag och hämta inspiration på föreläsningar som hålls här. > Läs merav inflytelserika personer. Mässan öppnar klockan 10 på onsdag den 2februari. Var med redan från start! Detta är en puff Sveriges bästa nollning är i full gång i Uppsala och du hittar den här. > Läs mer
  77. 77. Chaotic development
  78. 78. Chaotic development Requirements that weren’t investigate d very well
  79. 79. Chaotic developmentPoor coding practices cause extensive bug fix ing Requirements that weren’t investigate d very well
  80. 80. Chaotic development Inexperi enced pePoor coding practices cause extensive bug fix r sonnel ing Requirements that weren’t investigate d very well
  81. 81. Chaotic development Inexperi enced pePoor coding practices cause extensive bug fix r sonnel ingIncomplete or unskilled project planning Requirements that weren’t investigate d very well
  82. 82. Chaotic development g under pressure Abandoning plannin Inexperi enced pePoor coding practices cause extensive bug fix r sonnel ingIncomplete or unskilled project planning Requirements that weren’t investigate d very well
  83. 83. Chaotic development g under pressure Abandoning plannin Inexperi enced pePoor coding practices cause extensive bug fix r sonnel ingIncomplete or unskilled project planning Requirements that weren’t investigate d very well Developer gold-plating
  84. 84. Chaotic development g under pressure Abandoning plannin Inexperi enced pePoor coding practices cause extensive bug fix r sonnel ing Lack of automated source code controlIncomplete or unskilled project planning Requirements that weren’t investigate d very well Developer gold-plating
  85. 85. Overlooked activities
  86. 86. Overlooked activitiesMigration of dataProducing help or documentationDeploymentIntegrating third party systemsWorking with a third party
  87. 87. Overlookedexpectations
  88. 88. Performance
  89. 89. Stability
  90. 90. Security
  91. 91. Usability
  92. 92. Unfounded optimism“You never have to fear that estimates createdby developers will be too pessimistic, becausedevelopers will always generate a too-optimistic schedule.” – Chris Peters, Microsoft Vice President
  93. 93. Off-the-cuff estimation
  94. 94. Off-the-cuff estimation
  95. 95. Assume for clarityMake an assumption and communicate it: “I’m not sure what you mean by ‘integrated user bookmark blogging’ so I assume you mean this, and that’s what I’ve estimated.”
  96. 96. Avoid uncertain solutions
  97. 97. Avoid uncertain solutionsBase solutions on wireframes and mockups or comps ifavailable.
  98. 98. Avoid uncertain solutionsBase solutions on wireframes and mockups or comps ifavailable.Proposing well-tested solutions you have used before.
  99. 99. Avoid uncertain solutionsBase solutions on wireframes and mockups or comps ifavailable.Proposing well-tested solutions you have used before.Researching solutions by googling, reading articles andblog posts.
  100. 100. Avoid uncertain solutionsBase solutions on wireframes and mockups or comps ifavailable.Proposing well-tested solutions you have used before.Researching solutions by googling, reading articles andblog posts.Prototyping solutions in Drupal.
  101. 101. Avoid uncertain solutionsBase solutions on wireframes and mockups or comps ifavailable.Proposing well-tested solutions you have used before.Researching solutions by googling, reading articles andblog posts.Prototyping solutions in Drupal.Avoiding solutions that require integration withunknown third-party solutions.
  102. 102. Factoring in solution uncertainty
  103. 103. Degrees of experience You have done the exact same thing in other projects. Someone else at your company has done it in other projects. You have read about it a way to solve it. You can think of a solution that seems reasonable/possible. You have no idea how to implement a solution.
  104. 104. Degrees of experience 5 You have done the exact same thing in other projects. Someone else at your company has done it in other 4 projects. 3 You have read about it a way to solve it. You can think of a solution that seems reasonable/ 2 possible. 1 You have no idea how to implement a solution.
  105. 105. # Description Est Degree of Exp. Proposed solution Create a node type called link and1 Nodetype: Link 1 5 use the Link module for the link field. Use Flag and Rules modules to2 Users add links which are unpublished before approved 2 4 create a workflow. The workflow sets a newly created Link node as unpublished. Workflow created with Rules, it3 Administrators are notified when links are added 5 3 sends an email to the webmaster once a link node is created. A list of unpublished nodes of type4 Administrators can view and approve links 2 5 “link”, created using the Views module.
  106. 106. Degrees of experienceDeg. Description 5 You have done the exact same thing in other projects. 4 Someone else at your company has done it in other projects. 3 You have read about it a way to solve it. 2 You can think of a solution that seems reasonable/possible. 1 You have no idea how to implement a solution.
  107. 107. Degree of experience Deg. Description U You have done the exact same thing 5 in other projects. Someone else at your company has 4 done it in other projects. You have read about it a way to solve 3 it. You can think of a solution that 2 seems reasonable/possible. You have no idea how to implement 1 a solution.
  108. 108. Degree of experience Deg. Description U You have done the exact same thing 5 in other projects. Someone else at your company has 4 done it in other projects. You have read about it a way to solve 3 it. You can think of a solution that 2 seems reasonable/possible. You have no idea how to implement 1 a solution.
  109. 109. Degree of experience Deg. Description U You have done the exact same thing 5 in other projects. Someone else at your company has 4 done it in other projects. You have read about it a way to solve 3 it. You can think of a solution that 2 seems reasonable/possible. You have no idea how to implement 1 a solution.
  110. 110. Degree of experience Deg. Description U You have done the exact same thing 5 in other projects. Someone else at your company has 4 done it in other projects. You have read about it a way to solve 3 it. You can think of a solution that 2 seems reasonable/possible. You have no idea how to implement 1 a solution.
  111. 111. Degree of experience Deg. Description U You have done the exact same thing 5 in other projects. Someone else at your company has 4 done it in other projects. You have read about it a way to solve 3 it. You can think of a solution that 2 seems reasonable/possible. You have no idea how to implement 1 a solution.
  112. 112. Degree of experience Deg. Description U You have done the exact same thing 5 in other projects. Someone else at your company has 4 done it in other projects.RESEARCH IT! 3 You have read about it a way to solve it. You can think of a solution that 2 seems reasonable/possible. You have no idea how to implement 1 a solution.
  113. 113. Degree of experience Deg. Description U You have done the exact same thing 5 4x in other projects. Someone else at your company has 2x 4 done it in other projects. 1.5x 1.25x You have read about it a way to solve 1.0x 3 0.8x it. 0.67x You can think of a solution that 0.5x 2 seems reasonable/possible. 0.25x You have no idea how to implement 1 a solution.
  114. 114. Degree of experienceDeg. Description Uncertainty factor You have done the exact same thing 5 0.8x - 1.25x in other projects. Someone else at your company has 4 0.67x - 1.5x done it in other projects. You have read about it a way to solve 3 0.5x - 2x it. You can think of a solution that 2 0.25x - 4x seems reasonable/possible. You have no idea how to implement 1 - a solution.
  115. 115. # Description Est Degree of Exp. Range Low High Pro 1 × 0.8 = 0.8 Cre1 Nodetype: Link 1 5 1 × 1.25 = 1.25 0.8 1.25 the Use Users add links which are 2 × 0.67 = 1.34 aw2 unpublished before approved 2 4 2 × 1.5 = 3 1.34 3 new unp Wo Administrators are notified 5 × 0.5 = 2.5 an e3 when links are added 5 3 5 × 2 = 10 2.5 10 nod A li Administrators can view and 2 × 0.8 = 1.6 “lin4 approve links 2 5 2 × 1.25 = 2.5 1.6 2.5 mo
  116. 116. # Description Est Degree of Exp. Range Low High Pro 1 × 0.8 = 0.8 Cre1 Nodetype: Link 1 5 1 × 1.25 = 1.25 0.8 1.25 the Use Users add links which are 2 × 0.67 = 1.34 aw2 unpublished before approved 2 4 2 × 1.5 = 3 1.34 3 new unp Wo Administrators are notified 5 × 0.5 = 2.5 an e3 when links are added 5 3 5 × 2 = 10 2.5 10 nod A li Administrators can view and 2 × 0.8 = 1.6 “lin4 approve links 2 5 2 × 1.25 = 2.5 1.6 2.5 mo
  117. 117. # Description Est Degree of Exp. Range Low High Pro 1 × 0.8 = 0.8 Cre1 Nodetype: Link 1 5 1 × 1.25 = 1.25 0.8 1.25 the Use Users add links which are 2 × 0.67 = 1.34 aw2 unpublished before approved 2 4 2 × 1.5 = 3 1.34 3 new unp Wo Administrators are notified 5 × 0.5 = 2.5 an e3 when links are added 5 3 5 × 2 = 10 2.5 10 nod A li Administrators can view and 2 × 0.8 = 1.6 “lin4 approve links 2 5 2 × 1.25 = 2.5 1.6 2.5 mo
  118. 118. # Description Est Degree of Exp. Range Low High Pro 1 × 0.8 = 0.8 Cre1 Nodetype: Link 1 5 1 × 1.25 = 1.25 0.8 1.25 the Use Users add links which are 2 × 0.67 = 1.34 aw2 unpublished before approved 2 4 2 × 1.5 = 3 1.34 3 new unp Wo Administrators are notified 5 × 0.5 = 2.5 an e3 when links are added 5 3 5 × 2 = 10 2.5 10 nod A li Administrators can view and 2 × 0.8 = 1.6 “lin4 approve links 2 5 2 × 1.25 = 2.5 1.6 2.5 mo
  119. 119. ee of 1 × 0.8 = 0.8 Cre1 Nodetype: Link 1 5 1 × 1.25 = 1.25 0.8 1.25 the Summing up estimates Use Users add links which are 2 × 0.67 = 1.34 aw2 unpublished before approved 2 4 2 × 1.5 = 3 1.34 3 new unp Wo Administrators are notified 5 × 0.5 = 2.5 an e3 when links are added 5 3 5 × 2 = 10 2.5 10 nod 191 147 271
  120. 120. ee of 1 × 0.8 = 0.8 Cre1 Nodetype: Link 1 5 1 × 1.25 = 1.25 0.8 1.25 the Summing up estimates Use Users add links which are 2 × 0.67 = 1.34 aw2 unpublished before approved 2 4 2 × 1.5 = 3 1.34 3 new Summary of unp ideal estimates Wo Administrators are notified 5 × 0.5 = 2.5 an e3 when links are added 5 3 5 × 2 = 10 2.5 10 nod 191 147 271
  121. 121. ee of 1 × 0.8 = 0.8 Cre1 Nodetype: Link 1 5 1 × 1.25 = 1.25 0.8 1.25 the Summing up estimates Use Users add links which are 2 × 0.67 = 1.34 aw2 unpublished before approved 2 4 2 × 1.5 = 3 1.34 3 new Summary of unp ideal estimates Wo Administrators are notified 5 × 0.5 = 2.5 Sum range high an e3 when links are added 5 3 5 × 2 = 10 2.5 10 nod 191 147 271
  122. 122. ee of 1 × 0.8 = 0.8 Cre1 Nodetype: Link 1 5 1 × 1.25 = 1.25 0.8 1.25 the Summing up estimates Use Users add links which are 2 × 0.67 = 1.34 aw2 unpublished before approved 2 4 2 × 1.5 = 3 1.34 3 new Summary of unp ideal estimates Wo Administrators are notified 5 × 0.5 = 2.5 Sum range high an e3 when links are added 5 3 5 × 2 = 10 2.5 10 nod 191 147 271 Sum range low
  123. 123. Symmetrical uncertainty Low uncertainty Low High 0.8x 1.25x Ideal estimate
  124. 124. Symmetrical uncertainty High uncertaintyLow High0.25x 4x Ideal estimate
  125. 125. Asymmetrical uncertainty Or: it can only get worse! Low High 1x 4x Ideal estimate
  126. 126. Pessimistic Optimistic Symmetrical Asymmetrical Symmetrical Asymmetrical1 0.17 6 1 6 0.67 1.5 1 1.52 0.25 4 1 4 0.71 1.4 1 1.43 0.5 2 1 2 0.77 1.3 1 1.34 0.67 1.5 1 1.5 0.83 1.2 1 1.25 0.8 1.25 1 1.25 0.91 1.1 1 1.1
  127. 127. Pessimistic Optimistic Symmetrical Asymmetrical Symmetrical Asymmetrical1 0.17 6 1 6 0.67 1.5 1 1.52 0.25 4 1 4 0.71 1.4 1 1.43 0.5 2 1 2 0.77 1.3 1 1.34 0.67 1.5 1 1.5 0.83 1.2 1 1.25 0.8 1.25 1 1.25 0.91 1.1 1 1.1
  128. 128. Pessimistic Optimistic Symmetrical Asymmetrical Symmetrical Asymmetrical1 0.17 6 1 6 0.67 1.5 1 1.52 0.25 4 1 4 0.71 1.4 1 1.43 0.5 2 1 2 0.77 1.3 1 1.34 0.67 1.5 1 1.5 0.83 1.2 1 1.25 0.8 1.25 1 1.25 0.91 1.1 1 1.1
  129. 129. Symmetrical uncertainty Pessimistic Optimistic Symmetrical Asymmetrical Symmetrical Asymmetrical1 0.17 6 1 6 0.67 1.5 1 1.52 0.25 4 1 4 0.71 1.4 1 1.43 0.5 2 1 2 0.77 1.3 1 1.34 0.67 1.5 1 1.5 0.83 1.2 1 1.2
  130. 130. Asymmetrical uncertainty Pessimistic Optimistic Symmetrical Asymmetrical Symmetrical Asymmetrical1 0.17 6 1 6 0.67 1.5 1 1.52 0.25 4 1 4 0.71 1.4 1 1.43 0.5 2 1 2 0.77 1.3 1 1.34 0.67 1.5 1 1.5 0.83 1.2 1 1.2
  131. 131. Use the UncertaintyFactors tab in your sheet to set factors and symmetry Copy the above values into the APPLIED columns to work with asymmetrical uncertainty
  132. 132. In the endIts easy to estimate what you know.Its hard to estimate what you know you dont know.Its very hard to estimate things that you dontknow you dont know.
  133. 133. Overhead timeAdministration and project management 1.25xTesting 1.15x
  134. 134. COMPARE WITH GUESSTIMATE ??? ho ur s
  135. 135. Start big, reduce later
  136. 136. Awareness of time
  137. 137. Culture
  138. 138. If unsure, ask an expert
  139. 139. Recommended reading
  140. 140. What did you think?Locate this session on the DCC website:http://go.nodeone.se/estimatesClick the “Take the Survey” link.Contact mejakob@nodeone.sehttp://www.twitter.com/realsolipsisthttp://drupal.org/user/37564

×