Posted on September - 18 - 2008
Yes, but what IS it?
For some, the cocktail question is easy. Lawyers only need to specify their field. Doctors, construction workers, and teachers can all clearly explain exactly what they do in a just a few words, saving the listener from having their eyes glaze over in confusion. However, when you work in software estimation, the answer to the question “Oh, what do you do?” is a little more difficult than most.
The difficulty lies in two prime areas. The first is that even now as people are moving more and more of their lives online, software estimation still isn’t used in a lot of jobs. The idea itself is slowly starting to take off, but to put it one way I’ve actually heard a coworker say “If you need [software estimation] then you already know what it is. If you don’t know, then you probably don’t need it.” Granted, my coworker’s view was a bit cynical, software estimation is a growing field – Apple’s new iTunes Genius is a very simple version of software estimation – but he does have more than hint of truth in his statement. Software estimation is used to make decisions that are relatively complicated, and those decisions are usually reserved for larger companies for which risks are to be avoided if at all possible.
How complicated? Well, Microsoft’s book on software estimation refers to it as a “black art” which is a bit of a harsh misnomer that casts software estimation as perhaps something that is evil. I can assure you, software estimation is anything but. The term “art” is kind of an interesting fit for just what software estimation does – as no two products use the same process to get the same results.
And of course, none of these actually do explain what software estimation is, or what it does. To put it simply – software estimation is process that takes all these disparate pieces of data, pours them all into a pot, and then predicts the future. Of course, that’s not what I tell people. No, I tell them it’s that I work with fact-based crystal balls. That always seems to go over better.


