Monday, June 8, 2015

Choose Wisely What You Build

" is hard."

- Knuth, Donald (2002). ref
13 years later and software is still hard. It's hard for a number of reasons including people, communications, and people communicating. In any case, it's also costly. Because of the costs (initial and ongoing) any feature and any new product should be considered carefully against those costs.

Adding up the costs:

People are likely going to cost more than equipment, licensing, and incidental costs. Good people are hard to find and expensive to keep. People are needed in order to build and maintain software. Software is soft, so it will change. People are needed to change software. Software is hard so it will be hard to build and maintain the software. It will be hard so it will be expensive. If it is not expensive to build, it will be poor quality and it will either be hard to maintain or it will not be valuable.

Measuring value:

Software is valuable when it either produces income or reduces costs. Predicting cost savings might be the easiest thing to do, still hard, but not as hard as predicting the cost of building it or the increase in income. There are too many uncontrollable values in predicting income producing software (market conditions, competition, advertising success, etc). Therefore it is more difficult to measure cost benefit.

Cost benefit of cost saving software will depend on usability and quality in addition to initial and cost of ownership. How can one measure the success criteria in terms of usability and quality? If there is some predefined criteria of gained efficiency that can be quantified, taken against the loss of some personal experience of the users and the cost of building and maintaining we can arrive at some ROI. I would propose that the loss of something by the end users is not easily understood or quantifiable. Whether the loss of personal experience, the human touch, or responding to change it could have an adverse impact.

What we can do:

Analysts considering a new feature or product should consider all of the costs as well as have a thorough understanding of the benefits before beginning a project. However, much of the factors are not easily quantifiable and will remain fuzzy. There must be ranges given where this is so and certain usability thresholds must be achieved before considering a project a success.

A template can be used with certain values in cost and value categories and assign estimated ranges in order to perform valuation. Properties such as analysis cost, construction cost, maintenance cost, end user loss costs, and incidental costs can be weighed against properties such as productivity gains, increased income, and loss reduction. When considering a product, each feature may have its own values so that they may be added incrementally. Break the work down into smaller pieces to reduce risk. Start with the features that are more valuable or less fuzzy, and stop when appropriate.

No comments:

Post a Comment