Thursday, May 27, 2004
Feature Complexity Points
Over the last few years, I’ve written several times about my 5 point scale for Feature Complexity in FDD. As my colleague Daniel Vacanti tells me,
“All features are not born equal”
and neither they are!
In fact the size or complexity of a Feature is a particularly important thing to know in two situations. The first is when you are working on a short iteration cycle anything from 2 to 8 weeks. The second is where you are close to complete - only a few Features to go, but equally only a few days on the schedule remaining and you don’t want to be even one day late. Feature complexity is not important on larger projects such as the original FDD project in Singapore - about 15 months, 2000 business logic features and as many more again for UI and interfaces to legacy systems. We have shown over the years that a statistical sample of Features tends to show a very normal distribution of complexity and there is indeed the concept of an “average Feature”. Hence, when trying to estimate an FDD project it is often easier to do it for a 500 or 1000 Feature project than it is for a 80 Feature project.
So Feature Complexity Points provides a way of managing FDD projects accurately in smaller iterations. I use a 5 point scale because psychologically it is easy to categorize things into 5 buckets. However, what are those five buckets. Well that hasn’t ever been adequately written down. It’s heuristic. I once wrote a suggestion that it is roughly based on the number of classes touched by the Feature and this is still a good rule of thumb. The more classes required, the more complex. Features which touch only a single class such as enquiry on a boolean variable - is it set of not? - are so simple that they are definitely complexity 1 out of 5. A Feature with a great deal of algorithmic complexity or involving complex business rules may be a 5 on the scale.
As a default, I then use a power law to translate the Feature Complexity Points into effort. 1 = 0.5 days, 2 = 1 day, through to 5 which is 8 days or more. Remember in FDD a Feature should never take more than 10 days. If it’s so big that you can’t envisage completing it in 10 man days then analyze it more and change it to more, smaller Features.
I’m beginning to build a list of heuristics for Feature Complexity and I will publish it later this year. Meanwhile, inventory measured as Feature Complexity Points that are tracked on a CFD chart will tend to give more accurate measures than simple Feature tracking.


