Smart estimation

Smart estimation is a technique for estimating the complexity and size of software development projects. The technique has been used in a large number of projects, ranging from custom software development, to business intelligence projects and even package implementations. The technique is fairly simple and is applicable without much knowledge on estimation techniques. An overview or list of your requirements will often do just fine.

Read more

Estimating smart

Smart estimation relies on the availability of high level requirements, modeled as smart use cases, or even a list of such use cases. Thus, estimating smart cases is independent on technology, architecture or even the type of project you're estimating. There are templates available (in download) to create the actual estimate. This is done by categorizing the smart use cases according the scale presented here, which can e.g. be done in a workshop, a so-called smart estimation poker session, or by filling in a quick estimate spread sheet. Another really fancy possibility is to export the UML model, import it in Tobago MDA, and generate out the estimate spread sheet.

Smart estimation scale

Smart use cases all have a similar level of granularity, an thus their complexity can be estimated on the same scale. The complexity scale that is used in smart estimation is:


Download

Always investigate the possibility to split use cases of levels 8 and 10 to more detailed smart use cases of a lower complexity.

Sander Hoogendoorn

A good example for this practice came out of a project where a number of types were imported from a comma delimited flat file.

We originally estimated the single use case for this procedure an 8, but found out later during the project that this use case actually consisted of importing a larger number of types (8 to 10). If we had known this upfront, we would have extended the model, and hence would have been able to estimate more reliable.

Wouter Goedvriend

Benefits of smart estimation

The are a number of benefits of applying smart estimation over most other techniques:

Which types of project does smart estimation apply to?

The smart estimation technique can be applied to projects when the total functionality of the system can be modeled using smart use cases. There are basic guidelines for modeling smart use cases. Originally these guidelines where intended to model smart use cases for custom software development, using environment such as Java or .NET. These guidelines apply to a wide range of types of projects, mainly because they model forms and functionality at a level (called sub-function level) that is well applicable to:


Additionally, modeling smart use cases has been applied to other types of projects as well:


Smart Metrics and Feedback

Read more