The SaaS Opportunity of Unbundling Excel
foundationinc.co
foundationinc.co
The spreadsheet is certainly one of the best tools ever invented.
[0] Joel's Spolsky must-watch talk on Excel: https://www.youtube.com/watch?v=0nbkaYsR94c
A lot of software is like single-use kitchen gadgets. So called "unitaskers". It has one purpose envisioned by it's inventors, and you'll be lucky if you ever figure out something else it's good at. Sometimes they're pretty slick, but still limited. My mother has a device that skins, slices and cores an apple all at once. With that device, you can process enough apples to make a pie in a minute or two... but the chances of you ever finding anything else that tool can do are slim. Maybe you could use it to slice curly french fries out of a potato, but that's about it. It saves your time if you're operating in the narrow problem space envisioned by the inventor, otherwise it doesn't have much of anything to offer you.
Programmers love creating unitasker software, particularly for end users, frankly because it takes much less thought. And when they do create powerful general purpose highly flexible software, their target audience is most often other programmers. Excel (and a handful of others like hypercard) are proof that this status quo can be broken.
Restrictive IT policies are the root cause of some of the gnarliest Excel sheets I've seen.
Many Excel sheets are a form of shadow IT, no proper way to get the app they need in a reasonable time, so people jury rig something with what they have.
I suspect I see more dysfunction than average still...
Excel is part of standard environment so it is present on every fresh installation here so there is a tendency to reach for it. The "I can open up excel and start working on my problem now, or I can submit a ticket and wait two weeks" attitude is a real thing. The other issue is "I know I have excel installed and I know Bob has excel installed - who knows what else Bob has installed already so if I want to collaborate with Bob I better just use excel."
Personally (I work as an Engineer - the non software kind) I think excel is fine for rapidly prototyping something and as a first pass solution for when you need to quickly answer something but once you've reached the stage a spreadsheet is needed to run process it should be rewritten in something more robust - preferably before it reaches that stage.
Yes, one of the major problems for which Excel is a popular solution (and perhaps the biggest in enterprise environments) is IT service request friction.
If you really want to displace Excel, you don't need alternative software (I mean you do, but not anything novel), you need IT to not be an isolated distant mystery group which can only be invoked by time consuming, arcane rituals to which they give unreliable and untimely responses.
Exactly. If we view personal computing more like a "medium for literacy," then it becomes clear that computing power is wildly imbalanced. This is especially egregious when we consider the original goals of personal computing. Spreadsheets, Hypercard, and things like them were a totally different direction for computing that has largely since been abandoned in favor of market-dictated "wants" and shrink-wrapped "solutions." The upshot is that the people who should be most in the know -- computer people, developers, etc -- are stuck in a rigid world of epistemic closure (where, for example, Unix is more or less the "End of History")
I have yet to find a better definition of programming than "telling a computer what to do." When put this way, a lot of things that the trade-school approach consider "programming" are really only a subset -- and perhaps the most regressive and uninteresting to boot.
The problem is that not everyone has the same needs, and there aren't enough programmers to write special purpose software for each person on the planet. Making software customizable is a way to give users a powerful tool that can be adapted to their needs.
We ended up going a slightly different route, but thought this might be worth sharing.
(I am not affiliated in any way and have nothing to gain by this.)
Unstructured use of Excel is a completely orthogonal problem.
[1] I am tactfully not counting GMail as part of GDocs here because, honestly, Outlook is the one tool that wouldn't come off well in that comparison, and reason #1 is that Outlook's search is terrible; reason #2 is that Outlook doesn't perform at all well in the face of the modern "I want to keep all my mail so that I can search for and find relevant messages whenever I need them", which can be key when dealing with tricksy customers/partners/co-workers, and is handy even in mundane day to day use.
Word and Excel are great for individual productivity. If you use documents and spreadsheets as tools for collaboration, though, Google Docs is much much better overall, even though it's missing many features to which power users have become accustomed.
Sure, you can save a file to OneDrive and have multiple people working on it at the same time. But:
- In my experience, simultaneous editing via OneDrive (whether using the browser or the desktop apps) is more laggy and buggy than with Google Docs
- The commenting functionality is missing lots of features that are essential to my desired collaboration workflow:
i) Ability to give someone access to add comments and suggest changes, but not to accept changes or edit directly
ii) Comment authors are identified, and only they can edit comments they have written
iii) Comments can be received and replied to by email.
The way commenting works in Google Docs encourages collaboration in a way that the simple comments in Word doesn't. If you've not worked somewhere that uses Google Docs for collaboration, it can be hard to know what you're missing.
I have (for a previous company), and it still hasn't proven worth it at other companies, including my current employer. We use Office 365 exclusively: it's not perfect but, as I say, Excel is streets ahead of Google Sheets in every other way, and that matters for our use cases.
The key difference I'm talking about is between:
A. Writing a document, and sending a version of that document to one or more other people, so that they can do something with it. (This might involve sending you back feedback or suggestions.)
B. Sharing a link to a 'living' document, with which people can interact in different ways (comment, participate in comment threads, add change suggestions, accept/decline changes).
In my experience, B is much harder to achieve, and unlikely to happen organically, if you use Microsoft Office.
Has anyone here witnessed an organisation that uses Microsoft Office, and where significant progress is made on people's thinking, through their online collaboration on docs/sheets?
I realize some people don't care about how beautiful a spreadsheet looks, but in presentations or sharing complex information, it matters. And formatting anything complex with charts and such is a major headache in Sheets (like my latest struggle to get annotations to properly appear, or move a single peak data label so it isn't cut off from displaying).
Maybe your browser, or some extension, got in your way?
For plain-old Excel with version control, save your Excel files in Dropbox. MSFT might also offer a cloud version with version control but I have no experience with it.
Disclaimer: despite working for Google, I don't know that much about the suite.
(Though this only solves half the problem, the other half being that even if you can wrangle Git or the like to version files inside a ZIP, Git is far from being a tool that could be considered appropriately usable to dump on the Excel audience...)
FWIW we've explored that idea in the past, using git textconv to diff spreadsheets https://www.npmjs.com/package/j#using-j-for-diffing-spreadsh... -- it seems nice on paper, but quickly becomes hairy
where is this unnecessary lisp hate coming from? /s
And obviously, merge would be nice if multiple people can legitimately edit concurrently.
> a destroyed formula can go undetected for a while...
That is a problem in methodology, not with the tools. There are many solutions that do not require abandoning spreadsheets.
For the destroyed formula example, you need tests. Simple example to do that with a checklist: if you are doing a SUM(), require that the employee ticks a box saying "all the number were highlighted when clicking on the SUM formula".
For the out-of-sync version, you need a central repository and another box "I retrieved the latest version from the xx repository, and this version was: ... "
Then require that to be printed and signed (accountability), and you'll see mistake disappear.
As for expecting people to religiously and accurately observe procedures, I work with human beings, you seem luckier...
I have ‘unit tests’ in my excel files on the last tab. Eg, the sum of all lines in the Data tab must be the same as the sum of the annual revenues in the dashboard tab.
With a bit of conditional formatting it’s easy to see if a test is failing as well.
I like programming for lots of things, but ask me to do a business case or some one-off analysis and I’d use Excel in most cases.
Human beings observe procedures when they understand it's part of the job and they are held accountable.
Maybe your experience is different, I haven't seen a use-case where multiple authors are changing excel macros or formulas that often, or even often enough to where this is an issue. In fact I think adding version control would make things very very confusing for most people.
I've spent months reverse engineering a vast, complex, costing application that had evolved within a spreadsheet and needed (for very good reasons) to be turned into a proper application. The really entertaining part was trying to convince people that their spreadsheet didn't actually do what they thought it did....
Edit: It was costing a complex heavy industrial process so it had logic that was basically physics right through to finance.
People really underrate Excel as a programming environment, honestly. Yes, it's crippled and leads people to produce massive gross un-debuggable hellsheets ... but there's reasons (beyond just "it was the only usable software that could be run on office computers") that end users with a problem to solve keep turning to it despite those flaws. The combination of reactive programming, data-first visibility, no hidden state, decent approximations to structured programming by way of click-drag-and-copy-paste, and being able to reference variables and values without needing to name them has some kind of magic to it.
There's quite a bit of interesting research I've seen from Microsoft on how to take something like Excel and turn it into a non-crippled programming environment - spreadsheet-defined functions (including recursion, lambdas, and higher-order functions natively in the spreadsheet environment, without having to drop into VBA!), dynamic arrays, an alternate computation-first textual view that exists simultaneously with the data-first spreadsheet view, first-class complex data structures ...
Between HyperCard, Jupyter/Mathematica notebooks, and Excel, there's a lot of common features that seem to point to a vision of a truly useful end-user-accessible programming tool, something that would let people write real, useful programs intuitively and quickly enough to be worth building them themselves for whatever they needed them for, without forcing them into condescendingly-simplified drag-and-drop "visual programming" codeless clunkfests.
No, the way to tame Excel is to make it less general, to impose principles of structured programming on it. Separate code and data and presentation. Put some of the data in a database. Impose types on it, so Excel doesn't interpret genomes as dates etc. Make the control and data flow visible. Split it into pieces with defined responsibilities.
Excel is really a "two dimensional assembler": you put an operation in each cell, and they can read any other cell, and it all executes together.
Some poor soul is probably still maintaining that.
And now javascript.
https://docs.microsoft.com/en-us/office/dev/add-ins/quicksta...
This is the big one.
I like to call it a fundamental or building block technology that enables you to develop things on top of it, my favorite being a finite-state-machine we modeled in a sheet. Won't be surprised if we end up talking about Google sheets being one of my favorite products.
I'd rather not work with them more than basic/classic usage of a more well formed data dump. I use spreadsheets for monthly finances, some historical information that fits well, and a few other use cases. I'm not big on VBA and have little desire to work in the space.
I have, however, seen some amazing usage of Excel and other spreadsheets for everything from charting and pivot data, to multi-user applications tethering to other data stores.
Google Sheets, on the other hand, is truly compelling, and a lt of the work I've been doing lately has been using Sheets and Apps Script to build really powerful "apps" on the super-cheap. This is the stuff we used to do with VB years ago, and it would take weeks. Now I can get at least a PoC of a fully multi-user system in front of a client in a day, and they don't pay anything to host it.
How is a spreadsheet “inclusive?” What does that mean?
What Excel doesn't let you do (without heroic effort in support toolchains) is software engineering...
Excel works very well for single users with small datasets but if the business works it breaks in various ways. Sharepoint was the solution to scale excel but it didn't seem to have been successful as a tool.
A lot of companies don’t want to invest in tech they don’t control or understand.
no. this does not happen. everyone uses excel.
But if you start your business with your stock and order tracking in excel, your customer list in excel, and your accounts in excel, it's not unusual to outgrow excel in some of those areas fairly quickly.
At my current job (late-ish stage SF startup), most of us default to Google Sheets, but there have been enough use cases for "real" Excel alone to warrant setting up Office 365 licensing/accounts and defining a flow for that at the corporate level instead of just one-off licenses here and there.
Our finance team in particular (or at least specific key members thereof) has to use the Windows version of excel because both the macOS version and Google Sheets rapidly buckle under the datasets they're manipulating in their monthly reconciliations. My team has been working on various tools and systems (mostly as extensions to our ERP) to better automate some of these things, but Excel is still a reality until that happens for all their use cases.
At which, again from my perspective and view of things which may be wrong, startups are more likely to automate/productize that so they can better maintain and dogfood it if possible instead of letting someone's Excel workbook grow into a pet ML tool that only they understand.
The upside is higher quality, the downside is way reduced turnaround speed if they need to change something.
I understand why people using Excel are often reluctant to give it up.
Think about anything that you do in Excel. In what scenario do you roll with exactly what you initially start with?
I just did a preliminary capital forecast in Excel. I could have used something like Google sheets as well, but beyond that, the lack of flexibility makes purpose built solutions less able without specialized people that I don’t have or domain knowledge that I don’t possess.
Without difficulty? No, definitely not. The difficulty is always there, it's just internalized, ignored or worked around in various (often crazy) ways.
The baseline difficulty of using excel is not what I'm talking about and I don't consider it relevant since experience has proven that baseline difficulty is not much of an obstacle to real adoption.
I've seen these trends around "Unbundling" Excel:
- Improve UX by specializing UI
- Increase automation with software integration
But given that Excel is acting in the guise of software, doesn't it follow: 1) Running business of Excel has many of the same problems as other software
2) Excel has some key advantages over other software
(By 1), I mean, QA, testing, deployment, etc...)The article mentions that Excel doesn't need much onboarding. I don't think that's its only advantage. Also, to solve the general software development problems around Excel, one has to match the near-zero onboarding barrier of Excel, otherwise those solutions will get left behind.
Does the experience of Sharepoint bear this out?
The main advantage of Excel, which leaves us pessimistic on the long-term viability of the niche SaaS solutions, is the "hackability". There's an incredible depth of tooling and market expertise around Excel, from mundane formula structures to macros to addins and COM automation. Thousands of office workers who otherwise have little programming experience are extremely adept at solving problems with Excel.
The SaaS solutions might individually solve different problems, but are not really designed to play nice with each other (nor are they really incentivized to work well together).
Then don't have people check out files and check them back in. Only programmers like that kind of nonsense! 99% of the time, let people "nominate" a particular copy of the file as authoritative. If something happens to that particular person's copy, let's say their machine gets smashed, then the latest version can be downloaded by their coworker, and an admin can nominate that copy as authoritative. People then go back to the 99% case of just using Excel and saving their file.
The main advantage of Excel, which leaves us pessimistic on the long-term viability of the niche SaaS solutions, is the "hackability". There's an incredible depth of tooling and market expertise around Excel, from mundane formula structures to macros to addins and COM automation. Thousands of office workers who otherwise have little programming experience are extremely adept at solving problems with Excel.
Therefore, a SaaS solution needs to let people do what they've always done, only better. Don't try to make them act like programmers. Don't change their behavior one iota, unless they're getting a payoff of nifty functionality in exchange. As much as possible, just let them act like they've always done.
The SaaS solutions might individually solve different problems, but are not really designed to play nice with each other (nor are they really incentivized to work well together).
One SaaS solution which can solve dataflow and versioning with ultra-low friction could be the one ring to rule them all. All the other SaaS solutions could be built on top of that. The problem is keeping everything super low friction.
They are great for small projects and prototyping, but just don't scale well unless you want to pay for expensive babysitting.
Note a good CRUD app allows exporting of data to Excel for searching or experimenting with budget scenarios etc., but the "original" data should be in a real database.
All those things take less effort if you already know how to use Linux, Apache, MySQL, and PHP or Python. If you don’t, but do know how to use a spreadsheet, it takes vastly less effort to do those in a spreadsheet than to learn how to do those with a LAMP stack.
And there are orders of magnitude more people in the latter group than in the former, and their time generally costs much less on the open market.
Which, to be clear, I don’t think is a good thing! Doing those things with a spreadsheet is worse in every way—effectiveness, maintainability, you name it—except this one way. But it’s usually the only one that matters.
My dream, coming soon to an Internet near you, is to “democratize” the things that come easy to us “real programmers”.
About two weeks later, I showed her how to use Excel, and she took to that immediately, and uses it for nearly everything. It's to a point now to where I wonder if she'd pick up Go better as a result of her experience with spreadsheets.
They absolutely are databases. What definition of database are you referring to? Google's dictionary defines it as
"a structured set of data held in a computer, especially one that is accessible in various ways."
That's a spreadsheet.
This advantage shows when using Excel positionally rather than as a simple data table system. For example, =B7*C6 is virtually impossible to express in SQL, and constructing positional lookups using concepts such as “the previous row” or “the next column” are virtually impossible - yet, easy in Excel:
INDIRECT(ADDRESS(1+ROW(H229),COLUMN(H229),3)
Excel’s ability to write non-tabular data and calculations alongside tabular data, without needing to split it onto another tab/pane/page, is another critical benefit that databases cannot match. While they have stored procedures and linked functions, they have no concept of “positional” with which to model the theory of canvas that underlies Excel.
Finally, due to being a canvas model with calculation functionality, Excel meets the basic needs of a page layout and data graphing engine, with the ability to configure and position reporting in various UX ways that are considered out of scope for nearly all databases. HyperCard, FrameMaker, MS Access all clearly understand this issue and work to solve it in various respects.
So while the written definition of spreadsheet may seem to be encompassed by the word “database”, that is true only if the word “database” encompasses canvases that store both tabular data and other content, and not just key-value data (such as a MongoDB or anything SQL).
If you want to break into the Excel market, you won’t do it with a database alone. You’ll need canvas UX to even begin to be relevant, a point many startups discover the hard way.
As I wrote initially, if you losen the definition that much, then a txt and literally everything is a database.
There are many different definitions but my personal completely subjective perspective is that the bare minimum is that whatever structure you claim the data has must be enforced and be translatable to a semantic connection. For most sql databases you have a schema enforcing the structure and at a minimum there is a connection between different pieces of data in the same row.
In a spreadsheet having different sets of numbers/text/code on the same row or column might mean something but doesn’t have to. So whatever “structure” there is, is not enforced.
This is in the same sense that a txt document that contains 4 book chapters have in them 3 email addresses is a “structured list of emails” sure you could find them and there is a structure to it, but calling it a database is a stretch in my book.
Are you arguing that flat file databases aren't databases? Because they really are.
There are plenty of computer programs that use text files as databases, reading and writing lines. /etc/passwd is one very common example, the passwd file is just a text database that you can read with any text editor.
I mean a HN comment is also a database, a text is a database, a picture of rocks arranger i the shape of names is a database.
In the world of stupid internet arguments, sure we can agree you are right txtfiles are database, .wav files are database, everything is a database. Talk this way about it at a job interview and you’ll get cut by your second sentence
>> Yes, but by that definition every group of bits on a computer is a database. The word sort of loses any value.
Not exactly. We need to define the atomicity we would like to deal with. That is:
- if a bit is what the atomic unit of data is, then a byte is a database
- if a byte is what the atomic unit of data is, then a collection of bytes in properly defined structure is a database. For example, a JPEG file or little-endian or big-endian datatypes.
>> I mean a HN comment is also a database, a text is a database, a picture of rocks arranger i the shape of names is a database.
If a word is the atomic unit, then a comment can be a database. If the comment itself is an atomic unit, then the thread can be a database.
And that is the power of Excel - a client can build their own solution, backed by our service. We do the parts that Excel can’t do or do well.
This frees us up from the pressure to build customization for any client - we won’t do customization only generalization.
We will create new features without any UI - just the API for JSON and CSV. This lowers our costs and development time - UI can be expensive and time consuming.
- Direct query from Excel to SQL Server (This is fast, reliable but users need to know SQL)
- Cube pivot or formulas to SQL Server Analysis Services (Lower user skills needed, but depends on IT/Dev to setup correct measures and processes in Analysis Services)
- Using MS Access as an intermediary between Excel and SQL Server (Using MS Access in the middle is a great way to allow people that don't know SQL to build some simple joins. Comes at the cost of query performance though.)
- Using MS Power BI to connect to SQL Server data (this is in its early days at my company, but is proving to be a great solution for historical reports, where Excel usually shows its limitations)
Airtable seems to have the main advantage of Excel (it can be customised by a non-technical user) whilst solving some of the limitations (e.g. multi-user, permissions, workflow triggers).
Someone who would have built their CRM tool in Excel in the past, might well choose Airtable today.
Personally, I wish I had an excel-like interface for Python/Pandas. Instead of sheets, give me modular data frames, and give me a nice GUI for data import/export/connection.
But, the best feature of excel is that the interpreter is built in. No version control, no wondering which version of whatever library is installed. If it is excel, it (mostly) works when I send a file to someone.
Most of the time, I use excel because the SaaS tools that I have that do a better job have a per/seat cost that is MUCH too high for me to bring casual, one time people into the projects. If companies were more sensible about licenses for casual users, maybe excel would be less relevant.
This is the main reason why I don't use products like Airtable or Notion, even though they are otherwise very compelling. Charging $10-40 for every user, even people who may log in once every few months (and maybe don't even change data) makes no sense. At that price, even excel files on a network drive is better.
Instead of having to log into 10 different SaaS apps, you simply make a few menu selections from within Excel / GSheets and your data is pulled in, ready to be analyzed.
The spreadsheet becomes the UI, and the SaaS "apps" are basically databases accessed via an API.
Spreadsheets are good and fine until they're not (fine-grained permissions, collaboration, referential integrity and validation enforcement, multiple data source aggregation and ingestion, easy visibility into history and auditing, features that Excel has but people don't want to learn, etc).
You have to convince customers that what they have going is not actually working, which requires having a discussion about how just because poor data management practices have thus far failed to completely destroy your company, they are wasting tons of time and money. Many of them will have in the back of their mind that they can always go back to how things were before.
So the behavioral change/change management aspect of a product that really does directly compete against Excel is very challenging.
All of the things you just mentioned could be handled using just two mechanisms:
1) An extremely low friction way of flowing data to/from spreadsheets
2) Automated publishing/versioning
If a particular piece of automation for flowing data between and in/out of spreadsheets is the lowest friction for users, then that will be the way they use by default. Then that software will be able to provide collaboration, fine-grained permissions, referential integrity, validation enforcement, multiple data source aggregation, ingestion, and auditing. Tracking versions takes care of the rest. The trick isn't providing all of those facilities. We've known how to do that for many years. The trick is to provide all of those with near zero friction.What's needed is something like Dropbox, plus dataflow. Just let users save their files, and it gets versioned and uploaded into "staging" for the dataflow part without their having to do anything. Then, as people start running into issues of scaling, enforcement, etc, enable them to start incrementally adopting more administration features -- all while preserving the transparent "it just works" magic of their just saving the file.
Instead of telling them their solution blows, its better to gain trust by first addressing the pain points without any major rework, and then slowly change the system bit by bit, with each bit providing an instant usable benefit to the end user.
There is no way to switch from email and Excel to a third-party web application without major rework.
That's what makes it hard.
Right now SaaS products are mostly single-purpose workflows and aren’t super customizable (until the start-up ages and enters a few enterprises who demand customizations). This is a step-up from Excel which was general purpose but didn’t facilitate workflows seamlessly.
However what Airtable is finding is almost any specific SaaS can be recreated with general purpose spreadsheet-like products. Essentially they merged the ease of use of Excel with additional shared workflows of SaaS.
Telling Betty what to do is way more agile than having a task put in the bottom of some Scrum backlog.
The problem of course is that this becomes an important business metric, making the spreadsheet a critical business application, but without any of the tooling used for successful software development (version control, code review, test automation)
How many people prefer Slack native desktop over the web experience?
Excel is the ultimate rich client experience for power users. Maybe we should brining the web to Excel, rather than the other way around?
I reckon one large company coming into our office and spending 2 hours describing their new software to assist with blast design.
They gave us a trial and while it was slick, it was not much better than our spreadsheet, that everyone can use and the few extra features they showed we easily implemented ourselves in the spreadsheet.
Hate to think how much money was spent developing this software that literally was a pretty GUI over a spreadsheet.
the gist is here:
https://gist.github.com/stefano77it/ea8f20efebc9d51def852719...
Just because I can quickly make a boat with duct-tape and 2x4's doesn't mean I'm ready for an Atlantic crossing.
I made an app called https://Sheet2Site.com which takes your spreadsheet of items/objects and translates it into an app, with filters.