Enterprise software is crappy and it isn't going to change any time soon

Enterprise software is crappy and it isn't going to change any time soon

Summary: What started off as Bill Gates wondering why Enterprise software can't get some blogosphere love and attention has turned in to a raging debate on why Enterprise software sucks.  First Robert Scoble chimes in and asks why enterprise software isn't sexy, then Michael Krigsman says Scoble doesn't understand enterprise software, then Nick Carr says Krigsman is the one not understanding, and then it goes back and forth.

SHARE:

What started off as Bill Gates wondering why Enterprise software can't get some blogosphere love and attention has turned in to a raging debate on why Enterprise software sucks.  First Robert Scoble chimes in and asks why enterprise software isn't sexy, then Michael Krigsman says Scoble doesn't understand enterprise software, then Nick Carr says Krigsman is the one not understanding, and then it goes back and forth.

Of course everyone is generalizing here since "enterprise software" is a huge category of software that encompasses many things and many aspects so there's probably a lot of talking past each other going on.  This is a classic case of the more technically oriented Krigsman giving perfectly good reasons for the state of enterprise software and the user oriented Scoble and Carr saying I don't care why it sucks just fix the damn thing.

These are all valid points but it's kind of like asking why business computers don't come in rainbow colors like the iMac and why the business suit is so boring.  So now I'm going to chime in on this discussion based on my experiences on the front lines of IT.

  • Enterprise software generally has lower usability and more bugs than commercial software.  That's sort of counter intuitive to the word "enterprise" but the name is a joke in IT circles since enterprise software is typically painful.
  • Enterprise software is designed for and sold to IT departments so the expectation is that you have trained people supporting the software whereas commercial off-the-shelf software has to more or less be self explanatory.  Enterprise isn't sold to the end user and the end user doesn't sign the check so their considerations are secondary to enterprise software makers.
  • Enterprise software requires a lot more interaction between multiple systems which makes it fundamentally more complex to develop, deploy, and support.
  • Enterprise software also typically addresses a much smaller user base than off-the-shelf software like Microsoft Office so the development budget to user ratio is smaller.  This means programming shortcuts like Java are often taken which makes the software horrendously bloated and inefficient.  You're not going to see enterprise software developed in light-weight C++ like MS Office any time soon because that level of skill is too rare and difficult and expensive to acquire.

There are exceptions to the above rule for major ECommerce sites.  Those sites are basically purchase/payment transaction systems that only require a simple web interface that doesn't really require business-specific customization.  The back-ends are very complex but they're hidden to the user.  The front-end user interface must generate minimal support issues or it wouldn't even fly since there's no feasible way to support a million users.  Even though ECommerce is a form of enterprise software, it's a completely different animal than something like SAP or Siebel.

But when you add up the number of users between the various businesses using a enterprise software, it's substantial so it's perfectly reasonable to ask why it needs to be so bloated, buggy, and hard-to-use.  I think part of the reason this is the case is because there isn't enough light (media coverage) on the shortcomings of enterprise software.  If all the dirty laundry was aired more frequently like all of Microsoft's shortcomings which are few by comparison, enterprise software vendors would be forced to spend more money on quality.

But Robert Scoble hit the nail on the head when he explained that enterprise software stories don't bring in the CPMs (ad revenue from one thousand page views) because the general public has little interest in enterprise software.  So at the end of the day they're all right in their own way but not much is going to change.  The users will continue to complain that the software is too complex, the IT guys will sometimes complain but bear and grin it because it's job security, and the enterprise software will continue to sell because it more or less works and there's a massive sales force to propagate it.  Is that too cynical?  Probably but it's unfortunately true.

Topics: Software, Enterprise Software

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

118 comments
Log in or register to join the discussion
  • terminology

    A lot of enterprise software *is* commercial-off-the-shelf software, or at least COTS with customizations.

    You're really talking about shrink-wrapped software vs enterprise software.

    But other than that, a much more sane analysis than what others have said.

    Iterestingly, none of them have really addressed the question of why people don't blog more about enterprise software. They're just running with Scoble's idea that it is because it isn't sexy.

    I think there are other reasons.

    http://erikengbrecht.blogspot.com/2007/12/why-isnt-enterprise-software-sexy.html
    Erik Engbrecht
    • Actually, scoble was right to blame lack of coverage on lack of CPM

      Actually, scoble was right to blame lack of coverage on lack of CPM. When you write about enterprise software, the eyeballs and thus the $$$ doesn't come.
      georgeou
      • CPM versus sexy

        He's asserting (or proposing) that it has a bad CPM because it isn't sexy, and that there is a lack of coverage because there's no money in it.

        But there's a lot of good information in blogs that people write "for fun" or for "professional development" as opposed to earning money. Honestly I think there is more solid, useful information lurking in unpaid blogs. Paid blogs tend to focus too much on generating controversy and too little on content.

        If CPM were the primary problem then I think you'd see a lot more unpaid bloggers talking about enterprise software, but a lack of paid bloggers. That would indicate that there is an insufficient market.

        But the situation is that blogs on the specifics of enterprise software are almost entirely missing.

        There are a lot of people working in enterprise software. There should be at least a couple people making a little side money from AdSense by blogging about the enterprise applications that they support. Or consultants trying to build up a reputation. But it's simply not there.
        Erik Engbrecht
        • Or, that they're all very busy.

          [i]If CPM were the primary problem then I think you'd see a lot more unpaid bloggers talking about enterprise software, but a lack of paid bloggers. That would indicate that there is an insufficient market.

          But the situation is that blogs on the specifics of enterprise software are almost entirely missing.

          There are a lot of people working in enterprise software. There should be at least a couple people making a little side money from AdSense by blogging about the enterprise applications that they support. Or consultants trying to build up a reputation. But it's simply not there.[/i]

          The work to do is on customizing those monoliths to interact with existing systems, work that varies too much to support blog-style discussion. Also, there are very few potential customers for those products, so an open forum would be irrelevant. The makers of enterprise software can get all the customer feedback they want on the golf course.
          Absolutely
    • Also, perhaps I should have said "shrink wrap" software

      Also, perhaps I should have said "shrink wrap" software rather than "off-the-shelf".
      georgeou
      • Close enough.

        He was able to guess at your meaning, correctly.
        Absolutely
  • Java is the front end bloat

    Java is the front end bloat and it is a programming shortcut in the sense the developer doesn't have to write as much code.

    As for database performance, it's actually not the network or the application. It's usually disk IO performance that's the biggest bottle neck.
    georgeou
    • The big enterprise software isn't written in Java anyway

      Oracle Applications is mainly Forms and PL/SQL.

      SAP is ABAP.

      Forms generates Java, to be sure, but this is using Java in the correct way; as a systems programming language. Java is wholly unsuitable for commercial application development.

      Writing application code in pure Java is only a tiny step forward from C++ in terms of productivity (though the end result will be more reliable).
      jorwell
      • Speaking of Oracle...

        I don't mean this to come across as a rant-just as input to the discussion. George and others say there seems to be a lack of feedback from customers of these kinds of software; so here goes.

        I didn't actually work with Oracle at Eaton Corp., because I was on the G code end of industrial production. In one major incident we completely lost 500 factory orders on the Oracle database and it was totally unrecovered disaster. The end users at that plant never did seem to get a grip on how to effectively implement that supposedly powerfull data base.

        I think it put us behind on production on more than one occasion. Do you think this is more or less a side effect of the complicated science of "just on time" logistics in manufacturing?
        JCitizen
      • Actually, a lot is Java, but as for C++...

        There are an awful lot of J2EE business applications out there now, and increasingly the underlying middleware software is being written in Java.
        However my comment was rather to be around C++: whilst it might have merits in good application being leaner and faster, one thing it absolutely does not guarantee is that your enterprise software will be any less crappy ! A good C++ coder will write great code, but most coder are around average, and average C++ code is not good !
        zd1@...
    • So you agree C++ would make little difference

      There is no way that writing the application in C++ would make the DBMS write to disk any faster.
      jorwell
      • Again, I'm talking about the frontend

        Again, I'm talking about the frontend. When I say bloated java applications, I'm talking about the frontend. When I talk about slim software, I'm talking about uTorrent http://blogs.zdnet.com/Ou/?p=153.

        Nobody writes a an enterprise DBMS in Java anyways so I don't know why you would even debate this.
        georgeou
        • I would question

          Whether application specific client software is needed at all for ERPs.

          However, I don't want to give too much of the game away at this stage, you'll have to work it out for yourself.
          jorwell
        • George is on drugs again...

          Contradicting himself left and right in his own talkbacks, changing his definitions on the fly so as to always avoid being wrong, and generally jacking up the English language and inductive reasoning in the process.

          First he complains about enterprise software. Then he says Java is to blame for it being bloated. Then he says Java is irrelevant, and it's all about disk IO. Then he says by "Enterprise" he really means some sort of desktop client application, which is of course, utterly trivial when one is talking about ENTERPRISE software, that runs on big iron.

          When people call him out on his stupid shenanigans, he just changes the story as fast as he can.

          George is a master of using deliberately ambiguous language so that when someone rightfully calls him out on his ignorance, he can simply shift the definitions a bit and claim that's what he meant all along.

          Congratulations George on yet another column filled with random gibberish and links to other people's blogs who actually know how to write. Perhaps you should skip the whole "writing" part and just post links.
          bmerc
          • Another of George's stalkers is on drugs again.

            [i]Contradicting himself left and right in his own talkbacks, changing his definitions on the fly so as to always avoid being wrong, and [b]generally[/b] jacking up the English language and inductive reasoning in the process.[/i]

            I've noticed a distinct pattern among you and the other George Ou-haters; overuse of generalization.

            [i]First he complains about enterprise software. Then he says Java is to blame for it being bloated. Then he says Java is irrelevant, and it's all about disk IO. Then he says by "Enterprise" he really means some sort of desktop client application, which is of course, utterly trivial when one is talking about ENTERPRISE software, that runs on big iron.[/i]

            He did comment on some of those topics, but he did so with much greater care to the context of his remarks than you haters.
            Absolutely
      • C++ has other issues too..

        Ever seen a blue screen or had a memory segmention error? Hanging pointers and memory leaks are a bit of a problem with C++. I admit that if you are an experienced developer these are minimal but they drive up the cost in enterprise software and when the systems typically change a lot for new business rule accomadation a solution like Java is somewhat more attractive. And the overhead is not that visible to the user.
        ja4509
        • Java has other issues too..

          These aren't issues with any programming language they are issues with the care and experience of programmers. Java doesn't help at all. It used to be a simple language. Now it's gotten much more bloated and complex. All the hype about Java has turned out to be hot air. Meanwhile C++ hasn't stood still. It's gotten much better over the last 10 years. Java isn't just a language, it's a programming application [i]environment[/i] that has theoretical portability and programmer efficiency (writing less code) over C++ but also has performance and "lowest common denominator" programming issues that C++ application frameworks deal with much more readily. Java is an example of trying to do software development on the cheap. I heard one very well know Java expert call it "the next Visual Basic". It turns out not to be so cheap in the longer run.
          PMDubuc
          • The problem is not with

            the language itself, but how it is used. IMO it's a mistake to think that you can have one silver bullet language to cover everything. The old way of having languages developed for specific areas of application is better. Cobol was developed for business apps and Fortran for scientific. Java and .Net is useful for writing code that is portable across platforms. C/C++ are good for writing high performance apps where speed is more important than cross-platform portability. PL/SQL or T-SQL are excellent languages for performing database operations.
            Cobol is excellent for transactional and batch processing.

            The problem comes in where programmers try to use the same language to do everything. It often leads to bloated and inefficient code simply because the language was not designed to do what they are using it for.
            alaniane@...
          • You sir...

            Are a scholar and a gentleman. I'd doff my cap to you (if I owned a cap).
            ego.sum.stig
    • Java is not bloat

      in of itself. However, when programmers only understand Java or C/C++ and have no idea how to leverage SQL, you get poorly written database apps. SQL has been optimized to perform database operations efficiently; however, I have seen many database apps that use SQL for little more than returning the entire table and then the summarization is done in the app itself. Also, cursors are used far more frequently than necessary. Cursors fail to make efficient use of the indexing in databases. Basically, a cursor is little more than a loop through the entire dataset.

      Also, the slowest component in the hardware is the network cable. When you transfer large amount of data from the backend to the frontend for processing, you are going to get a slow app. Another problem with many Enterprise apps is that they are still treating RDBMS as filesystem databases. It's not the matter of just Normalization versus Denormalization; it's also the matter of lack of relational integrity. Our Enterprise accounting software is a good example of this. A lot of work went into the frontend app and making it look nice; however, the backend database is a mess. The design is absolutely horrid. There is little to no relational integrity and trying to pull data from the tables for custom reports is crapshoot. Some of the queries, I have had to write contain lengthy case statements to take the data out of horizontal format and then convert it to vertical format so that it could summarized. So instead of just writing:
      SELECT SUM(sales) FROM tblProducts WHERE year = 2007
      I have to write
      SELECT SUM(jan + feb + mar +...+dec) WHERE year = 2007

      For SUM its not too bad; however, when you need to Average the data, you have to go through loops trying eliminate the extra zeros.
      alaniane@...