Today I had the dubious pleasure of processing data in a spreadsheet. I stopped doing this in 2002 and started using programs to process data but this data was given to me by a colleague (who is one of the sharpest people I have the pleasure of working with) and was already half processed. I spent half the day wondering if it would be quicker to go back to square one and write a script. However I carried on with the spreadsheet which led me to come to the conclusion that spreadsheets are evil.
Despite this most professional engineers use them as often as they would use a bit of paper, but I’ll get back to why they are evil:
- There is no logical flow to the calculations – it is like following a program with huge numbers of goto statements – like trying to follow directions on a tube map of London with a teleport function
- The variable names aren’t meaningful A23 is pressure, where is B23 is velocity
- The data and the manipulation logic are intimately linked. If you want to repeat the operation on another set of data you need to copy and paste and if you have more data points then you have to make sure all the cell limits match up.
All this means that spreadsheets are extremely error prone. For example the one I used today put together by one of the sharpest tools in the box had one serious systematic error in it and one quite minor one. Errors arise in programming environments too but then you can change the code and run it on the data again – fixing it in the spreadsheet was time consuming as I had to go through each set of data and correct the analysis error in each sheet.
Despite this they are extremely popular amongst my fellow engineers because they allow you to immediately adjust, alter and plot data. Although better alternatives exist that have much more sophisticated possibilities such as: GNU Octave or SciPy I guess almost any computer has a spreadsheet on it. When I worked for a prominent North of Scotland power generating company back in the day analysis was largely done in spreadsheets as installing software had a large overhead associated with it. There was some massive spreadsheet that worked out the efficiency of the power station but no-one knew how it worked and I spent a few weeks implementing a pipe-flow analysis program in Lotus 1-2-3 – all of which would have been much easier with an actual programming language.
However I have learned the error of my ways – spreadsheets are evil – avoid them!