Estimating Drupal Projects

This session led by Alex Kroman of Opensourcery covered exactly what the straightforward title suggests: Estimating Drupal Projects. Read on for an example estimation process.

What is an estimate?

  • A good estimate describes reality. It should tell a developer a great deal about how to complete a project (not just what the client is going to pay)

An example of a successful 10 step process for estimation

  1. Gather Requirements - In this step, gather the scope, the budget range, and if the project is a fit for your organization.
  2. Schedule an Estimation Meeting - Set up a timeboxed meeting (1-2 hours seems to work well), and make sure the right parties are in the room sales (client needs), a developer (code, complexity), and a project manager (risk, timeline, balancing workload).
  3. Review requirements and high level goals.
  4. Review similar projects you've completed - get a sense for how the budget turned out, what solutions were used, etc.
  5. SWAG (Scientific Wild-Ass Guess) - set general expectations with those doing the estimating.
  6. Extract Features - Use the client's language and whenever you can to describe features and functionality.
  7. Write solutions and exclusions - Give each feature a solution to clearly specify how the site will be built. Exclusions are also very important to clarify what WON'T be included.
  8. Estimate with Accuracy (general range) and precision (exact hours). An hours scale can be helpful to capture the scale of a particular feature (fibonacci sequence, powers of 2, etc).

    Suggestion 1: break larger tasks down into smaller tasks with a maximum time per task (say, 5 hours), and relate those back to a larger parent task.

    Suggestion 2: Have developers rank their familiarity with each estimated solution to give a sense of confidence for each estimated task. Then use multipliers to create high and low ranges based upon estimated hours and confidence.

  9. Write the Proposal - Include any notes and a spreadsheet for estimation. Be as transparent as possible. If possible, use a price range that matches the actual risk of the project.
  10. Track and revise your estimation system. A good goal is to get estimates within 10% accuracy 90% of the time. Look at your actuals versus estimates to identify where weaknesses lie in estimation.

Add new comment

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <cpp>, <java>, <php>. The supported tag styles are: <foo>, [foo].
  • Web page addresses and email addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Ready for transformation?