Friday, 9 January 2009

What software do you use?

At some point in any tender for work you will be asked "So what software will it be written in?" or some derivative of this. The answer that they want to hear is something like "Oh, C++ of course", or "Excel everytime!". The answer which should be given is "whatever is most appropriate for the task".

We use three criteria for picking software for jobs:
(1) Does the format the software save in an Open Standard?
(2) Does the language handle the data concepts in an easy to read manner?
(3) Will the software be able to communicate with existing packages used by the business?

The first is important for data legacy. In 10 years time will you still be able to read and write from the files? This is one of the reasons why XML formats are so important as they can be reconstituted by any XML parser into sensible objects.

The second is important as it helps maintenance of the code. In 2 years time will a new programmer beable to decipher the code?

The third is important as any business has legacy/existing software packages with data which they want to analyse if we cannot extract that information we might as well not have it. So this is critical.

This is why is many of our analysis tasks we use the language R. Yesterday there was a great article about R in the NY Times which highlights the success of a Open Source statistics package. R takes its inspiration from the commercial product S-Plus which is now owned by Tibco. R is picking up users from all kinds of fields because it offers such a wide range of packages but also because you can easily incorporate the code into many other applications.

Note that nowhere in this article do we pick software because
(1) we know how to use it best,
(2) it is my favourite software,
(3) it is a common to use this language now.

Fashion and personal preference are the wrong reasons to pick new software, future business use should make up the bulk of the decision making process.

In your company you have probably commissioned development work? Pick a project at random and ask yourself 3 things:

(1) Can I still run this application?
(2) What other program could I analyse the data from this application with?
(3) In 5 years will I still be able to access this software?

No comments: