Microsoft Excel has been a massively successful product, but I believe its dominance as the go-to tool for getting something done at work will soon start coming to an end. Excel probably has a long slow steady decline ahead of it, but I can see the first signs of that decline right now. This post is about why I think that and what the eventual alternative(s) will look like.
The Project Kickoff
I've spent about 14 years developing software for people to use at work and in almost every project I've ever done, the project started with a conversation like this:
Me: "So, why don't you talk me through what you do at the moment, what's your process?"
Customer: "Well, we've got a these spreadsheets..." [They then explain a process that has evolved over many years / been cobbled together, using a number of spreadsheets. Often there are lots of formulas, file references, a bunch of naming conventions, some conditional formatting and the use of cell borders to make things look like input forms]
Me: "OK, great, if you could send me over those spreadsheets I'll take a loo-"
Customer: "Only, we HATE the way these spreadsheets work, please get us away from these awful spreadsheets before our next round of year end reporting".
Me: "Um, OK, what do you hate about them?"
Customer: "Well, we don't understand all these formulas, they keep breaking, if we fill down too far things don't work, occasionally we can get 'Steve' in accounts to come and do some magic by putting '$'s in the right place and stuff but he's really busy and moans about having to help us, plus, we have to name the file 'Monthly Sales RJP 2003-02-09 FINAL - DO NOT EDIT.xls" otherwise the monthly reports spreadsheet breaks.
Me: "Really, even if the date isn't 2003?"
Customer: "Yes..." [and so the conversation goes, while they pour out their angst about spreadsheets and explain why they are currently spending tens/hundreds of thousands of pounds on a development project to get them off spreadsheets.]
In Defence of Excel
Excel is fantastic if you're writing a list or a table, if you're making a list or table look nice for a report, or if your adding things up like budgets, expenses, sales projections etc. That's what spreadsheets were originally designed for and they're really good at it.
But you can also use Excel for creating "apps" or "reports". An Excel worksheet may not look like an app, but if it's designed to be sent out to others (lets call them users) who will input values into a special part of the worksheet (lets call it a form), while the spreadsheet does some calculation and then outputs a result, then what you've got right there is a sort of app. If your worksheet loads data in from somewhere else and then summarises it somehow, then its a report.
It's these kind of apps and reports that businesses rely on massively to get things done, but Excel has kind of fallen into doing accidentally. I'm not sure anyone intended for Excel to become an application development platform, but it is. Ironically, Excel is the major app/report development platform of our time, Excel formulas are probably the most popular programming language on the planet right now, even though Excel "programmers" don't really think of themselves as programmers.
Part of the reason for it's success as an apps and reports platform is that Excel is brilliant for quickly creating something to get the job done, but there are two major problems with Excel when it's used in this way:
- The path of least resistance leads you towards creating apps/reports that people can't understand or change later on.
- There are some basic things that we expect all business apps to have these days that Excel just doesn't do (well).
The Path of Least Resistance
When you write a function in Excel, you give that function values from other cells as its inputs, something like "SUM(B3:D9)". The problem is that "SUM(B3:D9)" doesn't explain what you want the SUM of in a way that might be helpful to someone else who needs to understand this spreadsheet. They'd have to go and look at B3:D9 and figure out what it is. This is a real nightmare if you're trying to understand a formula someone else has written or even if you're coming back to one you wrote several months ago. It would be better if you could write "SUM(ProductSales)". That would give you a hint about what the formula is doing and make updating this "app" much much easier. The thing is, you can actually do this in Excel, its just that it's not the path of least resistance so most people don't.
This pattern is repeated across many features of Excel. You can lock formulas down in Excel to prevent users from changing them, but most people don't. You can get Excel to track who changed what and when, but most people don't. You can get Excel to let multiple people open a spreadsheet at the same time, but most people don't. You can get Excel to check which values people are entering and force them to only enter valid values, but most people don't. In each case it's because that feature was bolted on to Excel in a hidden and purely optional way that makes it look like it was a bit of an afterthought. Excel is a prisoner to it's own success here. So many people have used it for so long that almost any new feature must now be made optional and out of the way, and therefore unlikely to be discovered for fear of upsetting the millions of users who've gotten used to the way it works. Imagine if Microsoft took a Facebook style approach to changing the user interface. "Uproar" would be an understatement.
Missing App/Report Features
The other problem with creating apps/reports on Excel is that some of the features any business app/report platform really should have, are either not there or are done very badly. Here are few examples:
- Keeping Track of Who Changed What
Very few apps or reports are written once and never need updating. Within the professional software development world there are some excellent tools for keeping track of who changed which aspect of the app's/report's behaviour. Usually each change can be linked to a whole discussion between the people who worked on it about how it works and why. This sort of history makes figuring out what this app/report does much easier than it would otherwise be and is invaluable when updating a system that's been in use for any length of time. Even more importantly, once an app is out there and being used, keeping track of who entered what data is very important and sometimes a legal requirement. Excel has it's "track changes" feature. It works, but it's very complicated, it doesn't distinguish between people editing the way the worksheet works and people entering data, there's no clear way to group a bunch of changes together and provide some text that explains what you were doing. Plus, it shows you all the changes in-place on the worksheet which clutters things up a lot.
- Controlling Who Can Change What
Most workplace apps need some way of controlling who can change what. You don't want people who are only supposed to be entering their own information to be changing other peoples'. Unfortunately, Excel gives you very little control over this sort of thing. You can lock formulas or password protect worksheets, but there's no way of saying that "sales people can edit this" and "accounts dept staff can only view that". Excel can't tell the difference between a Sales user and a Accounting user.
- Getting Data in from Somewhere Else is too Complicated
Most apps and all reports rely on being able to pull data in from somewhere and don't just ask the user to enter it all. That data might be in a database, on the web, in other apps or in files of some kind. Excel does have mechanisms for pulling in data from all these places, but how to do it varies a lot depending on where its coming from. So, to load data from other spreadsheets, you can reference the file name in a formula - so long as that file never moves or gets renamed you'll be ok. For loading in a CSV or XML file, there's a wizard. For loading in data from a database, there's a different wizard. For getting it off the web, another wizard. All these wizards seem to assume quite a bit of technical knowledge, they're definitely not for the average user. So most Excel apps/reports I've seen tend to rely on the user copying and pasting data in from somewhere manually.
- Available Everywhere
Quite simply, people now expect an app/report to be available where ever they are. Can they access it via their mobile? Can they log in using their home computer? What about a tablet device? The basic spreadsheet interface is not at all touch friendly, and now that we all have Andriod/iOS/ChromeOS devices, the number of platforms that Excel runs on is starting to look painfully limited. If your app or report exists in some .xlsx file on a shared folder at work, accessing it from your iPhone while at home is probably way too technical a challenge for your average user.
- Diagnosing How Calculations are Working and What's Gone Wrong
When things are not behaving as expected, you have to dig into what's going on and why. The tools that professional developers use to do this sort of thing are excellent and really help a lot. Excel does provide some features like "Trace Dependants" and the ability to step through a formula evaluation, but the user interface is poor, it's quite limiting to someone who knows what they're doing yet not at all friendly to an inexperienced user. There's no ability to select parts of a formula and see what they currently work out to, for example.
The Future of Excel Apps/Reports
Excel has served us well but is looking increasingly anachronistic in today's workplace. It is a big old desktop app in a web world, it's very expensive given the limited feature set most average users use it for most of the time, and for the high end users its limitations are powerful, but a thorn in their companies' sides. Finally, it has failed to keep up with the sort of tools that people developing apps or reports on other platforms have come to expect, which is ironic because the people building apps/reports in Excel are often less technically aware than, say, people who write iPhone apps. You'd think the demand for better tools would be greater in the Excel app world.
It's unlikely to change though, to some extent what would be good for the "apps/reports development" use case, would make the "simple table formatting" use case more complicated. Plus I don't believe Microsoft have the ability to see beyond the basic One Big Grid user interface which would probably be necessary for real innovation to take place, it's been basically the same for 20 years, they're not about the change it now. If they did it just wouldn't be Excel any more.
Excel will probably be replaced by a number of apps...
For writing lists of things, Trello is excellent.
For setting out and styling tables, I think there's scope for a really quick and simple, online visual table editor. I recently had to put some financial projections into a document and can report that word processor tables still leave a lot to be desired. There's an idea for a web app right there.
For app development, I see the a number of interoperable tools becoming available on the web such as WuFoo for making forms that people can enter information into, IFTTT and Elastic.io for gluing services together and Dropbox for storing files. This is an excellent development as all kinds of mashup "apps" are becoming possible but no one platform is dominating everything, hopefully this will keep the market vibrant and competitive.
Finally, we come to reports. How will people load data in from somewhere and summarise it? That's where our product QueryTree comes in. QueryTree lets you easily load data in from a variety of sources like web services or CSV files. It lets you define filters, sorts, aggregations or pivots that sit on to of that data and update automatically when the source data changes. Everything lives on the internet and is accessed via a browser, supporting multiple users at once. The security model prevents certain types of user from screwing things up. Everything is audited and versioned and information is referenced by real names not "A1:B3" style references. We aim to make QueryTree the most usable and useful data querying tool in the world. If you'd like to try QueryTree free for 30 days, sign for the free trial here.