• The decision of when to release software is a balancing act between many different things. How many features, how many bugs are acceptable, time to market, price, available resources, market demands, and competition. The people at the software company have to balance these forces and decide when it is the right time for software to be released.

    If we were to wait until our software was bug free (relatively speaking) then we would be out of business. We do have an objective standard that we use to determine if software is ready for release and it has to do with the severity and quantity of bugs. We divide bugs into three severities 1, 2, and 3 with criteria for what those categories are. We will not release software with cat 1 errors, cat 2 errors have to be justified to the release team (which includes representatives from all aspects of our organization) and we fix as many cat 3 errors as possible.

    Comparing our software to that developed by NASA, or air traffic control software is not a good comparison. First, you can see a difference in the prices, also there is not the same competition for NASA software that we face in the ERP business, expectation must also be higher for NASA software because of how it is going to be used, and NASA has far more resources available for developing their software than we do. Those are all factors in deciding how many bugs can exist in the software when you go to market.

    It's difficult to simplify this discussion to things like greedy corporations, or poor development standards because it is much more complex than a one or two dimensional issue. There are many factors involved, but the biggest factor is market forces. Software developers are in business to make money and stay in business, the only way they can do that is to produce a product that customers will buy.