<div dir="ltr">I think the most worrying part of an estimate is the gap between design and implementation. Except for projects that are totally in-house, a client usually wants to get a custom design that simply does not reflect on what modules provide, then time is totally wasted on forcing modules to look some very awkward way or creating new UI facets for them.<br>
<br>I believe that even more of a risk is when a designer conceptualizes a totally different way for doing something which can be done with less effort by a combination of modules.<br><br>A Drupal developer/designer is a true asset when it comes to that as he would be designing based on his knowledge of modules and their default implementations. Although similar risks apply when dealing with new projects and new modules.<br>
<br>Has anyone faced this problem? How do you begin to tackle it? What do you do when the client wants the design to come out from his side and you know the deisnger will totally be someone unacquainted with Drupal? And in some cases I faced, not acquainted with web development!<br>
<br><div class="gmail_quote">On Mon, Feb 23, 2009 at 2:05 AM, Jakob Persson <span dir="ltr"><<a href="mailto:jakob@nodeone.se">jakob@nodeone.se</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Estimating time is indeed difficult. We've had success with applying a<br>
strict method of using fixed amounts of time and breaking tasks down. We<br>
estimate in man hours, and use a fixed scale of units: 1, 2, 5, 10, 20,<br>
50, 100. The rule of thumb is to pick the higher of the two if your<br>
estimate lies between two. If unsure, divide and conquer - break down<br>
the task and estimate each subtask.<br>
<br>
It's better with a mix of 10's, 20's and 50's than multiple 100 hour<br>
blocks as the risk of error stands in proportion to the size of the<br>
estimate. This way, you can better control potentially inaccurate<br>
estimates. By assigning a complexity and risk rating to each estimated<br>
item you can also take risk and complexity in account when doing project<br>
planning. We've had good success and produced eerily accurate estimates<br>
this way.<br>
<br>
As many of you have observed, making accurate estimates is<br>
time-consuming, especially with Drupal where many features can be<br>
implemented by combining existing modules and code. You can usually<br>
spend half an hour to an hour to make a rough estimate based on your<br>
experience with an accuracy of a few hundred hours. That's what we do<br>
as part of a quote for a client, and we can also see roughly what<br>
competence is needed where and include that as well.<br>
<br>
If the client wants more precision, what we offer them is a pilot study<br>
that lays the foundation for the development process. Many people can<br>
build Drupal sites but not all can do it well, The Drupal Way, as we<br>
say. Most programmers can use Drupal to implement anything<br>
monolithically and not reuse existing modules and combine them. However<br>
if you want to work efficiently with Drupal you need to know the<br>
terrain, know how to use existing modules to build what the client<br>
needs. This task is what we refer to as Drupal architecture, and it<br>
takes an experienced Drupal developer to tell where a custom module is<br>
needed and where an existing one can do the job. More importantly,<br>
sometimes a client can relax some requirements and thereby get 95% of<br>
the functionality at 50% of the time it would take to implement<br>
something exactly to spec by going with an existing solution.<br>
<br>
In our dreams we get to take care of everything from design to<br>
implementation and have a concise unambiguous specification to work<br>
with. In reality you often get a complete design mockup in your hand and<br>
you're told to implement it. The time estimates for mockup designs tend<br>
to get high as there are a lot of details that need customized<br>
solutions. When we talk to them about The Drupal Way, clients get<br>
excited when they hear how much time they can save by doing things a<br>
little bit differently than their designer envisioned.<br>
<br>
As part of a pilot study we include suggested implementation guidelines<br>
(a "recipe") with time estimates and complexity rating. It explains how<br>
to build the site on Drupal exactly to spec and how a similar solution<br>
that depends on existing functionality (The Drupal Way) can cut<br>
implementation time considerably and what effects it has. Such<br>
guidelines can then be used by the client to make informed decisions<br>
before the actual development work starts. Since the pilot study is a<br>
service we offer we can dedicate time to building small test sites and<br>
evaluate the solutions we suggest. That enables us to make time<br>
estimates that are based on actual hands-on experience rather than<br>
extrapolated numbers and projections based on experience.<br>
<br>
Being honest and telling your client you can't give an estimate, that<br>
the information provided is insufficient and that you'd rather focus on<br>
producing a pilot study for them is often a good idea. Clients that are<br>
familiar with software development understand your reasons and will<br>
consider you a more serious partner than a company that gives a fixed<br>
even price (say 200 000). After all, a successful project is something<br>
both you and your client will benefit from. Showing that you do not want<br>
to compromise your relationship by running the risk of selling something<br>
you cannot deliver on time and with the quality required strengthens<br>
that relationship.<br>
<br>
Cheers,<br>
<br>
Jakob<br>
<br>
--<br>
Jakob Persson<br>
Co-founder and Consultant at NodeOne<br>
"Empower the user"<br>
-------------------------------------------<br>
STOCKHOLM: GOTHENBURG:<br>
Kåkbrinken 11A Vita gavelns väg 10<br>
SE11127 Stockholm SE42671 Västra Frölunda<br>
SWEDEN<br>
Phone: +46 31 780 02 23<br>
<a href="http://www.nodeone.se" target="_blank">http://www.nodeone.se</a><br>
<div><div></div><div class="Wj3C7c"><br>
<br>
<br>
<br>
John Saward wrote:<br>
> I'm currently very interested in people's experiences with<br>
> 'estimation-blowout'.<br>
><br>
> In my experience, and discussions with Project Managers, Developers<br>
> and Clients I find that quite often the number of hours to actually<br>
> complete a Drupal project or task, is considerably more than the<br>
> number of hours estimated beforehand. This creates problems<br>
> (budgetary and otherwise) and stress and even resentments to all<br>
> involved whether the work is being performed on a<br>
> fixed-price-quotation, estimated or actual-hours basis.<br>
><br>
> I note the comment from the team who recently updated <a href="http://drupal.org" target="_blank">drupal.org</a> from<br>
> 5 to 6, "So while we crafted a fine plan for the upgrade, it took a<br>
> few more hours then originally planned." <a href="http://drupal.org/node/376454" target="_blank">http://drupal.org/node/376454</a>.<br>
><br>
> I'm understanding that the preparation and planning for the upgrade<br>
> was a mammoth task, when I read the report of the upgrade sprint, at<br>
> <a href="http://drupal.org/node/366562" target="_blank">http://drupal.org/node/366562</a>. Those at the sprint, and other<br>
> contributors, worked hard doing all that was humanly possible to<br>
> prepare and plan for the upgrade so that least downtime as possible<br>
> would be entailed. One outcome of the sprint would have been an<br>
> estimation of how many hours would be required for the final push,<br>
> the working time that would necessarily entail site downtime. And now<br>
> I see that the actual upgrade was more intricate and time-consuming<br>
> than that prediction.<br>
><br>
> My thinking is that these guys are some of the most experienced<br>
> Drupal engineers around; and most familiar with the entire <a href="http://drupal.org" target="_blank">drupal.org</a><br>
> infrastructure. If they are unable to predict the hours beforehand,<br>
> even after going into 'fine planning' .... well.... who could have?<br>
><br>
> What does it take to accurately estimate a significant Drupal<br>
> project? Experience obviously, but it seems that is not always enough<br>
> in itself. Are there just always too many unknowns, too many<br>
> variables, too many 'what ifs' to be overlooked, in any<br>
> more-than-basic Drupal work? Is accurate estimation for anything<br>
> other than highly-repetitive tasks.... verging on the impossible?<br>
><br>
> I'm interested in hearing views and experiences about this.<br>
><br>
> And also I'm interested to know if the upgrade team has a record of<br>
> hours predicted against actual hours taken, for the upgrade.<br>
><br>
> John<br>
><br>
> ==============<br>
> John Saward<br>
> <a href="http://www.drupal.com.au" target="_blank">www.drupal.com.au</a><br>
> 03 5968 1541<br>
> ==============<br>
><br>
> _______________________________________________<br>
> consulting mailing list<br>
> <a href="mailto:consulting@drupal.org">consulting@drupal.org</a><br>
> <a href="http://lists.drupal.org/mailman/listinfo/consulting" target="_blank">http://lists.drupal.org/mailman/listinfo/consulting</a><br>
><br>
<br>
</div></div>--<br>
Jakob Persson<br>
Co-founder and Consultant at NodeOne<br>
"Empower the user"<br>
-------------------------------------------<br>
STOCKHOLM: GOTHENBURG:<br>
Kåkbrinken 11A Vita gavelns väg 10<br>
SE11127 Stockholm SE42671 Västra Frölunda<br>
SWEDEN<br>
Phone: +46 31 780 02 23<br>
<a href="http://www.nodeone.se" target="_blank">http://www.nodeone.se</a><br>
<div><div></div><div class="Wj3C7c"><br>
_______________________________________________<br>
consulting mailing list<br>
<a href="mailto:consulting@drupal.org">consulting@drupal.org</a><br>
<a href="http://lists.drupal.org/mailman/listinfo/consulting" target="_blank">http://lists.drupal.org/mailman/listinfo/consulting</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Ashraf Amayreh<br><a href="http://aamayreh.org">http://aamayreh.org</a><br>
</div>