Return On Software
Return on Software is about making choices: software technical choices in a business context. It helps software professionals appreciate the business consequences of the decisions they make. This primer will prove a valuable reference for making the important decisions the typical software organization faces both today and down the road.
You will learn how to:
- Estimate how much each proposed software technical decision will cost, and how much it will return.
- Weigh the time frames for a software decision's costs and benefits against each other to reveal when there might be a more important factor than schedule.
- Attach a value to quality and produce a rational answer to the question, "How much testing is enough?"
- Account for risk and uncertainty in software technical decisions, such as when considering new technology.
- Communicate your decisions in a way that speaks to the all-important bottom line.
Review By: Cathy Bell
04/08/2008Steve Tockey's book "Return on Software" should be on every IT manager's bookshelf. This book is well written and easy to read despite the fact that it's an economics tutorial for software engineers; and it will bring to light why every member of a project team should be concerned with the cost of doing business. In the preface, he tells us that this book is about "making choices: making software choices in a business context." He follows up with the basic theories, such as how cash flow affects the decision to move ahead with a project and how to select the best technical solution for a project by adding business needs into the equation.
With practical examples, we are guided on how to incorporate such things as future worth, payback period, the economic life of an asset, and inflation into our proposals for software projects. After covering for profit companies, he notes the differences in government and not-for-profit companies explaining benefit-cost analysis and cost-effective analysis for these entities. Part Six, in which estimation, risk, and uncertainty are covered, should be mandatory reading for all involved in software projects. The section opens with an example of how all estimates contain uncertainty, and as we all know, it is uncertainty that introduces risk into our projects. After explaining the various ways to reduce uncertainty, he tackles how to successfully estimate using a statistical approach. Chapter twenty-seven begins with an overview of the business decision making process that has been stressed throughout the preceding chapters. Then he reiterates the primary message, that our decisions in the past have been based on a technology perspective, but now we should make those decisions realizing we have an impact on the viability of the business. The appendices contain more useful information including practical advice on building a work breakdown structure, an introduction to probability and statistics, as well as an all important glossary that covers the many economic terms used throughout the book.
This book would lend itself well to a college-level text book. The self study questions at the end of the chapters would lend well to in-depth class discussions of the material covered. The author includes a page on his company site dedicated to the book which includes tools that automate some of the calculations, and a page to correct known errors in the text. The selling point to me was that this book took a practical approach to combing business and software because in today’s business world the two are inseparable.
Review By: Chris A. Grady
04/08/2008Steve Tockey's "Return On Software" is a well-written and organized text that details the costs of developing a software package. The book provides easy-to-follow examples and formulas. From deciding which projects to initiate to what technology to use, Tockey presents the reader with a number of possible criteria that can and will play a part in any new software decision.
Part one of "Introduction and Foundations" provides the basics of running any type of business in regards to the software creation process, from proposals to comparisons regardless of the business type (i.e. for profit, non-profit, and government). Part two and three focus on decision making in a for profit company and explores the numerous possibilities a company could take in regards to the costs of developing software. Tockey does not intentionally lean towards one or more of these ideas; he presents them so the reader can decide which could be best practice based on the reader's needs.
Tockey's book also delves into the realm of government and non-profit organizations and some of the challenges these institutions deal with. He stresses that these organizations are based in the benefit-cost and cost-effectiveness analysis.
The final section contains analyses of the decisions made throughout the book. Tockey's clear discussions of break even and optimization analysis provide concrete examples that the reader can follow. He also discusses estimation, risks, and possible uncertainties that may develop over the course of making decisions.
The final chapter provides the user with a quick review of the book. The Appendix and Glossary were more than adequate for the reader to obtain further clarification and examples for the book's ideas.
I like this book for its ideas and the accessible manner in which they are presented. Readers can pull what they think is the best approach. The use of formulas and showing how they work are a bonus. The book is organized in a manner that allows the reader to jump from subject to subject based on his needs. I specifically liked the conclusions of each chapter: quick summaries of the key points covered as well as questions that challenge the reader to apply the knowledge.
What I did not like about the book is that it felt too much like a college textbook. As far as usability for the average Quality Assurance/software tester, this book does not tend to hold much relevance. For project managers up to the CEO of the organization, this text should be required reading as the ideas are presented clearly with enough explanation to yield a decision for the organization. As a software tester, I have a better feel for what it takes to plan wisely when decisions are being made.