Although Function Points (FPs) were introduced by Alan Albrecht of IBM 25 years ago, they remain largely unknown by most developers today. For instance, I personally know over 120 software developers at 20 different companies, and nobody had ever heard of Function Points before I did. The closest I ever came was earlier this year, when a friend started telling me that he really wished there was some good metric for determining the size of software applications, because he sure was tired of making up estimates all the time. (Actually, he referred to this process as "pulling an estimate out of thin air".) He was looking at something called Use Case Points, which is a very non-formal, non-standard approach I had tossed aside years ago. He was trying to get this to work, and I suggested that he take a look at FPs instead.

As I've learned over the last 18-24 months, being aware of FPs and what they can add to your overall understanding of the software development process is very important. Understanding FPA helps take the fear out of tasks like software development cost estimating. Additionally, it can also serve as an aid in measuring and improving product quality as you begin to understand critical metrics such as project velocity and defect ratio.