Live data from Hacker News

You shouldn’t use a spreadsheet for important work

lemire.me

41–50 of 200 posts

Re: You shouldn’t use a spreadsheet for important work

#41

Wrong end of the correlation/causation pattern. Human beings make mistakes. A lot of humans use Excel. Hence a lot of errors in Excel. Would all those humans program their logic in Python - we'd have a lot of wrong calculations in Python code and an article stating to not use Python.

It's not true that all tools are exactly the same.

I suppose a good example of this would be all the affordances built into a modern highway. Softer turns, curves prior to intersections (they increase visibility and encourage the stopping traffic to slow down), embankments, etc.

Re: You shouldn’t use a spreadsheet for important work

#42
post #28

Earlier quoted context omitted.

Little things like how terrible and confusing their formula language is. Anything beyond simple arithmetic requires two Googles per cell. Now, replacing it with Python isn't better - any language that uses double-equals-signs is not fit for a layman-programming-platform.

Your confidence in the layman is inspiring. Why is == more difficult to understand than parentheses for function calls, for example?

Because highschool math acquainted them with the notion that a function call looks like

  afunctioncall(argument)
thanks to sin(x) and cos(x) and log(x). Some people will even have vague notions of functions with multiple variable inputs like f(x,y).

Basically, highschool math introduced a lot of syntax that users will be familiar with - we're universally okay with the typical +-/* operators, for example, and ^ isn't a stretch, neither is f(). AND/OR/NOT are introductory Boolean algebra and while they're not universally taught in high-school, I find many scientists are acquainted with them (although languages using || && ! syntax are a good way to lose them). Excel's lack of boolean operators (booleans operators are functions in excel) is disappointing.

I've always found that SQL gives a good minimal arithmetic/boolean-logic toolkit for laymen. It's a good model to follow.

Re: You shouldn’t use a spreadsheet for important work

#43
I'll buy that - the fact that the pretty essential vlookup function defaults to guessing when it can't find a value, rather than defaulting to "Couldn't find the value you were looking to" - has been the source of endless errors.

Explicit really reduces the number of errors you run into - there's a lot of implicit going on in a spreadsheet.

Re: You shouldn’t use a spreadsheet for important work

#44
The beauty of Excel is its ability to do many things 'well enough' in a way that is accessible to a lot of people.

My dad put together his architectural plans for a new house in Excel because it is a tool with which he felt comfortable. Some people do calendars in Excel while others try and recreate a full General Ledger system. Because it works well enough, people don't see the need to invest the time in learning a new application and instead invest their time in pushing the limits of the tool.

As someone who builds financial models and who audits those built by others (and is a competent programmer by night), I think that the key source of risk in Excel models is that the tool has no knowledge of intentions. What I mean by this is that if I'm building a cash flow model or if I'm doing a pixel drawing, Excel doesn't care; as users, we are forced to create our own structure and build in our own checks and balances. If I make a balance sheet in Excel that doesn't balance, Clippy won't show up and let me know that things are broken.

I've often thought that it would be really amazing if a semantic layer could be built that uses Excel as the calculation backend. This sort of tool could understand the sorts of concepts of financial statements, projections, time-series and other concepts that often show up in financial models. It would have a built-in understanding of the domain-specific models that would let it leverage that understanding to reduce risk in the building of financial models. If I told it that I wanted to add a revenue stream that is tied to the output of production, the tool would connect the dots between the production schedule, any inflation and/or foreign exchange assumptions and would feed changes in working capital according to the associated collection terms, etc...

Before I get too carried away, the point is that this type of semantic layer would be much better at preventing and detecting anomalies and potential errors in the development of a high-risk financial model. Does anyone have experience with any such tools?

Re: You shouldn’t use a spreadsheet for important work

#45

Data in arrays, exports to CSV, facile API... what's not to love?

I remember on job where I wrote a lot of tools to load a database by reading an excel spreadsheet from perl[1]. It was amazingly fun. 1) perl does have some good libraries to read Excel files without exporting

So does Python.

Import and export. I get a lot of love from exporting to Excel from people who use what I make. I assume this feature makes it seem that they are doing a lot of work when they can quickly produce large spreadsheets for the boss. The boss? He usually doesn't know nor care. He knows he approved a check for some computer stuff some months ago.....

Re: You shouldn’t use a spreadsheet for important work

#46
post #11

Honestly, I don't have a problem with the fact that Excel is used in so many cases - programming for non-programmers is important. My problem is that Excel is terrible . Its formula system is painful and the formulas are invisible. It's not that a light user DB/spreadsheet program is a bad idea, it's that Excel made a lot of terrible decisions 20 years ago and now they're married to them.

>"My problem is that Excel is terrible"

Do you know a better alternative? I have used LibreOffice and Numbers and I will take Excel any day. Saying that it is terrible is a very strong statement for a piece of software that arguably is what keep a lot of people in the Windows world.

Re: You shouldn’t use a spreadsheet for important work

#47
post #21

Yet spreadsheets do not allow testing. This is an absurd claim. Any good spreadsheet will contain multiple self-tests, either in live formulas or via macros.

"good spreadsheet"

I think the biggest problem is the small crossection of these two terms.

Re: You shouldn’t use a spreadsheet for important work

#48
post #32

JP Morgan's $6.2 billion "London Whale" trading loss: An unnamed overworked staffer in London copied and pasted the wrong figures into an Excel spreadsheet, throwing the firm's risk models out of whack. http://finance.fortune.cnn.com/2013/01/18/jpmorgan-london-wh... Spreadsheet errors are reaching epidemic proportions globally. What we need is a transnational organization to contain the threat with research, best pra…

I used to work for Deutsche Bank. All financially modeling ran through Excel, though admittedly a massive C++ library that is a big Excel macro plugin. These sheets get massive and there are a few clusters of blades that do nothing but run Excel macros day and night.

But why is this madness? It works for them. The iBanking world is the madness. You can put in place effective change controls and auditing with any system. However, if people just want it done and don't care how, regardless of whether these calculations were in Python, Mathematica or Fortran, garbage in will still be garbage out. So, let's not wantonly scapegoat Excel for a process problem here.

Re: You shouldn’t use a spreadsheet for important work

#49
(Since the blog's website is not responding, I had to read the article from google's cache[1])

The author has well-intentioned advice about avoiding MS Excel but it's misguided. The criticism fails to accommodate the reason why MS Excel was used. MS Excel is the lingua franca of non-programmers. Thomas Piketty is a trained economist, not a programmer. It's not realistic to expect Mr. Piketty to set aside months (years) of his time to master C++/Python/Scala/Fortran/etc to avoid using Excel. It's more realistic for an economist to use MS Excel to back his thesis than for a Python programmer to write a bestselling book about economics.

If we then tweak the advice to be, "if Piketty is not a programmer, he should have hired a compsci graduate student as a programmer", well... you've only shifted the (human source of) errors somewhere else. Plenty of examples where software not written in Excel had fatal errors: Therac-25[2], Mars Climate Orbiter[3]

Lastly, some of Piketty's errors were transcription errors. In other words, GIGO (Garbage In Garbage Out). Therefore, using Python while there were GIGO issues isn't going to solve the data problem.

[1]http://webcache.googleusercontent.com/search?q=cache:1r99Ioj...

[2]http://en.wikipedia.org/wiki/Therac-25

[3]http://en.wikipedia.org/wiki/Mars_Climate_Orbiter#Cause_of_f...

Re: You shouldn’t use a spreadsheet for important work

#50

There have been a number of efforts to build a better spreadsheet. One that I was quite familiar with (I bought a license!) was Resolver One [1] that was trying to build a spreadsheet with support for Python at the cell-level. Unfortunately it didn't take off, and the team moved onto Python Anywhere [2]. Excel clearly has strong network effects! I loved this article [3] from 2008, that argues that Excel and VBA were…

I stumbled across Pyspread the other day, a more recent attempt at a spreadsheet using Python at the cell-level. See http://manns.github.io/pyspread/.

  Pyspread expects Python expressions in its grid cells, which makes a spreadsheet
  specific language obsolete. Each cell returns a Python object that can be accessed
  from other cells. These objects can represent anything including lists or matrices.
I haven't used it yet, most of my personal spreadsheets are in Google Sheets and I'm not too keen to pull them out of Google Drive.
Post reply on HN