Diamonds and Software

I was working in Antwerp, Belgium, and I had a free afternoon, so visited the diamond sector. As it turns out, Antwerp happens to be one of the most important diamond centers in the world, and has played an important role in the diamond trade industry since the fifteenth century. The Antwerp Diamond Jeweler Association estimates that nearly $130 million worth of diamonds is traded each day in Antwerp. More than 85% of the world’s rough diamonds, 50% of cut diamonds, and 40% industrial diamonds are traded in Antwerp. I have learned everyone loves to talk about their business and industry and diamond traders are no different. I wandered into a diamond store and asked the diamond merchant, “What is the average price of a diamond?” He laughed and said, “It depends.” He rolled out a piece of blue cloth and started placing diamonds down onto it. He put down several one-carat diamonds which all looked the same to me. He explained, a diamonds value is based upon carat, color, clarity and cut. He handed me a jewelers loupe, which is just a magnifying glass. After a bit of training, I could actually see what he was talking about. He put down a 3-carat diamond and said, “This one is a real gem.” I looked at it though the loupe and I said, “Wow! This is really beautiful, what’s the price?” I was a bit shocked at his response: “$30,000, more or less.” I asked, “By the way, what does a carat mean.” The diamond merchant said, “Comes from the carob seed.” The Greeks established a weight standard for precious stones based upon a carob seed from the carob tree. The standard was established to help facilitate trade and prevent diamond buyers and sellers from being cheated. People thought when nature creates a carob seed it is pretty uniform in size and weight with other carob seeds. The carob is the origin of the word “carat” which jewelers still use to express the weight of gems and precious metals. The idea of a carat was used for a couple of millennium before it was standardized.

It turns out a carob is not as uniform as people thought. King Henry III (1207 – 1272) of England took strides to standardize measurement of weights. He decreed that an ounce was 640 dry grains of wheat. He did not wake up one morning and think a standard weight would be a good idea. He was trying to solve a very specific problem. The problem was to reduce disputes regarding matters of trade. There was a real benefit to buyer and seller making sure each received the quantity of goods both agreed to. While the ounce is a common measurement today, the idea to use grains of wheat seems almost arbitrary.

There was a lot of natural variation in the weight of a single carab seed. Not all grains of wheat are created equally. Henry III knew that if one grain of wheat equaled one ounce, then the ounce would depend on who chose the grain of wheat, just like the weight of a diamond depended on who chose the carob seed. There is a natural variation in the weight of one grain of wheat. The variation in what would be known as an ounce is reduced to almost nothing when a sample of 640 grains of wheat is used. The same is true with function points; not all function points are created equal. Some function points will are larger than other function points and some grains of wheat weigh more than other grains of wheat. As the number of function points increase, the variation caused by a single set of function points becomes less and less.

Measuring functionality is important to measuring software just as carats are important to measuring and comparing diamonds. As the diamond merchant told me, the size of a diamond is not the only characteristic impacting the value of a diamond, and the number of functions points are not the only thing that impacts the cost of a software application. Since diamonds are a girl’s best friend, or so the song goes, when a woman receives a diamond ring, she is often asked, “How big is the diamond?” She is being asked how many carats is the ring. Everyone knows the more carats the better. The number of carats impacts price more than any other single factor. The functional size of a software application impacts cost to develop a software application more than any other factor. Two diamonds that are of identical size will not have the same value, and two software projects of the exact size will also have different values. While there is a correlation between the number of carats and the value of a diamond, there are other things to consider such as clarity, color, and shape. Just like carats impact the price of a diamond more than any other single factor, functional size or function points impact the cost of a software application more than any other single factor. I also learned there is a degree of subjectivity in evaluating the value of a diamond, and there is a degree of subjectivity in sizing and evaluating a software applications too. By the way, it is more accurate to provide the size of a diamond in milligrams instead of carats. The number of carats has been used for a few thousands years, and it is hard to get people to change habits.

The price per carat is not constant, because, the larger the diamond the more the price per carat. The price of a three-carat diamond is not three times the price of a one-carat diamond. Typically the price per carat of three carat diamond ring is about $10,000 while the price per carat of a one-carat diamond ring is around $2,000. While the size increases by three times the price per carat goes up over five times. Not only does the price per carat go up, the range per price per carat increases, too. One of the most valuable diamonds in the world is the Millennium Star weighing in at 203 carats and valued at almost $200 million. That is almost $1 million per carat! The cost per function point is not constant, either. The cost per function point increases with size, too. The cost per function point of a large project is much more than the cost per function point of a small project.