5 ms·
From my personal experience: Enterprise Applications are built by committee. The committee's job is to put as many bullet points on paper as possible. The mo
by mdasen 18y ago
From my personal experience:
Enterprise Applications are built by committee. The committee's job is to put as many bullet points on paper as possible. The more bullet points they've put on paper, the more successful the committee was. The more complicated and long the documentation is, the more work the committee had to do and the more its people should be paid for being able to envision and document a system that is so complicated - without regard for whether that system had to be complicated or not.
Requirements get created for cases that no one knows exist or not. Partly this is because enterprise systems are sometimes thought to be write-once, run for a decade or so rather than systems that will see agile revisions. But partly it's also because, again, it's easier to talk about out of left field problems that will never occur than to actually tackle real problems.
Decisions are made random and arbitrary - but because those decisions are documented, they're fine. So, you want a way of storing that a bank account is closed? Well, we could just have a closed flag on the account when the customer closed it -OR- we could make the account no longer have a relationship to a person, have a zero balance in it and have it be more than 3 months since any activity happened in the account. Yep, that works. Then when a programmer says, but that's not a good way to do that, the question gets asked: why can't it be done that way?
That's the heart of the problem: why can't it be done that way? Of course it can be done that way. It just shouldn't. It's a terrible idea that only an idiotic committee would come up with because the more complicated the solution, clearly the harder the problem (and therefore the more money and adulation they should be paid). If it's simple, they're just doing their work, but if it's hard and requires an overly complicated solution, they deserve praise!
The worst part is that in all of those meetings, you constantly hear "we're building a 90% system" referring, of course, to not tackling outlying cases that may not come up. The problem is that, in the case of enterprise systems, it means tackling every outlying case imaginable while leaving the most common use cases with a terrible interface and sub-par reliability. And the worst part is that most of the outlying cases aren't imaginable so you haven't even solved that.
The problem is what gets rewarded in an enterprise environment and how non-techies see software. Something that is simple, reliable and gets the job done must be solving a really simple problem and took little work, right? In fact, I'm sure many of us have been approached and offered a few hundred dollars to create something just like (MySpace|eBay|Amazon|etc.) because they make the solution seem easy. So, the incentive is not to make something elegant, but to make something that shows exactly how difficult the problem really is - in fact, more difficult than the problem really is.
Likewise, the more features you can write down on a piece of paper, the more impressed your boss' boss will be with what you've been able to accomplish. "Elegant user-interface and code" doesn't take up enough space.
And we're left with crap.
- twoz 18y agoExcellent. Enterprise Applications do seem to defy reality. Could a portion of this issue stem from "the market" being left out of the equation? I guess this would only apply to in-house apps. That said, EA companies seem to do quite well in the market. I guess any committee can pat themselves on the back for finding an "already built" solution that meets (or can be customized to meet) all of their needs. Of course, internal talent must then configure this software monster and build all of those pesky integration pieces to make all of it work. Well after the purchase, you might hear something along these lines: "Why does it take so long to simply configure something that should work 'out of the box'?" This is where marketing meets truth (and runs screaming) and bubbles get busted. :)
- mdasen 18y agoEA companies do well in the market, but markets are far from efficient. Some points: * No one likes responsibility. When an EA company says, "don't worry, we'll take responsibility," managers like that. For some reason, there is no blame assigned to people who choose bad vendors as long as the vendor made good promises. This is one reason I think open-source adoption is slow. Open-source doesn't promise to work. If an open-source solution fails, it's your fault. If a vendor lied to you, the solution seems to be throwing more money at the vendor. But no matter what, you aren't to blame: the vendor is. * Most EA software can't be tested nicely before purchase. You get beautiful controlled demos with sales people who can mold the situation. Excuses for why something can't be done in the demo, but work perfectly in real-life or will be coming in a month are common and accepted. Again, they're promising that you don't have to deal with it. * EA software is expensive. Ridiculously so. Most EA software that we use has annual maintenance fees that rival a salary and still require someone in-house to configure and deal with it. Once you've spent that much money, there is a real drive to build things into it that lock you into it - you want to get your money's worth, don't you? More, there's a huge social-psychological barrier to someone saying, "I'm an idiot that wasted 50 grand and we should really dump what I was paid to choose for something else." Even beyond not wanting to admit you're dumb, you don't want others to know that because if you're not good at choosing platforms, what on earth are you getting paid for? So, the only way to actually switch away from it is to find some excuse about how times have changed and it was good at the time, but not now. Even then, why couldn't you have foreseen that this company wouldn't suffice long-term? * And finally, by the time enough time has passed to make one of those excuses, you have too much investment in the old system - whether that be training, data, lock-in, etc. Think of it this way, you shell out $100,000 for a system with $75,000 in annual maintenance/support and sign a two-year contract. You get the system and it's quirky, but you've paid so much for it and are determined to use it. You find out over the next 3-4 months that it's just terrible: the sales people outright lied, you didn't investigate what really needed to be looked at, and it's just terrible for what you need. But you need something now so you pay the company $20,000 (in addition) to build a bit of custom thing. At this point, you definitely can't switch before the 2 years are up (or you've just wasted $270,000 which you will have to explain). Plus, by the 6 month period someone in your company will have found one random thing that they will never let you hear the end of if it ever works slightly differently. It's a terrible "feature" that no logical person would want and would be incredibly difficult to duplicate and so you now have even more resistance from outside IT. And you can always defend the system as "the cost of doing business" and any shortcomings are the vendor's fault, not your shortcomings (whether or not you should have been better at choosing a system). Markets are powerful, psychology and ego can be more powerful ;-).