We charge hourly. There are no fixed bids. Whether our customers choose to dicuss the project, the game last night or if we are designing, estimating, building, managing, troubleshooting, developing, discussing requirements or doing anything for the client’s benefit, it is billed.
Many people wonder why we bill hourly and the answer is simple: a software development project is a fractal.
A fractal is a self repeating geometric pattern that appears the same no matter how deep you zoom in, or focus in, on a certain area. What is unique about fractals is that they represent bound infinities and reside between dimensions.
Let’s look at a famous fractal called the Koch Curve or the Koch Snowflake. It starts as a triangle. Simple, right? Then, take each side of the triangle and split it into thirds. Then, take the middle third and make a new triangle with the middle third as its base. Rinse and repeat.
What is amazing about this is that the total area of a Koch curve is finite: less than the area of a circle circumscribing the original triangle. However, the perimeter is infinite. It goes forever and repeats the same pattern no matter how much you focus on it.
So even something that started with a very simple definition can turn into a complex object.
In an analogous fashion, software development projects can be infinite - they may never end. Regardless of the stage of the project or its level of completion per the original requirements, asking any engaged user will result in additional specifications, clarifications or features. People are creative...they can be creative forever. This is good. If this weren’t true, the patent office would have already shut down. In the context of a project, creativity must be constrained by budget.
Due to this ability to create forever, a cost constraint needs to be put in place. In order to constrain scope and hence cost, all project hours are billed. The result is a fully functional, yet constrained, system that meets specifications.