imaginary family values presents

yesh omrim

a blog that reclines to the left


A tough cell

20 June 2003

One of the dirty secrets of the computer-science world is that spreadsheet programs, from Visicalc to Excel, are actually programming languages, even though the program code, input, and output are intermingled and smeared out over two dimensions. And where you have programs, you have bugs:

There is a substantial body of research showing that spreadsheets often contain bugs. For example, field audits of real-world spreadsheets have found that 20–40% of these contain bugs, and that between 1% and 4% of all cells contain bugs. Also, in an early empirical study of experienced spreadsheet users, 44% of the spreadsheets created by those users were found to contain user-generated bugs. Results of several later studies have been similar: between 10% and 90% of the spreadsheets examined have been found to contain bugs. Compounding this problem, creators of spreadsheets seem to express unwarranted confidence in the reliability of their programs. [Citations omitted —sethg]
And where you have bugs, you have expensive bugs:

A simple spreadsheet error cost a firm a whopping US$24m.

The mistake led to TransAlta, a big Canadian power generator, buying more US power transmission hedging contracts in May at higher prices than it should have.

In a conference call, chief executive Steve Snyder said the snafu was “literally a cut-and-paste error in an Excel spreadsheet that we did not detect when we did our final sorting and ranking bids prior to submission,” Reuters reports.

If Microsoft, Lotus, and their predecessors had sold spreadsheets as revolutionary new programming languages, they wouldn’t have had so many customers. Unfortunately, if spreadsheet users don’t see themselves as programmers, then they have no reason to learn from how programmers in traditional languages protect against bugs, and the companies that make spreadsheets have little incentive to add features that would make spreadsheet-debugging easier.

(via the lightweight-languages list)