In-Depth

Book Excerpt: The Business Case for Development

The following is excerpted from Chapter 3 of Making the Software Business Case by Donald J. Reifer. Used with the permission of the author and Addison-Wesley.

This article provides the principles, rules, and analysis tools to put a business case process into action in your organization. These tools are aimed at helping you quantify the costs/benefits of alternatives and develop recommendations that make sense for your organization throughout the software life cycle. In essence, the process forms the underlying framework for developing business cases. Nine principles or fundamental truths are added to the process to provide a solid foundation for quantifying costs/benefits. To help you quantify the pluses and minuses of the alternatives under consideration, I discuss a wide variety of analytical techniques. The rules and tools discussed are sprinkled throughout the software development process along with guidance on how to apply them in practice to reenforce the principles discussed as you develop your business cases, do tradeoffs, and perform financial analysis.

Business case principles
When developing business cases, several principles or fundamental truths can be applied. Unlike software development, these principles are based on decision theory rather than on software engineering dogma. To illustrate the use of the following nine principles, let's assume that you are thinking about running seminars to train your people in Java and component-based software engineering concepts.

1. Decisions are made relative to alternatives. The options that are available to you include: 1) do nothing and let your people learn Java at their own pace via the manuals, 2) implement an on-the-job training program, or 3) bring in training seminars taught hands-on by seasoned professionals in a just-in-time manner. If funds were not available for option 3, you would disregard this option as unrealistic. The choice would narrow down to the first two options. If on-the-job training weren't feasible because you don't have the staff to put it together, your remaining option would be to let your people learn at their own pace.

2. If possible, money should be used as a common denominator. When making decisions, the prospective consequences of each of the alternatives needs to be expressed in common monetary units. The current value or worth of these funds is determined over time using today's value as the basis. To justify the investment, you need to determine whether training seminars reduce the time needed to become proficient in the use of the language. If they do, then you must determine how much time and effort can be saved via this option.

3. Sunk costs are irrelevant. It doesn't matter that you already ran a seminar in Java a year ago. That's a sunk cost and is irrelevant to this decision because your staff has changed and most of those assigned to this project are new and inexperienced. In this case, all events that took place prior to the decision being made have no effect on the resulting decision.

4. Investment decisions should recognize the time value of money. Money has value that increases over time due to inflation. Today's money is worth less tomorrow. Because you can put the money in a bank with a yield of 5% to 6%, this interest rate represents the minimum attractive rate of return. Any option you consider should yield more. If it doesn't, why pursue it? In addition, if you did nothing with the money, you would incur an opportunity cost of 6% -- the interest you could earn, or the cost of money.

5. Separable decisions should be considered separately. You might be called on to recommend a training firm as part of the decision process. The criteria you would use to make this decision would be different from the criteria used to select the training option to pursue. It would be better to consider the two issues separately because it is possible that you would obscure the results if you tried to address them simultaneously.

6. Decisions should consider both quantitative and qualitative factors. Whenever possible, differences in alternatives should be viewed quantitatively. But it may not be possible to quantify all the costs/benefits associated with an option in this manner. For example, bringing in training might improve image and morale. These qualitative factors would then be used to swing the decision from one option to another if the costs/benefits were close.

7. The risks associated with the decision should be quantified if possible. All decisions are based on forecasts of the future. There is uncertainty or risk associated with predictions. This risk needs to be scoped and quantified if possible. For example, what is your plan should the training you desire not be available when needed? Do you have a fallback position? If so, what is the added cost of this contingency plan? Have you assessed the consequences of this risk and included a reserve in your budget to handle it?

8. The timing associated with making decisions is critical. You need to make decisions in sync with your budgetary cycle. If you don't, you might have to wait until the cycle repeats itself before you can put in your request for funding approval. Time your decisions so that you can be ready to strike either when money is available or when budgets for training are being formulated and approved.

9. Decision processes should be periodically assessed and continually improved. Like any set of procedures, the procedures you use for assessing the business aspects of decisions can be improved. Look for ways to streamline your processes. Look for models and tools that you can use to improve the quality of your decisions and the quantity of options considered. Once decided, realize that you need to manage the actions needed to implement your suggestions.

As the principles illustrate, software engineers look to the future to determine the impact of options under consideration. They are more interested in cost at completion than cost to date. That's because they can influence the future with their decisions, not the past. I once asked a business school friend of mine what the difference is between an accountant and an engineer. He said that accountants look to the past to analyze expenditures; engineers typically look to the future to determine what it will take to get a job done.

To put these principles to work in a business environment, software engineers must understand the terminology that business professionals with whom they interface commonly use, and which is not part of their technical vocabulary. This terminology includes accounting, economics, investment, and tax-related terms. Software engineers must understand how to take the cost of money into account via discounting. They must also understand how to assess the tax implications of investment decisions. If they don't, they will have a difficult time communicating with the people involved in approving their requests for money.

To read more about Making the Software Business Case, visit http://www.awprofessional.com/catalog/product.asp?product_id={B46F7051-42D0-4A59-A877-399B4E51DEF5}&selectDescTypeId=SAMPLE_CHAPTERS&st=5130B593-BAEC-49C6-B6A8-0035DFD1EA3B&session_id={13E7A759-A030-4DC6-9615-3F2EEF90C334 }

About the Author

Donald J. Reifer is president of Reifer Consultants Inc., a firm that specializes in helping clients implement changes that are financially justified. His numerous other publications include several popular books on software management.