Monday, September 22, 2008 8:00:22 AM UTC #

Estimating is difficult to begin with, but add on

  • a new technology stack with which you're unfamiliar,
  • sometimes unreliable and often undocumented API (I can back this up with examples, just take my word for it),
  • tight integration/reliance on Active Directory, SQL Server, IIS, Exchange, Office, and Internet Explorer, all of which may fail in difficult-to-debug ways;

Given all this, how much risk are you taking on if you provide a tight estimate? If you haven't tackled three or more Visual Studio Workflow projects, for example, how do you even go about getting a ballpark estimate on your first one?

On a recent project I put a 10x difference between my lowest and highest estimate for an SAP integration task, and everyone complained to me about how "there's too much variance." Well, what should I put there, I've never tried it before!

This isn't a passive-aggressive way of trying to win a work argument via my blog. If I start doing that, dude, let me know, I don't want to be that guy.

But it is a cry for help. How are we supposed to estimate SharePoint development tasks? If you're not an experienced SharePoint team, and by "experienced" I mean experienced in building the exact same solution, using the exact same method calls on the exact same SharePoint objects—if you're not truly experienced, then how do you even attempt estimating?

When you may be blocked anywhere between zero to ten times on a task, and each blockage may take up to a full week (or more) to resolve?

When your project approach hits a dead end? A brick wall?

In traditional build-it-from-the-ground-up systems, you can estimate the complexity of your requirements and envision a rough idea of what your solution will look like, and compare the complexity of your new task with similar tasks you've done in the past. This works for traditional development, so long as you double your estimate and increase it by an order of magnitude :). The idea is, when you're building it from the ground up, estimating is "as simple as*" estimating your effort based on the complexity of the problem.
* saying estimating is "as simple as" anything is an implied joke; you may laugh now

But if your task says "write a custom field that pulls data from SAP," or if someone says "hey, let's build this web part with Silverlight!" …how do you put down an estimate? When the task, performed by an experienced expert (see above for my definition of experienced) takes an hour, and in reality the bulk of your time is spent discovering how to do the one hour task?

What do you do when your honest estimate is, "this will take between 40 and 400 hours?"

I don't have the answer

I'm just throwing this out there because no one even talks about it. So here it is. When you're on a project and someone asks you for an estimate, and you answer "4 hours to 4000 man-months", and they laugh, hey—you're not alone. I can't figure it out either.

UPDATED 2008-10-21: I made mostly grammar fixes—so if you notice some changes, no, you're not going subtly crazy, this post changed a little.

Categories: SharePoint
Technorati:
Monday, September 22, 2008 8:00:22 AM UTC  #     |  Comments [7]  |  Trackback
Friday, September 12, 2008 7:28:29 PM UTC
I have this same problem. I spend more time researching roadblocks in SharePoint than I do actually writing new code.


Don't get me wrong - WSS is a great platform. But as you say, there are so many integration points and reliances upon other stacks that it just takes one little thing going wrong or one misunderstanding of the documentation (or lack thereof) and you're spending a week spinning your wheels.


It's good to know I'm not alone.
Monday, September 22, 2008 2:22:26 PM UTC
Yeah, you're definitely not alone :)

I would like to point out for future commenters that I'd love to hear constructive answers--estimation tricks, recipes, etc. Anything is appreciated.
Peter Seale
Wednesday, December 17, 2008 8:50:18 PM UTC
Hi, any tricks or tips for estimation, that any body might have?
venkat
Friday, June 12, 2009 7:10:54 PM UTC
Peter,
This is so funny. I was just going through this same agrument in my head last night. Why is it so hard to estimate SharePoint dev tasks, I was thinking.
Esitimating is hard, adding multiple inter-related technologies and their potential for not connecting right certainly doesn't help!
Friday, December 03, 2010 3:55:59 PM UTC
Same here I was chastized by some for my 200 hour estimate for developing a workflow project from four forms that included e-signatures, monetary accounting, and automatic selection criteria for emp name, dept, GL account from Dynamics GP, and expense types. They were thinking more like 30 hours! I laughed, or am I wrong?
kent
Friday, December 03, 2010 5:06:03 PM UTC
There is a world (the ideal world) where everything works as expected and 30 hours is reasonable. Unfortunately that has rarely been my experience with SharePoint.

One tool I found useful was the "give me a (few days/week) and I'll let you know if it's feasible" approach. I spend a week attempting to put together a solution (of any kind) using the technologies/integration points laid out in the requirements. Then at the end of the week, regardless of progress, I show them how SharePoint works. E.g. in the case above, I showed them how SAP works over the BDC (which was their assumption as to how easy it would be). Usually they're disappointed. But, at that point, I have broken their assumptions and have shown them reality. I had a good client that trusted me, so this approach worked for everyone.

Maybe the key point to make is that a) SharePoint's features are oversold, and b) we don't know which parts of SharePoint work until we try them out, and c) I haven't tried out most of SharePoint's features.
Peter
Friday, December 03, 2010 5:12:13 PM UTC
Wow, I mangled the English language there in my last comment. Anyway, the point is that POCs are great, but your client must first trust you.
Peter
Name
E-mail
Home page

Comment (Some html is allowed: b, blockquote@cite, em, i, strike, strong, sub, sup, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Enter the code shown (prevents robots):

Live Comment Preview
Syndication

Search
Posts on this page
Categories
Sites I visit regularly
About

Powered by: newtelligence dasBlog 2.2.8279.16125

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2012, Peter Seale

Send mail to the author(s) E-mail



Sign In