By Edward V. Berard (The Object Agency, Inc.)Recently, I have had a number of conversations with DoD contractors regarding software reuse. While they all refuse to have their names used, they were very honest with me about their opinions on the future of software reuse within the DoD. Some points you might find interesting are:
So what can we learn from the above? The first thing we must realize is that organizations which develop software are run by people whose primary interest is profit. "Ignoring the concepts of ethics and morality," one contractor told me, "it does not seem to be currently in the best interests of a contractor to develop the most cost effective solution for any government software contract."
We must also recognize that the commercial sector and the government software sector are two very different animals. In the commercial sector, a developer often pays all the costs for product development, hoping to more than recoup these costs based on sales of the product. With this type of scenario, software reuse makes a great deal of sense, i.e., the lower the development costs, the lower the risks and the greater the potential profit. On the government side, the software developer has little risk. The software developer is being paid to develop a product, not to sell it. The greater the development costs, the more money the contractor makes. If the product fails, or is never completed, the only one who loses is the government. (To add insult to injury, many contractors take the technology they have developed under government contract and turn it into viable commercial products.)
"In order for software reusability to take hold in government contracting organizations," another contractor told me, "it must be made meaningful to the highest levels of contractor management." If they are aware of it, software reusability is often only a phrase to the upper levels of contractor management. Since it is the highest levels of management who can most effectively make software reusability a reality, the government must seek ways to make software reusability "real" (and profitable) to these people.