Thursday, June 23, 2011

Technology decision matrix (Using Ubuntu, Redhat & Suse as examples)

Technology decisions are difficult and it often seems that architects and developers resort to throwing darts to determin which solution they should use for many problems. A tool I like to use to help figure out the best solution is a simplified decision matrix. When used fairly, this simple tool enables us to quickly and visually determine which solution is best given our success measures.

As an example, lets pretend we're going to pick a server platform. In this, effort, we have some specific things we care about:
  • security updates - Does the solution have automatic and timely notification of security issues and an automated way to patch the server.
  • modern versions of applications supported - as a criteria, which version of ngnix does the package support
In the interest of simplicity, we're going to assume that other essential factors such as cost, compatibility with specific software and other issues have already been applied.

We then take this information, select a number of candidate solutions and put them into a table as column headers:


Then we take our criteria and add them as rows

Security Updates   
modern applications   

Next, we do the hard work of scoring each solution according to our criteria.

Security Updates331
modern applications (ngnix version) (custom install) 0(8.54) 2 (.8.54 AND 1.0.4) 3

As we can see, applying different score makes evaluating the "best" solution easy to comprehend. The risk is that we really should establish scoring criteria ahead of time or we'll end up fooling ourselves by scoring things according to a bias we may have toward a particular solution. Obviously this is an oversimplified set of criteria, but it should easy to see how to extend this to more complicated scenarios (just add more rows and let excel be our friend).

I'd be curious to hear other tools and techniques to do this and would welcome some comments with better/different solutions.

No comments: