Why enterprise software is so shockingly bad
For the past few years, we've talked about the "consumerization of IT," which was a polite way of saying, "Enterprise software stinks and should be made easier to use."
I've rarely seen as concise an explanation of why enterprise software is so bad as this one by Michael Nygard on his Wide Awake Developers blog.
Nygard points to a troubling intermediation between the users of software and developers of software, offering four ways in which this is expressed:
- "They serve their corporate overlords, not their users." This is one of the problems I have with IBM software: it seems to be written for the CIO, not the people that actually work at the CIO's company. In other words, powerful central administration with end-user ease of use is forgotten. (Not that IBM is alone in this--it's just that I'm having flashbacks right now to when I was forced to use Lotus Notes.)
- "They only do gray-suited, stolidly conservative things." Simply put, enterprises too often get stuck in the mind-set that they employ a bunch of drones whose work consists of filling out expense reports. The real work is the creative interaction between employees, but it's the consumer Internet that has been tackling this problem, even though enterprise IT could most benefit from it.
- "They have captive audiences." Nygard doesn't offer much explanation here, but I take it to mean that enterprise software developers can get away with foisting lame software on the world because the competitive bar is so low. "Our piece-of-junk ERP system is not quite as junky as our competition's" seems to be the winning argument.
- "They lack 'give-a-xxxxness' ". Nygard identifies this as the most important characteristic: the love a developer has for her software and its application, and thus the time she spends making it sing. This hearkens back to the previous principles, however, in that it captures the apathy enterprise software developers may have for their products because they're writing for CIOs and cash, not users and public plaudits.
If this rings a bell, then what are we to do about it? I don't know. So long as the first order of business is security and administration, often taken to wacky extremes, rather than creativity and user-friendliness, it's unclear how anything will change.
Perhaps this is a generational shift. Just as President Obama chafed at having his BlackBerry pulled, perhaps we're entering an age where a new crop of CIOs will arise that demand that ease of use be as important as security, for example. It's not a matter of scrapping the "enterprise" in "enterprise software," but rather of shifting the argument to insist on considering enterprises as agglomerations of people, not droids.
And perhaps, just perhaps, open source can make things better by blurring the lines between developer and vendor, and developer and user. We can hope.
Follow me on Twitter at mjasay.
Matt Asay brings a decade of in-the-trenches open-source business and legal experience to The Open Road, with an emphasis on emerging open-source business strategies and opportunities. Matt is vice president of business development at Alfresco, a company that develops open-source software for content management. He is a member of the CNET Blog Network and is not an employee of CNET. Disclosure. You can follow Matt on Twitter @mjasay. 




I am sad to say that the effort/skill of the sales force often has more to do with the number of sales then the ease of use of the software.
Most ?enterprise software? is very complex because each customer (enterprise) expects the software to work the way they work, so the software must have a 101 configuration settings for each function to keep the enterprises happy. Very quickly you get to the stage that on one person can understand the complete system.
As for the pressure form the sales team - this is another serious drag - too often sales people run back to the developers and say "this potential client says they'd be all over this if it only did these three things that are completely at odds with the underlying premise of the application. I told them you'd have it done next week. That's cool right?"
The only caveat I would pitch up is that it would be impossible to cover all the different custom needs of various industries. Health Care is not Steel Manufacturing, nor is Automotive Sales anything like Aerospace Engineering.
OTOH, instead of all the complexity, why not make it simpler? Much of what Matt is talking about includes things like 'tribal knowledge', basic communications tools, and things that do have universal usage. Any decent CMS can handle these things.
It's not like it would be impossible to build something useful - you take a core of common tools (wiki, calendaring/PM , file storage, etc), and build plugins that appeal to industry niches and/or specific needs. Sort of like how TikiWiki, MediaWiki, TWiki, vBulletin and the like are built today, but with a more business-oriented approach.
The trick is to keep it open and cross-platform, using standard/open protocols as your primary guideline when constructing it.
(I would say SharePoint, but as mentioned, I want to keep things cross-platform without any OS/app-suite lock-in. This way you can maximize your flexibility in-house).
Seriously, I think a lot of the lack of ease-of-use issues exist because enterprise developers were simply never exposed to good software design on the Windows platform. So, many times they just replicate the bad design and interactions that are inherent in the Windows operating system without giving it a second thought... after all, that's how computers work, they think.
I can say this because there is a similar dynamic that makes 3D/CG software a raging PITA... when it comes to software design and/or specification, you have to know your target audience. It's all well and good if your product is technically superior , or has more controls and subtleties than Darth Vader's bathroom. OTOH, if the end-users find it clunky, unusable or frustrating, then your product is going to suffer regardless.
Case in point: Blender is a kick-arse 3d modeling environment that costs nothing, yet rivals 3DS Max and Maya in the things that a skilled user can do with it. OTOH, the interface is maddening, frustrating, and has a learning curve with the approximate angle of a brick wall.
Useability and interface design takes experts - hence why we now have MS Expression and MS Visual Studio and Adobe have a similar product setup - and experts equals money.
The people in charge of governance in corporates cannot easily measure the ROI for working twice as long on the transparent fade out effect of a section of a screen. If they are not selling the product, then as long as it performs is basic function with minimal directly costly bugs (accounting maths etc.) it will suffice. And when you do get a frustrated creative trying to work on these features, they're soon slapped on the wrist.
To keep costs down, corporates follow Test Driven Development which is the art of doing just enough to tick a box and nothing more.
Enterprise developers don't have a portfolio to show off either.
After a few years, any creativity dies, like how the naturally gifted high-school fashion designer loses it after a decade in banking. So they unlearn and then recycle as the corporates employ only people with enterprise experience.
I guess this is why corporates pay so well.
As a side note, blaming it on Microsoft is a typical response from the low IQ brigade that seem to be ruining the web. Its like blaming the English for a really bad movie because, afterall, they made the language the script was written in.
Compounded with that is the fact that most medium to large enterprises now require extensive CYA documentation for any software development effort and you further limit already limited time to provide exceptional software design beyond simply fulfilling the letter of the spec.
Next time, at least read the article title before commenting.
Most things in this life are "good enough" -- and no better. (Have you noticed?) The most successful restaurant in the world, McDonalds (the IBM of food), produces food that few would call gourmet. And yet they're the industry leader.
Another thing to bear in mind is that you don't make many friends when you call point out that something is crap. And yet, I'm a believer in calling crap crap. That's why I do what I do for a living (analyst at CMS Watch). But it still gets me in trouble.
And enterprise software is still (largely) crap.
Then there is the vendor, if they are software salesman and don't understand your business they can't help you much. Qualified or lack there of vendors are often the culprits.
There are 1000's of packages out there each one has its strengths and weaknesses, no one package is perfect for anybody. Picking the right one is half the battle. If you have picked one that can be customized, save some of the budget for streamlining process, it will be money well spent.
1) Little competition because once some big company gets talked into such an app, other companies just follow because some big company uses it. (And we all know how smart big companies are.... right?)
2) (kind of in the article points) The apps aren't designed for users but for IT departments. I can't tell the number of times the IT departments in big companies make decisions based on what is best for themselves, not the 'customer' which is the user, or what is overall best for the company.
1) Little competition because once some big company gets talked into such an app, other companies just follow because some big company uses it. (And we all know how smart big companies are.... right?)
2) (kind of in the article points) The apps aren't designed for users but for IT departments. I can't tell the number of times the IT departments in big companies make decisions based on what is best for themselves, not the 'customer' which is the user, or what is overall best for the company.
1) Little competition because once some big company gets talked into such an app, other companies just follow because some big company uses it. (And we all know how smart big companies are.... right?)
2) (kind of in the article points) The apps aren't designed for users but for IT departments. I can't tell the number of times the IT departments in big companies make decisions based on what is best for themselves, not the 'customer' which is the user, or what is overall best for the company.
- by daftkey February 24, 2009 12:21 PM PST
- Nygard's explanation, while concise, is pretty typical of a programmer. Like most programmers, he has an idea what the perfect world would be like, laments that he doesn't live in the perfect world, and then blames the people who tell him how to do his job for the fact that the perfect world doesn't exist. As such, he, and you, miss the obvious:
- Like this Reply to this comment
-
(21 Comments)The reason enterprise software is "so shockingly bad" is because, more than any other type of software, it has to be built with constant compromise:
1) Buy vs Build compromise:
- You can have an out-of-the-box solution that serves 50% of the business exactly. For another 30%, you handle that through process and security, the last 20% of the business requires a customization or two, but they work. For this compromise, you get relatively low implementation risk, and usually a fairly robust system, but it often feels like shoehorning the data sometimes to the users.
- You can have a mainly custom-built system that fits with the business really well, and it can be a dream for users to run, but you tend to sacrifice scalability, and you take on enormous risk.
2) Security compromise:
- You can have a system that's wide open for users to enter data without too many dialogs getting in the way or too many windows, or too many fields locked out, but then you run into a number of problems, the least of which is Garbage-in-garbage out. For a small organization, this isn't so bad, for a large organization it can be disastrous.
- You can lock down the system so it's a pain for users to use, unless they correctly dot their i's and cross their t's. It will slow them down, but the data in the system will be reliable.
3) Legal compromise
- Your software can have the proper checks-and-balances and separation of duties, can require a process for correcting mistakes so that an audit-trail is created, and can force data entry transactions to properly conform to accounting standards. For this, your business gets to become publicly traded OR
- You can have the software work exceedingly easy, make mistakes as easy to delete as deleting a paragraph in a word document, and you can let your payables clerk create vendors, enter transactions, and print cheques very easily, but have to endure a hugh fraud risk (and not be allowed to trade on the stock market).
- Decisions of which scenario to go by, what needs to be customized, how security is handled, and what processes to manage all need to come from somewhere. Yes, this will be the CFO and the CIO who, hopefully, have a fairly rounded idea of the requirements ofthe entire company. That's their job. The success of the resulting system reflects the quality of these decisions.
It's easy to blame the software and the vendor - I agree that "captive audiences" and "lack of competition" lead to stale software design - but in most cases, enterprise software sucks mainly because the people implementing the software had to make some compromises to make it fit - more of that blame rests just on "enterprise" itself.
Case in point - your use of Lotus Notes was a nightmare. My use of Lotus Notes is a dream - in fact Lotus Notes alone is the reason my company was able to survive a massive disaster without any downtime (the loss of all our servers in a flood). In both your bad case and my good case, it was most likely the team implementing the software that made all the difference, and not anything to do with the software itself.