Feeds:
Posts
Comments

Posts Tagged ‘Estimation’

Henry Ford“The best we can do is size up the chances, calculate the risks involved, estimate our ability to deal with them, and then make our plans with confidence.”

Henry Ford (1863-1947)
American industrialist, pioneer of the assembly line and prolific inventor

 

 

Words of wisdom from one of America’s great 20th Century industrialists, and the other day I listened to a talk on The 10 Deadly Sins of Software Estimation by a true innovator in our own industry, Steve McConnell – the CEO of Construx Software in the States. [1]

And as anyone that works in this field knows all too well, the subject of estimation comes up time and again, from client or supplier, at the start of every web project.

Fundamentally – for a whole range of perfectly valid reasons – stakeholders need to have the answers to such basic questions as:

  • How long will a project take?
  • What the margin of error on either timeline or budget?
  • What effect will making this trade-off have on project length and/or cost?

And sometimes, on the odd occasion where the whole process starts getting really surreal, it even descends into: “I’m not quite sure what we want, but are you really sure you can’t deliver it more cheaply, quickly, etc., etc.?”

And nowhere does this hold more true than at the very beginning of a project; the point at which we are suddenly asked to produce “THE ESTIMATE….”

 

Problems of Software Estimation[2]

In his talk on The 10 Deadly Sins, McConnell claimed:

The average project overruns its planned budget and schedule by 50%-80%. In practice, little work is done that could truly be called ‘estimation’. Many projects are scheduled using a combination of legitimate business targets and liberal doses of wishful thinking.

Now, rightly or wrongly, I happen to believe implicitly in this statement.

And one estimation problem that makes it to No.3 in his all time charts is one that McConnell refers to it as “making commitments too early in the cone of uncertainty”.

The basic premise of this is that: Uncertainty in a software estimate results from uncertainty in how project decisions will be resolved.

This situation is neatly summarised in the diagram below, which shows that time/cost estimates created very early in a project are subject to a very high degree of error (i.e. something of the order of -75% to +300%).

The Cone of Uncertainty

The Cone of Uncertainty (© Section 4.2, Software Estimation: Demystifying the Black Art, Microsoft Press, 2006)

And what this diagram also shows is that estimation inaccuracy drops dramatically as you progress through a project.

So by the time requirements definition is complete – on the average about one third the way through a typical project – the margin of error has dropped to between -33% and +50%.  

 

What This Suggests in Practice

With software estimation we are caught in a Catch-22. The more one understands a project, the more accurate the estimate, but the only way to reduce inaccuracy is to actually do the project.

The message, therefore, is that an estimate will become more accurate as a project progresses, and it will be very inaccurate at the start.

 

Levels of Solution Uncertainty in SharePoint Projects

To be honest, the cone of uncertainty within SharePoint projects can be very broad indeed.

The reason is fundamentally to do with the nature of dealing with a product-based solution that is very extensive, functionally in places constrained, and yet in others highly capable. 

And it does not help that SharePoint also has the following characteristics:

  • It is undoubtedly a hard platform to master: from planning and requirements analysis to configuration, development and design and deployment.
  • It is idiosyncratic in implementation: thus just when you think you have it under control then it turns up another particularly difficult aspect that requires more effort and energy to overcome.

All told, therefore, we have found it hard to estimate upfront the true effort involved in a SharePoint project, and there is little doubt that this can have very significant consequences for your solution planning – leading to overruns in terms of resource effort and elapsed time.

Nevertheless, as with any product, genuine experience pays, and the more you work with SharePoint then the more one gradually gains “rule of thumb” metrics of what it takes to enable this or that feature.

Arguably, however, such rule of thumb estimation isn’t enough.

The platform’s capabilities and features are extensive and within each core functional area there are so many unexpected wrinkles, that it is advisable – even mandatory – to plan a solution in detail very early on in order to manage a SharePoint project effectively.

And this effort, in turn, helps with project estimation….

 

Solution Estimation with SharePoint

Although we have in the past, we now no longer adopt rule of thumb estimation when it comes to quoting for a project using SharePoint. Instead, we analyse early on and in detail (a) how a solution’s feature set could be enabled within SharePoint and (b) what the base level of effort is involved.

The method we have arrived at is worth looking at in some detail:

 

Step 1: Project Assessment

First, we jointly assess whether a project fits the “shape” of SharePoint itself – this type of assessment being undoubtedly more art than science.  

The Starting Point

Essentially, this step relies on making a judgement call between what SharePoint can do as a product and what it must do in the context of a particular project.

And for it to pass the assessment this relationship must, on the whole, be strongly positive.

And make no mistake, this upfront assessment is a critically important decision; essentially it sets the outline and constraints of a solution throughout its entire project life-cycle, and yet is a technology choice that must usually be made from the outset of a project.

(Note: This is where that indefinable quality of “knowing” SharePoint comes in handy. I liken it to the difference between having knowledge and experience of something rather than merely reading information about it).

 

Step 2: Project Requirements Mapping

Next, we conduct a detailed assessment of the solution requirements from a SharePoint perspective.

This entails looking at each and every project requirement and asking “how can this actually be done within the confines of SharePoint Products and Technologies”.

And depending on the uncertainty inherent within the solution domain, this process can vary in granularity ranging from relatively low fidelity diagramming with notes (where you are more certain) to quite exhaustive and detailed requirements mapping (where you are less certain).

See, for instance, the extract below which shows this process applied to a recent Storm ID solution tender to a Website project using MOSS 2007 – where the solution uncertainty was relatively low.

(To come, sorry reader: file is at work!)  

 

Step 3: Work Breakdown Structure (WBS) Planning

Once we are clear on the probable development approach, only then do we create a WBS (i.e. a project plan).

This WBS does not need to be exhaustively granular at this stage (see, for example, my previous rant about Gantt charts in a separate post), but it does need to have the right level of detail against which to map estimates comfortably.

Too high-level it becomes a farce; too detailed, and it’s counter-productive.

See the WBS below for our example:  

WBS for MOSS 2007 Website

WBS for MOSS 2007 Website

 

 

 

 

 

 

 

 

 

 

Step 4: Map Estimates Against the WBS

This is a key step in the process, and squares the circle between solution evaluation using MOSS, an outline WBS as a project plan, and the actual effort required to deliver the project.

In effect, this is where the estimates are born.

And to further allow for solution uncertainty we apply “modifiers” against each estimate that allow for essential parameters of:

  • Complexity: A multiplier that accounts for the base complexity of implementing the requirement within SharePoint, ranging from “A = Low” through to “C = High” to “D = Can’t do”
  • Risk: A multiplier that accounts for how well understood we feel the requirement to be, and how likely it is to change within the course of the project 
  • Effort: An overall effort multiplier for high/medium/low sensitivity analysis – measured in either days or hours to implement a feature

 Again, see the Estimate Map below for our example: 

Estimates mapped against WBS for MOSS 2007 Website

Estimates mapped against WBS for MOSS 2007 Website

Of course, adopting this overall approach means that solution clarity is everything. And where lacking then we seek the detail with the sponsors of the project, only stopping until we are satisfied that the actual scope of the project is relatively clear – probably with a few remaining grey areas.

This way we can build a relatively accurate picture of the effort within a solution, but equally in our estimate modifiers we also allow for the unknowns. 

 

Less Rocket Science Than a Process …

All this, of course, is hardly rocket science, and happens the world over in solution design.

But the point we are trying to make here is that this approach is not really optional with SharePoint – it is essential.

For reasons that are well documented in the project management literature, a failure to do this sort of solution assessment can have highly negative consequences for all involved for the management and delivery of a project throughout its life-cycle. [3]

We believe, therefore, that to give your SharePoint project half a chance requires an active approach to planning.

And equally you must also accept the need for the following:

  • Do your homework upfront: plan your solution design early, and do it in detail. Detailed product-based requirements analysis will lead to both more balanced solution estimates and more realistic projects.
  • Rely on genuine experience: excellence in business and technical understanding of the platform pays. Don’t believe that SharePoint is either a simple or purely out the box product, and instead use experienced people with this platform. Again, this will lead to more realistic solution assessments and better delivery.

 
And Finally …

It is virtually a truism that getting your solution estimates wrong with SharePoint matters a great deal – whether you are the project sponsor, a stakeholder, or a project team member.

Paradoxically, at Storm ID we now attempt to deal with the cone of uncertainty problem in relation to SharePoint by planning our solution designs as early as possible, and in so doing we devote care and attention to defining the project solution at almost pseudo-developer level using our experience of what does and doesn’t work (wherever humanly possible).

This approach helps mitigate – though clearly doesn’t remove – the level of solution uncertainty that is inherent in dealing with SharePoint, and is one that repays itself many times over.

Maybe Henry Ford had it just about right all those years ago: do a little spadework, play the numbers in the guessing game, and then make our plans with greater confidence….  

 

 

[1] On McConnell: For the 10 Deadly Sins of Software Estimation, see http://blogs.construx.com/blogs/stevemcc/archive/2009/06/22/free-webinar-10-deadly-sins-of-software-estimation.aspx. As an ex-Microsoft project manager, Steve McConnell is acknowledged as one of the finest writers on software project management in the world. He is the author of classics such as Code Complete, Rapid Development and the Software Estimation, all of which have the extraordinary ability to turn your preconceived beliefs on software project management completely on their head.

[2] This and the next section follows Chapter 4 of Steve McConnell’s book, Software Estimation: Demystifying the Black Art (Microsoft Press, 2006). If you are at all interested in this pervasive problem in software project management, buy this book.

[3] For reasons that are well documented ….  I feel that this is so important in relation to SharePoint solutions that I intend to write another post on this in the future. And while this is a broad subject, and in a single post one is limited to what one can do, for me it is worth the attempt.

Read Full Post »