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:

categoryRedhatUbuntuSuse

Then we take our criteria and add them as rows

categoryRedhatUbuntuSuse
Security Updates   
modern applications   
total   

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


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

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.

Comments

Popular posts from this blog

Push versus pull deployment models

the myth of asynchronous JDBC

MACH TEN Addendum: for companies wanting to use MACH platforms