My good friend John Petersen told me that the cost benefit analysis of choosing a particular piece of software or toolset has parallels to the choices available to a consumer when choosing a razor. He broke the list of razors down into distinct classifications: electric razor, disposable razor, and straight razor.
To perform a cost/benefit analysis of a particular tool (in this example, razors), establish criteria best suited to make your judgment. Regardless of your criteria, the tool you choose is based on the value proposition. For this particular exercise, the criteria we used to perform this analysis are:
- Expertise Required: The knowledge required to use a tool effectively
- Short Term Cost: The immediate cost of adopting a tool
- Long Term Cost: The long-term cost of adopting a tool
- Capabilities: The functionality-to-cost ratio
In any business decision, you have to weigh long term costs/benefits versus the short-term cost/benefits. The same is true for software development tools. And as we all know all too well, those decisions are more borne of business concerns than technology concerns.
To get a better idea how these factors are used, let's take a look at straight razors:
A straight razor has the highest level of capability (best quality shave), a middle level of short term cost (one time purchase of straight razor) the lowest long term cost (as long as you keep it properly sharpened, it will keep working) and it has the highest learning curve (if you are not properly trained, you will cut yourself).
Cost-wise, an electric razor isn't the least expensive. There are very expensive, moderately expensive and cheap electric razors. Regardless of which level, if you pick an electric razor, it will not be your cheapest alternative, especially when compared to a disposable razor. And while this isn't the least expensive razor, it's the worst when it comes to quality, assuming the standard is a clean shave. No matter your skill, the quality rendered from an electric razor is fixed. In spite of the low quality, if you are in a hurry and are mobile, an electric razor may be the most feasible option for you.
- Expertise Required: Low
- Short Term Cost: Medium to High
- Long Term Cost: Low
- Capabilities: Low
The disposable razor is definitely the cheapest initial cost. While the initial cost is low (free or nearly free) the long term cost is the real kicker. You can get quite nice shaves with these razors and the learning curve is not too bad. Typically these are the types of razors used by people new to the shaving experience. For the cost, you'd think that the quality would be commensurate with that cost. Turns out, relative to the safety razor, that's not true. Nevertheless, just like the electric razor, when you're traveling, a disposable may be the most feasible choice, given the TSA constraints.
- Expertise Required: Low
- Short Term Cost: Low
- Long Term Cost: High
- Capabilities: Middle
When it comes to getting a closest possible shave, there's no substitute for a straight-razor shave. Only the most skilled artisan uses a straight razor to give a shave. You can use one yourself, but it takes a great deal of skill to wield that tool. It's bare metal, with nothing between you and the sharp edge. The question is whether the time investment to learn this tool is cost beneficial when squared with the incremental quality improvement. There is no question that the better your skill, the better your shave. Why? Because the bare metal is the non-abstraction. On the opposite end of the spectrum, the electric razor is the highest level of abstraction and regardless of your skill, the quality for that choice is fixed.
To cement this analogy as applied to software selection, let's do a cost/benefit analysis of two types of toolsets for adding JavaScript to websites.
- Expertise Required: High
- Short Term Cost: Medium
- Long Term Cost: Zero
- Capabilities: High
In 2014, it seems that jQuery is the hammer for every JavaScript problem on the planet. The first step in creating Web applications is to add jQuery to your main page. Boom! Your website is now fueled by JavaScript.
Here's the cost/benefit analysis for jQuery:
- Expertise Required: Low. It's very easy to add interactivity to your applications.
- Short Term Cost: Low. The benefits provided are immediate.
- Long Term Cost: Low to High. This tool has a range of costs. If you're on an internal intranet, the cost of downloading this rather large library is negligible. However, if you're building a website that will be hit millions of time a day, your costs can be exorbitant.
- Capabilities: Low to High. The capabilities of jQuery are also have a range. The ecosystem surrounding jQuery is quite extensive. There are lots of books, tools, plugins, training etc. It can also be a low capability tool in that some developers use the tool in ways that don't take advantage of the tool's real capabilities.
Over the last year, a new trend has appeared. Many developers eschew using large libraries like jQuery and have started hand rolling their own JavaScript code. This has its own cost/benefits.
- Expertise Required: High. You need to have a good understanding of how to write JavaScript by hand and what the syntax is.
- Short Term Cost: Medium. You have to write everything by hand.
- Long Term Cost: Low to High. You have to write everything yourself. It will be highly optimized and have low download costs.
- Capabilities: High. You can make JavaScript do whatever you want.
Now you can take a look at the proper tool or tools for the job. Take a close look at that statement. It's not a question of using one tool OR another, but a question of choosing the proper mix of tools.
It's your responsibility as a developer to take the time to carefully analyze your tool decisions based on the skillset of your developers, the long- and short-term costs, and the capabilities that the tool provides. Also, consider the level of abstraction and the costs necessary to learn how to use a tool. Weigh the costs to the potential quality for the circumstance. Understand that what appears to be the cheapest alternative could be the most costly in the long run. Consider what you may be giving up in the long run for the abstraction that lessens the learning curve. It's always a good idea to cultivate options. Having multiple tools in your toolbox is the kind of option you want to keep.
Thanks to John Petersen who co-wrote this editorial with me. It was a pleasure working with you!