Why Enterprise Software Sucks: 6 Years Later
futureofwork.glider.com
futureofwork.glider.com
I have a few points to make :
1. End users have an incredible ability to complain that software doesn't meet their very specific and peculiar requirements at any point in time. "Why can't I print this expense report landscape on a5 paper, we have run out of normal paper" - "Why doesn't this expense report sub-total by supplier and week, but only in leap years?"
2. If the people using the software were the business owners I think they would sing a different tune, or go out of business because they spend so much money optimizing for user experience.
3. Enterprise software tends to be infinitely more complex than most Saas projects. It is hard to budget and focus on the user experience when you are processing billions of dollars in transactions, with complex business rules, complex tax rules, complex laws, integrating with legacy systems, changing business conditions and strategy. Most businesses will put compliance and accuracy ahead of user experience.
4. Non-enterprise developers seem to think they are shit-hot and have a chip on their shoulders about enterprise developers for some reason. So you get an endless stream of articles along these lines.
I also remembered a new hardware product going out to a satellite office in $other_country, where the favourite sport of the sales staff was coming up with excuses for not meeting targets. This next-gen bit of hardware had everything they'd asked for and used as an excuse for not meeting those targets, and it was a nice bit of kit that would sell well (I'd previously worked in the industry it was targeted at and wished I'd had it then). Supplied with the first production model, they were asked for comments. The sole comment that was returned was "well, at least it's not green".
That company also gave me an insight to your #3. We had SAP-like software but the company treated us like shit so we were looking to replace them. It turns out there are (were as of 2009) no cheap options - they all failed at nested bills-of-material. A product might be a full box with manual and other parts. That product holds the assembled product and a couple of other assemblies. That assembled product holds several boards and subassemblies. Those subassemblies then require other parts. Rinse, repeat over several products and you have a system where there's nothing useful on offer at the cheap end of the spectrum (without heavy/clunky modification). Most of the cheap stuff was entertaining a retail mindset - "item A comes from supplier B/why would you need to ever put A and B in a kit?". Even the vaunted Salesforce needed customising to handle the idea of kits - and that is only a single level of nested BOMs.
The video games people set the bar. And they are shit-hot. And they produce stuff that even a 4 year old can use.
And the problems the video game people solve are more complex than your typical schlubby entreprise app. In the case of MMORPGs, infinitely more so - and they have to deal with compliance and accuracy as well, because they are dealing with stuff like credit card data.
The problem is that the entreprise software buyer is not the user, he just gets to inflict the stuff on others - a perverse incentive.
I've worked on entreprise software in more than one big-name company, and I'm embarrassed by what they ordered me to deliver. One time a friend of mine, who had to use my company's malfunctioning stuff, even phoned me up at work to curse me for it.
Enterprises are selling a product or service, and the customer paying the bills doesn't see the internal software that facilitates some part of the process of delivering that product or service. You could dream up a few examples where the end customer might be impacted by a poor UI used by internal staff but it would be an edge case.
If every enterprise software project attempted to produce game quality interfaces and experiences to the user, the costs would explode.
The only benefits of producing better interfaces / experiences / workflows for an enterprise are user moral and user efficiency. The latter is quite often addressed in my experience, as it affects the bottom line.
The games example was just to show something that is really hard. I don't need the UI to be game quality; I'll settle for just the same quality as Excel.
And by the way, there is some unusable entreprise software out there. You seem unconcerned with the unhappiness its piss-poor UI causes for users so long as it's "efficient".
Take a look at Lotus Notes and tell me just how "efficient" it is.
For using it at all without tearing your hair out
There were hundreds of developers at Siebel. There were hundreds of developers at Peoplesoft. There are hundreds of developers at Sungard. There are hundreds of developers at Oracle. There are hundreds of developers at SAP.
The difference is, unlike (in increasing order) Microsoft, Apple or Nintendo those companies don't give a shit and produce a crappy product.
Now stop changing the goalposts. You claimed that the SAAS people were whining, that they were no good, and that their stuff was easy to do, and that's why they were wrong to complain about the shitty state of entreprise software.
I showed that your claim against the SAAS people was ad-hom, and showed how entreprise software was way worse than what your average four year old has access to.
You moved the goalposts, and claimed that doesn't count because the games people are in the business of experience. So I came up with Excel, which is in the business of business, and which basically runs Wall Street. (There are many other examples, that easily trounce "entreprise" software. MS SQL is one of them.)
Now you're moving the goalposts again, to say why Excel doesn't count. It would be far more honest for you to just admit that the SAAS people are right, and that entreprise software sucks.
And it's for no other reason than that the vendors are cheap bastards who care about nothing other than making a buck.
They don't want to put the effort in to make entreprise software any good because it would cost a lot and hence lower their margins. Nothing less, and certainly nothing more.
I did.
In the way of etoys/scratch/other-alice/etc. programming environments, perhaps this approach would result in people scripting the making of pizzas or skull caps or whatever drudgery they have to do every day.
They could also go on ebay and pay an 11-year-old in Korea or Viet Nam to grind out their jobs.
Games development is not some arcane area of software where only the "shit-hot" developers may walk. It's simply a very special branch of software development. You can of course find highly complex stuff in games (graphics, AI etc), but if you look at enterprise, you'll find equal complexity just in different, non-sexy areas like sheer code base scope, integrations, performance requirements on transactions etc.
And if you look at "mainstream" SaaS apps you have yet again a whole different type of complexity with the typically huge amounts of concurrent users, advanced UI etc.
To argue about whatever types of developers are the best, is just silly and frankly reminiscent of school yard discussions of which action hero could kick who's ass.
Enterprise software should take a similar approach. Have something of a tutorial mode, and an easily searchable text based document. Most of the cost in the software comes not from the actual price, but in employee productivity and training.
Which is why rjempson shouldn't have started it. He was using "SAAS programmers are rubbish" as a way of dodging the crappy state of entreprise software.
if you look at enterprise, you'll find equal complexity just in different, non-sexy areas
Like the Wall Street system I heard about that ETLs its data continuously between three different databases because its developers had no idea what they were doing?
A lot of the stuff that happens under the label "entreprise" is just crap.
I was recently at my insurance agent's office updating my automobile insurance coverage. The agent worked on a mainframe character mode interface and could absolutely BLAZE through the various options and quote different insurance options instantly. No dragging and dropping, no pointing and clicking -- her hands never left the keyboard. Looking at the screen, nothing really looked very pretty or intuitive. The system clearly would require some training or at least some instructions to learn how to use it. But it works really well once you invest that learning.
Then there are people in the enterprise who have to use this software occasionally... e.g. people who have to file an occasional expense report, or update their tax withholding. For those people it sucks, because there isn't a lot of hand-holding, and the software feels clunky and arcane.
However, every new feature we had to release needed to have every action accessible using the keyboard. There were best practices for using certain keys with certain actions (so that they were consistent across the features) and this was one of the most important things of an UI review.
I ended up using the keyboard always whenever interacting with the terminal. The Chief UI guy at Bloomberg was ex-Wall Street and told us that when he started working on his first job on Wall Street, someone came up to his PC and disconnected his mouse so that he would learn how to use the Terminal properly and efficiently.
e.g. having to tell the app things it could just figure out, sloppy focus that requires you to fuss with the UI, having to input a lot of text in small text box that won't resize or spell check it, having to manually click a button to auto-complete, modal dialog boxes that block you from reading important info in another pane, uselessly vague or incorrect error messages for easily correctable problems cause you to waste hours guessing what the real problem is, returns no error message at all, oh you're using the wrong browser, oh to attach a file in your enterprise webmail you need to install Sliverlight, oh the web based wiki plugin for your enterprise document system only works on Windows with IE, oh mobile browsers are not supported, let me slowly redraw the screen a few more times due to some .Net + Areo legacy issue and hang your window manager, supports Kerberos SSO but requires to you enter a password, doesn't let you enter a username or password since it uses Kerberos SSO... etc.
There was a team where I replaced their mainframe UI with a web-based UI that enabled better reports, better visibility and categorization of the orders, etc. It dug into the mainframe to do data IO, scrapers acted as the interface between the mainframe and web UI.
One lady who used my system complained of getting tendonitis in her right wrist. It was from using the mouse so much, which she had never really had to do with the mainframe UI.
Years later, I realize that updating their UI was the wrong thing to do. I could have given them the various reports and stuff without updating their UI. Updating their UI severely decreased their efficiency, even if the mainframe UI sucked to look at and was difficult for newcomers to understand.
That being said, if an enterprise organization has high employee turnover, I think it's better to have a system that's easy to understand and use within a single glance. Those places sometimes have difficulty training their new employees and getting them up to speed. That being said, if employee turnover is high, the company probably has bigger problems.
However - Customization is what every Enterprise asks for. Sometimes they need it, sometimes they don't. Customers and vendors are notoriously bad at picking the difference.
SaaS offerings tends to be militantly "vanilla" with no customization. Customization kills the margin for SaaS vendors. Whatever you think of Salesforce in terms of their tech and approach -- this is the area where they excel.
You can blame the "Enterprise" as much as you like, but these are structural issues.
Salesforce is a great example. My startup (may she RIP) had very intricate sales channels, and we picked salesforce for our CRM because we could customize it how ever we wanted. This was also before the big "SaaS boom", so there were far fewer players in that space. Back then, salesforce was clunky, slow and expensive as hell (I don't know what it's like now), but we could manage our workflow end-to-end, all the way from trade show sales to automagically managing ads and landing page rings. I'm not sure anymore, but I would bet that's something that's still hard to come by.
If I'm running a startup, and I have 100 customers using my product who each have a wishlist, I can prioritize which of those wish items fit best with my product and business vision, without excessive implementation cost or technical debt, and proceed on that path.
On the other hand, in the enterprise, non-technical managers make business requirements that are largely non-negotiable. Product complexity spirals out of control as everyone wants their "pet feature" included, even if it conflicts with other features, leading to massively customizable (and thus even more complicated, to implement that customizability) solutions.
And the vendors that don't accommodate feature requests, lose business to the vendors that do. Survival of the fittest is a cruel master.
Has anyone done any research on the opposite possibility: that most companies simply ossify around the "acceptable" enterprise software when they're newer, and don't so much adapt as die off, leaving room for more recently founded companies that aren't attached to some ancient system?
The difference is of critical importance to someone trying to sell into that market, it's the difference between being Mercedes and Unilever.
Does it potentially contain law enforcement data? Congratulations, your customer needs to implement it in a manner consistent withs its CJIS agreement.
Healthcare data? Hello HIPPA.
Up to a certain size, businesses can pretty much do whatever they want. Then they reach a point or acquire a customer that requires them to start meeting various regulatory requirements.
Ability to comply is a business opportunity. If I make software that contains encryption that isn't FIPS 140-2 validated, I am missing out on a multi-billion dollar market. (US and state governments + govt contractors)
I happen to fall into that camp and much prefer nicely designed Saas products to legacy bloatware but I have been astonished to see time and time again that other people I work with are not of like mind.
I once tried to convert my team to Asana because I love it for personal projects and I naturally expected them to compare it to our current methods and be blown away. I was surprised when it got nothing more than a "meh" reaction and within days it was forgotten. The team actually preferred SharePoint.
This also by the way is a case in point of why it is important to talk to customers before building. Your assumptions about what is best are not necessarily accurate. Small software sells well to small businesses and in a lot of cases small teams, but company-wide (which I think is what we're talking about here) takes a whole different level of sales and influence.
This is a completely different beast than your toy App on your phone.
Right aspiration, but not enough great examples yet.
Mobile Apps are now a huge part of Enterprise Software. Adoption rates are high in the younger people, and lower as the age climbs.
The average age of the people in the vertical (Retail vs. Oil and Gas) have much more to do with the adoption rates than Enterprise Software vs. startups.
There's a lot more I could speak to, but I don't agree with so much of your premise that it's hard to figure out where to focus.
Even the questions aren't clear. Should we focus on ERP/CRM systems as the basis of the question, or across the whole enterprise? They are very different questions with different answers, and adoption rates.
One of my duties is managing my company's backup systems. We use NetBackup, and despite it having a pretty old codebase underneath, it works fairly well. However, its interface is right out of 1998. Usability features you would expect in a modern program are just missing.
Where it shines is in its ability to script/automate a lot of tasks. Users who only use the GUI are surprised to see that their list of annoyances aren't really valid; NetBackup just doesn't put as much emphasis on shiny.