Function Points, or not Function Points: that is the question
I have recently read an article in the Chronologist blog, by Steve Tendon, with a title that caught my attention: ”Function Points Are Fantasy Points”. Steve analyzes Function Points as a metric to estimate project effort that is no longer valid for modern applications, in particular contemporary web applications.
I agree that Function Points are an outdated metric. But you still have to estimate. A lot of money is at stake here.
What is the best way to do it? How would you do it better? Based on what? The more accurate the estimation, the less losses in the projects. When someone loses someone else wins, you don’t want to be the one losing.
Nowadays, and according to the Chronologist’s article, estimators should be in the breach of technology to have the knowledge that allows them to estimate the effort to implement some functionality with a given development framework. And it is a fact that your typical project manager doesn’t have the technical skills for it. That is when developers, analysts or software architects come into the picture. There is not much discussion here. The ones that have the knowledge are the ones that have to estimate, and the ones that are going to build a system know how they are going to do it.
Let’s look how it works in the real brick and mortar construction projects. Do you ask the construction workers how long is it going to take them to build a column or a wall? I don’t think so. I understand that it is the architect the one with necessary knowledge about the techniques to be used in the construction and she will expect that the construction workers will build the elements in the time estimated. But I don’t see the promoter of the building giving the estimations either.
The same for software systems, the architects that design the solution should be the ones to estimate the effort since they are the ones who know and have the details.
Function Points were defined when technology were more or less stable. Today development frameworks and technologies sprout every day like mushrooms in a forest after an October storm, making us to rethink how we measure the effort for each particular framework or technology. They come out so fast that sometimes it is not even worth it to define an estimation method. Does it pay to research, define and establish a method when we will probably have to throw it away and start over when we adapt our application to the latest technically beneficial framework?
When there is so much money behind an estimation (and there is), big companies need to feel secure within a well known, ‘de facto’ standard estimation method so the C’s can feel they are not alone in this –“Oh well, I’m not sure it is the best, but if it is what rest of the world is doing we will all win or lose the same way”–. Being so, to cope with the risk, more than an outdated standardized method like Function Points, now in seems better to have a team of expert architects to estimate based on knowledge and experience.
But there is a major flaw with this approach: people leave the companies looking for new challenges, what happens then? The knowledge is gone and you need to rebuild it. This may be a good reason to use standard estimation methods that don’t rely on internal people so much and the estimator is not so “key”. This way you can delegate on external experts to have an objective estimation of Function Points, costly but very necessary when you outsource the development. Why does a software factory have to accept what an architect in the contracting company says? Or, why does the contracting company has to accept what the contractor estimates it needs to build the system? Sometimes the situation is that the architects designing your solution belong to the contractor, which may look like something you shouldn’t do overall if you are going to be responsible of the maintenance of the system. But it often happens, like when I have to do some refurbishing work in my house: I don’t have the knowledge to discuss the only thing I can do is to compare budgets. It all depends on the outsourcing model you use.
Still, are there any other ‘de facto’ standard metric we can use for more accurate estimations that may substitute Function Points? Story Points, often confused with Function Points but, as the Chronologist explains in his ”Story Points are NOT Function Points” article, they are not the same.
What do you think?
Meet the author Juan Carlos Castromil
Computer Engineer with professional experience in software quality since 2006. Specialist in consulting and Quality Departments implementations for different companies mainly in the banking and insurance sectors. I have recently started doing pre-sale tasks in Spain and Latin America for Optimyth´s solutions.