top | item 28049255

Use Spreadsheets Everywhere

169 points| jetheredge | 4 years ago |simplethread.com | reply

120 comments

order
[+] laGrenouille|4 years ago|reply
I agree with a lot of the points raised here. I think many of the problems with spreadsheets are due to the software rather than the users. As mentioned in the article, its hard to slowly iterate from a small manageable spreadsheet to an larger software solution.

For example, Excel would be a lot more usable and maintainable for me if there was a way to make a special "data sheet" in which data types are forced to be consistent within columns and there was a concept of column names. Still GUI-based and user-friendly. That would encourage a logical seperation between data entry, data output, and computations. In my experience, the main challenge of helping users with spreadsheets is when they create spaghetti code that mixes data and computation together.

[+] LegitGandalf|4 years ago|reply
Tables are probably the most overlooked feature of Excel.

Why use tables?

* Each column is uniquely named - no more wondering if you are referencing the right cell, no more thinking about "to $ or not to $"

* The table's rows and columns are reliably discovered by pivot tables - no more wondering if the entire dataset is referenced by the pivot

* New columns that are formulas are automatically applied to every row

* Tables have names, so it is easy to understand which table a pivot is referencing

The true, reliable and sane power of excel lies in Tables + Pivots + Charts. If you drive most of the problem solving into those paradigms you will keep hair!

[+] hnlmorg|4 years ago|reply
> For example, Excel would be a lot more usable and maintainable for me if there was a way to make a special "data sheet" in which data types are forced to be consistent within columns and there was a concept of column names.

You can already do both of those in Excel:

- data types: https://support.microsoft.com/en-gb/office/apply-data-valida... (though you'd also need to lock the spreadsheet as otherwise someone could remove the validation on the cells)

- column naming: https://smallbusiness.chron.com/give-name-columns-excel-7344... (you can name individual cells and ranges too. Which means you can actually start to write formulas that look more like C with name variables, very loosely speaking of course)

There's a surprising amount of hidden functionally in Excel. Personally I think that while ribbon bar might have made core features a lot easier for some, it's made a lot of the more advanced tools harder to discover.

[+] Ajedi32|4 years ago|reply
I've had similar thoughts in the past. Databases are very machine-friendly, but too static and inflexible to match the usability of spreadsheets. Spreadsheets are extremely user-friendly, but too inconsistent and unconstrained to be efficient for programmatic access.

It seems like there should be a way to combine the two. Maybe a minimal set of optional constraints (like a separation between data and code) like you proposed would be a good starting point. Make tables a first-class citizen backed by an embedded SQLite database (or something similar); let users write real SQL to query tables in formulas, maybe update the file format a bit to make it easier for programs to parse and access concurrently. Could be an interesting project...

[+] AtlasBarfed|4 years ago|reply
This article is dead on from an analysis/criticism/insight: devs are called in when it's a sinking ship and don't see all the cargo the ship has hauled.

Why hasn't microsoft or someone taken the basic spreadsheet model to a shared-database scalable one? The UI is basically set at this point.

A naive schema (filename, tab, x, y, value) is what an excel sheet is. It's not like we are dealing with "impedence mismatch" and even shared editing can be reasonably handled with database transactions (or RAFT if you want to get really big/distributed)

I think the lack of this is a sign of Microsoft Office completely owning the space and not wanting to innovate at all. And the huge amount of effort it would take to replicate excel-level operations in a database application server is nontrivial.

But man, you could have an API for doing excel operations against a database schema, and export to excel...

And as you said, you could do lots of schema based options in databases that aren't natural to excel.

[+] asdff|4 years ago|reply
There is so much excel voodoo involved to do things with that software. I still believe that the learning curve of excel is no harder than the learning curve of doing the same exact thing in R or python, plus you'd end up having the data and the formulas in different places which brings loads of benefits (for instance, git). People are just familiar with excel because thats what they used to make a chart in science class in 7th grade since 1995, but they really could have learned to make the same chart in 7th grade with a language like python too, if it were only taught python instead of excel in school. And then we'd have a generation of workers fluent in a language like python rather than fluent in the very limited use case by comparison Excelese, and we would no doubt reap the benefits in our GDP. Its like we are limiting the knowledge of fire among our tribe when we don't really have to, it's perfectly learnable.
[+] gbrown|4 years ago|reply
Be careful what you wish for - I think you might have just reinvented MS Access.
[+] sparsely|4 years ago|reply
I think Airtable is starting to get us there, but it's a long way to go.

Something that combined Airtable, excel, and maybe a more userfriendly (and more restricted) version of darklang for defining formulae could be really slick.

[+] redler|4 years ago|reply
I'm not sure about type enforcement, but there is the concept of "named ranges" you can apply to columns. So instead of C1:C99 you can refer to PRICES.
[+] d--b|4 years ago|reply
One aspect that is rarely talked about is that Excel is really good for developers who know about data/stats/business/databases but don't know about frontend app development.

Excel thrived in banks, not because traders used it, but because IT/Quant people used it. It's so much more straightforward to build a UI in Excel than with React. Just type things in cells, then wire them with simple VBA buttons. Of course there are things you can't do, but for the purposes of a bank, it's very rare that you find one.

So if I am a quant, I don't need to go to the frontend guy, trying to explain to him what a "vega" is and why I would want to multiply by notional/vol to change the units. This is a huuuuge time saver. And you can change your UI anytime. Just open the file, add a column, click save and it's done.

At some point, banks knew that fat-finger-mistakes could cost them fortunes, and the lack of auditing was terrible. But they had to force traders to switch off their sheets by threatening them with internal fines (we'll charge you $2m for running things with Excel). So traders complied, but then they got into years-long projects, to create shitty shitty web apps, that couldn't do half of what Excel had built-in. Every change would need to go through an approval process, and it's unclear whether these systems had less bugs than spreadsheet did.

The first thing they wanted when the project was done? "Give me a button to export to Excel".

For the shameless plug part, I am building a tool to try and bridge code and spreadsheet (https://www.jigdev.com). Lmk if you have comments/suggestions.

[+] capableweb|4 years ago|reply
Any plans on open sourcing? I'm tired of apps changing until my use cases are not covered anymore, so I'd like to future-proof my usage of tools, and open source/free software seems to be the only way to make that work in practice.
[+] France_is_bacon|4 years ago|reply
This article is BS. As others have noted, it is a straw man argument.

Everyone uses spreadsheets, including developers. I use them. I'm not going to spend 50 hours coding when I can create a spreadsheet in 5 minutes.

Of course, the issue is when things get complicated, as the author and others here have noted.

Creating a CRM from spreadsheets is pure madness, for example, when there are so many other options that exist, without having to custom program.

For me, whenever you have a one-to-many or many-to-many situation, that's where spreadsheets, to me, fall apart.

I personally have used spreadsheets to do my finances, but only because I was too lazy to scope out different bookkeeping systems. I'm fairly expert in accounting, too. I've used a LOT of different accounting systems, and installed and trained people on them. But there's no way that one can get up and running as fast as one can by using Quickbooks or other accounting systems, in terms of all the report features, etc.

Pre-defined apps are fairly unchangeable, but unless one has critical information that depends on a custom solution, it's better to shoehorn your business into a pre-existing app. I do admit that. Very few small and medium sized businesses require that, though, I've never seen one yet that can't use a prior existing solution. Though there might be, but only very, very small percentage, like, less than 1%. However, a large Fortune 1000 enterprise could have stuff they need custom programming, because of the scale. But I don't have any experience with enterprise organizations so I can't comment on that. Maybe SAP or whatever is good for them, I don't know.

[+] WJW|4 years ago|reply
Can't disagree. Spreadsheets are incredibly powerful tools and the barrier to entry is very low.

The only situation I can think of where you should discourage their use is in those situations where you know for sure in advance that the application is going to outgrow the spreadsheet very soon and/or immediately. If you are building a new microservice that will serve a million customers per day, don't make the mockup in a spreadsheet.

[+] capableweb|4 years ago|reply
> Can't disagree. Spreadsheets are incredibly powerful tools and the barrier to entry is very low.

Agree!

> know for sure in advance that the application is going to outgrow the spreadsheet very soon and/or immediately

Hard to agree, what does "outgrow" mean here? Spreadsheets can handle very big use cases, with lots of data and still be useful, if you take care when building it (similarly to programming)

> If you are building a new microservice that will serve a million customers per day, don't make the mockup in a spreadsheet.

Hard disagree. Mockups are for prototyping/experimentation, so it hardly matters how you do them, as long as you throw them away before starting the main implementation (this throwing away tends to be the hardest part).

Spreadsheets are amazing prototyping tools!

[+] linker3000|4 years ago|reply
If you have had to fill multiple, spreadsheet-based, customers' InfoSec questionnaire about your SaaS product, including the need for tailored, multi-paragraph answers (ie: you can't copy/paste from stock responses), you might disagree with the raw headline.
[+] redler|4 years ago|reply
And when you have an answer that exceeds the height of the tiny cell, you can't turn on "Wrap Text Automatically" so you can see the content -- because they've locked any changes to the sheet structure.
[+] kstrauser|4 years ago|reply
Are you me? I feel this in my bones.
[+] robertlagrant|4 years ago|reply
Hah I feel your pain, internet stranger. I feel it keenly.
[+] castillar76|4 years ago|reply
There's a real back-and-forth struggle for me with spreadsheets. I find people very frequently reach for them for things that they do really well: data slicing and dicing, ordering and sorting, formulae that cross-reference cells, and so forth. However, the contents of those spreadsheets are often (for me) not numeric, but text, and working with text that's longer than a few words in Excel is still a huge PITA, even after all these years, because Excel still thinks of the contents of cells as numbers first.

Consider the output of your average audit. You'll have tables of findings, each of which needs a due date, a risk rating, a description of the problem, a description of the solution, auditor notes, customer comments, responsible party assignments, and so forth. (Yes, those would eventually go well in a tool like Jira, but that's for later--this is coming out of an audit visit.)

From a data standpoint, putting those in a spreadsheet makes sense: you can now order the findings by date or risk rating, hide ones that don't apply, cross-reference findings between visits, and so forth. However, from a text perspective, it's awful: the descriptions might run to multiple paragraphs, comments and instructions need more complicated formatting than just "bold or italic", some fields should be constrained on content while others need to be free-form, and so forth. All of those things work much better in a Word table than in Excel cells, but putting the content in Word utterly removes the ability to data-manipulate. So you wind up either creating some Frankenstein hybrid solution or with crushing one perspective to satisfy the other.

If Microsoft wants a win for Excel, making it an order of magnitude easier to deal with free-form text in cells would be an enormous step forward.

[+] ianmcgowan|4 years ago|reply
This would be great - I find people reach for excel out of familiarity when they need to keep track of textual information like tasks, issues, risks etc. Semi-structured data with a lot of text and not a lot of numbers can quickly become unworkable in excel. If the whole OLE thing had worked out things might be easier - being able to mix the data-wrangling of excel with the content manipulation of word would be awesome.

A really simplified version of access that works from one underlying spreadsheet as a data source perhaps?

[+] jayd16|4 years ago|reply
We need a spreadsheet format that's more conducive to the professional programmer workflow.

Parsing them is actually very complex. You just have to hope your library can handle everything in excel. If you're a cli native I'm not really sure what you do.

Spreadsheets don't play very will with source control. If the underlying format was text and every cell and formula was on a new line it would work out ok. As it is now, merging them is very cumbersome....impossible for the laymen that might be the main user of the sheet.

By going with a speadsheet and not something like SQL, you lose a lot of rigor.

There's probably a few more needs but these are top of mind for me.

[+] s_dev|4 years ago|reply
More than that it's outright stupid.

Look at what the UK tried to do their contact tracing program through an excel file. They ran in to problems at 80,000 entries because excel has limits and the whole thing fell apart during the peak of a pandemic. Spreadsheets are not Databases so don't use them as such -- thus "spreadsheets everywhere" isn't a good principal.

https://www.bbc.com/news/technology-54423988

Author seems to acknowledge the limits of Spreadsheets but then says:

"So you’re saying we should use spreadsheets more?

Yes! The hardest part about building most software is figuring out the process."

!! I'm lost at this point !!

[+] asdff|4 years ago|reply
> We need a spreadsheet format that's more conducive to the professional programmer workflow.

CSV or TSV, pick your flavor.

[+] Vaslo|4 years ago|reply
People understate the power of spreadsheets. You are literally using a visible programming language. When I have to write a algorithm to read from a file or a spreadsheet, I can model it very easily on the spreadsheet to get all my i's, j's, and k's right, and I can watch it occur incrementally line by line in a spreadsheet. When I was buying my house, I was able to easily line by line show my wife where all the cash was going. No print statement, variables, or anything I'd need in Python or C++. I could do it in 5 mins and it was as good as anything those languages could have done.

All that said, I can see issues with errors that are hidden by spreadsheets but those can be handled with good spreadsheet design (i.e. NEVER EVER hard code anything into a cell) and they simply just need a way to do GIT type version control natively. We recently got the ability to have multiple people work in the same spreadsheet at a time if on MS Teams, but there's more work to do there.

[+] etskinner|4 years ago|reply
> (i.e. NEVER EVER hard code anything into a cell)

Define 'hard code'...

Is "=MONTH(A1)+2" no good when I'm trying to write a row of every other month?

Is it bad to say '=IF(A1="USA",TRUE,FALSE)' when I'm trying to see what customers belong to our USA office?

I have this problem with coding too. In my mind, it's okay to hard code things, since you can always debug and abstract them later. Excel's "Evaluate Formula" and "Trace Precedents" are both pretty handy tools.

[+] marto1|4 years ago|reply
I'm actually the other way around. While visualizing algorithms might be easily done in a spreadsheet, coming up with algorithms is very hard for me and gets me confused easily. Same goes for diagrams, when I lookup a protocol I quickly go for a well commented implementation and RFC only for variables and descriptions.

Maybe it's just me.

[+] zwieback|4 years ago|reply
Article raises some valid points but how do you catch the point where the spreadsheet gets out of control? Maybe MS could build in a warning system and then suggest some potential solutions.

Minor quibble: it's an Apple III in the ad, not an Apple ][ as the post says. I remember running Visicalc on my Apple ][ but it wasn't until Excel appeared that I realized how seductive spreadsheets can be.

[+] CivBase|4 years ago|reply
Clippy: I see you're trying to create a database. Would you like to use Access instead?

I'm not sure this is really a problem Microsoft can solve as an Excel feature. I think the better approach would be for MS to identify common ways in which people misuse spreadsheets and create new tools to accommodate those use cases. With how commonly Excel is misused as a database, I think there's a market for an alternative to Access which is more accessible (no pun intended). Something with Excel-like spreadsheets/tabs to represent tables and Excel-like formulas for computed columns would be pretty neat.

[+] usehackernews|4 years ago|reply
As a product manager, spreadsheets have been an incredible asset to build products when I had limited resources and to iterate quickly.

When we had no front-end devs available - we used Googles sheets API, connected our spreadsheets to our production DB, and did all the input of raw data, and ingestion of outputs automatically. User interaction happened within the spreadsheets.

When FE devs opened up, we eventually built the UI to replace the spreadsheet (Which is a very hard task, spreadsheets are good at what they do). But by this point, we knew exactly what we needed in the ux and had iterated on the ux multiple times.

[+] jhbadger|4 years ago|reply
My issue with spreadsheets is that they don't encourage reproducible science. For example, if you write code in R or python to log transform your data, you can look at the code and see that it has been done. If you have a spreadsheet that you (or worse, someone else) has created, you can maybe look at the values and guess it has been log transformed, but you can't know for certain that was the case and no other transformations were applied.
[+] bitwize|4 years ago|reply
One thing I'm surprised hasn't taken off is something like Framework. Framework was a hybrid word processor/spreadsheet/database/graphics/communications program based around the unifying concept of a frame, all scriptable in a Lisp-like programming language from which every frame -- down to individual spreadsheet cells which counted as frames -- was directly addressable. Frames could even serve as sources of input or sinks for output to/from external programs or remote machines.

Framework was pretty much Emacs for the office, and such was its power that unlike contemporary spreadsheets and word processors, which were usually positioned as productivity tools for generating business documents and reports, Framework was explicitly marketed as a decision making tool for executives. It did well in markets such as Europe where Lotus hadn't taken over, but it just about died when the Windows era started.

[+] jacobdi|4 years ago|reply
Spreadsheets versus programmers is a war that can be much more peaceful. In my work, I have found that, especially in data science, the spreadsheet user and the programmers are often trying to accomplish similar tasks, but the “language barrier” between them leads to much more fragmented workflows. I also think this article does a good job of identifying spreadsheets as a low-code programming language — spreadsheets are immensely powerful pieces of software. Along these lines — I’ve been building Mito (https://trymito.io/), a spreadsheet GUI for Python. Every edit you make in the spreadsheet generates the equivalent Python code.
[+] dnautics|4 years ago|reply
Spreadsheet users are programmers. Shouldn't be a war.

But, the problem with spreadsheets is that they are an engine of shoddy programming. I don't think it's fundamental. All currently existing spreadsheet implementations hide their functions and make review difficult. If we had spreadsheets that somehow exposed the relations between the cells and made them easier to inspect, ideally minimizing selective interaction (obviously you can mouseover, but that is a far more selective interaction than scrolling a file), they would be less of a problem.

To some degree notebooks (matlab/mathematica/octave, jupyter, pluto, livebook) are solving this problem, and probably being "halfway-between" spreadsheets code, with being fully reviewable is a game-changer, why data scientists like them.

I think you could also improve on the spreadsheet in other ways by being more opinionated. You could have each table be a named entity not on an "infinite-plane of cells" (so you have to set the # of rows and columns, obviously should still be easy to insert/remove rows and columns). I am sure I am not alone in thinking for the last 3 decades that graphs just "hanging out in the middle of the cells" is really stupid.

[+] asdff|4 years ago|reply
What is especially ironic is that excel is not so straighforward to use in my experience. If you want to do something in excel that you don't know how to do, you are best off finding a search engine and looking for a 5 minute article that explains everything. Now, programming is seen as toohard for some reason, but if you were to look for how to do that exact same merge or join or barplot or whatever in, say, python or R, I bet it would be another 5 minute article no longer than the excel one. It begs the question, why use excel at all when the learning curve isn't any easier than learning a few functions in python or R? The answer in my opinion is only that its entrenched and familiar, and you have entire companies basing everything on their excel spreadsheets since 1995 because they were told then by advertisers that this is how business should be done on computers. And now we have generations of accountants and business majors going through undergrad and spending braincells and tuition dollars for coursework on the shitware that is excel, rather than learning something like R or python that they could use to create an infinite number of innovative or creative things beyond just parsing a spreadsheet.
[+] victor106|4 years ago|reply
Mito looks very interesting. I couldn't find pricing info. Is this open source?
[+] mmckelvy|4 years ago|reply
I think a lot of the "problems" with using large scale spreadsheets can be somewhat ameliorated by moving the underlying data to a proper database and then using the spreadsheet as a GUI / interactive analytical tool. Now that you can make external API calls in Excel[1], this actually seems doable.

[1] https://docs.microsoft.com/en-us/office/dev/scripts/develop/...

[+] bob1029|4 years ago|reply
We are getting pretty crazy with our use of Excel documents these days. With a little bit of OpenXML magic, you can read/write these things from code. I'm not talking about CSV either. I am talking about full-blown XLSX files, where you can control font/color/size/worksheets/et.al. with a few lines of logic.

Once you are able to read & write excel documents with a piece of software, you can do some pretty fucking incredible things.

Imagine being able to click a single button and download a total configuration output for a customer's environment (maybe 20-30 worksheets auto-generated in seconds). You can then email this human readable document to the customer for modifications. You then feed this back into the system to load their adjusted values (there is a diff/check-in report to confirm first).

The reason we and our customers like this approach is because there is a lot of configuration where we need to compare lists of things and slice parts of one thing into another. It makes replicating success absolutely trivial. Being able to style the document is a much bigger benefit than you would probably think at first. CSV is trivial to employ, but it is very constrained on this front. For a developer who is familiar, color & layout doesn't move the needle much. For a customer who has no clue how the back-end works, these things make all the difference in the universe. Things you can't edit are grey background, things you can are green, etc.

[+] foxbee|4 years ago|reply
Some apps should be spreadsheets. Some spreadsheets should be apps.

It's the user's decision that's usually wrong. Not the framework in which the solution is built.

For example, at Budibase [1], we've found a high percentage of our use cases are companies upgrading their in-house spreadsheets to applications due to several reasons: Volume of data Lack of auditing Lack of control Accessibility

[1] https://github.com/Budibase/budibase

[+] 3maj|4 years ago|reply
I have a love hate relationship with spreadsheets. While in University I was a bit of an Excel Monkey, I knew everything there was to know and I prided myself in not having to use my mouse to make complex models... Now that I worked at a major bank, learned to code and moved to the data science side I despise spreadsheets. Most people don't realize this but out entire banking system is built on a couple excel models that all the banks use - when something goes wrong its a nightmare to fix.

Recently, we've started to see a major shift away from spreadsheet models to spreadsheets being used as data dumps and then being uploaded into third party software. Usually this "software" tends to be nothing more than some SQL and python scripts behind a fancy UI. I would personally prefer the banks to continue using Excel sheets and then pay for their employees to learn basic python and SQL but that's too simple and the SaaS sales guys have their claws firmly embedded in the upper levels of most orgs.

[+] bee_rider|4 years ago|reply
Maybe we need spreadsheets where each cell can embed python or something.
[+] neovive|4 years ago|reply
Spreadsheets are the original low-code/no-code platforms! There's something magical about showing a non-coding subject matter expert a few Excel tips and watching them subsequently visualize and automate a process on a spreadsheet. Also, looking at spreadsheets built by non-coders is a great way to spur software/start-up ideas.
[+] kinj28|4 years ago|reply
Every CRM starts with a spreadsheet or every applicant tracking system starts with spreadsheet. Many organizations love to start with spreadsheet and then evolve to application (Ready or custom).

At https://www.dronahq.com we support 1. users to connect to their spreadsheets and build applications on top. or pull data from multiple datasources e.g. spreadsheets and support ticket system and build custom tool.

2. We understand people love columnar database like spreadsheet or airtable.com, hence we offer an built-in database called 'sheets'

3. We support most excel formula and functions for binding data or writing complex business logic i.e Logical Functions, Date and Time Functions, Text Functions, Math Functions, custom functions

[+] jccalhoun|4 years ago|reply
Spreadsheet programs are incredibly powerful. I was a math education minor and one of the classes I remember most was using computers in the classroom and using spreadsheets to do things that aren't obvious like estimate square roots. (well at least not obvious to me)

However, I think spreadsheet programs are still way to complex for the vast majority of people. So many people are so math phobic that they won't even think of opening a spreadsheet.

One thing I've done with a spreadsheet a few dozen times is take the outputted CVS file my learning management system gives me in the form of last name, first name and convert it to first last in one cell. I still have to find the bookmarked answer I found years ago and cut and paste it in and I don't really understand how it works.