Business Software Needs A Revolution
An anonymous reader writes "According to a Businessweek Online article, today's high-end business software is bloated, buggy, and too expensive - no surprise to those of us who have paid our bills by adding pointless features to some piece of software arbitrarily priced at $100k. Evidently, firms are now re-evaluating their software purchases, and finding that they're not working out the way the sales guys told them they would."
There are some good points made in this article. Working at a
software company, there is quite frequently an incredible amount
of pressure to get new features in as quickly as possible.
However I don't think that phenomenon is ever going to go away.
To a certain extent there is market pressure to add new features
to your product, people always want the new bells and whistles.
There has been a tremendous market pressure over the last decade
to add bells and whisltes over bullet proofing your code.
Perhaps there will be some pressure now towards bullet proofing
your code, but until customers stop demanding more features and
start demanding quality code, software won't change.
There are some companies out there (M$ being the prime example)
that don't add much in the way of new functionality, but rather
repackage things, move buttons and menus around and make the new
incompatible with the old. At the same time they only fix
certain bugs, but leave others alone. Yet people buy their crap
at record rates.
I think most developers would love to see a move towards
software quality rather than software features, but until the
market dictates that as a priority it just won't happen.
Doug Tolton
"The destruction of a value which is, will not bring value to that which isn't." -John Galt
Marketing speak does not translate to real world performance.
Seems to me that if I was spending 100K plus on a software package (or system) I would test it first to make sure it fit my needs, as opposed to listening to a marketing drone...
So rise up, all ye lost ones, as one, we'll claw the clouds.
They lie to their developers when they say 'All we need is this one feature to make customer 'X' happy'.
They lie to their customers when they say 'And this feature our developers just put in will make your life easier'.
The hell of it is that when developers put in 60-80 hour weeks coding bloat features, the salesmen are the ones who get bonuses for making a big sale.
The problem here is not so hard to see.
The next Slashdot story will be ready soon, but subscribers can beat the rush and slashdot the links early!
I'd love to see a survey of how many people use the huge number of convoluted and complex review and version features provided by Microsoft Word. The addition of these feature seems to represent the only major change from one version to the next of this microsoft suite, nowadays...
You mean the Sales and Marketing department oversold the capabilities? Say it isn't so. On a former project, we needed to emulate a remote system for some testing. We wrote some code that responded for that system, as it was expected to, so that you always got the answer you wanted from it. It was affectionately called the Marketing Server.
I've wondered for a while what the point was. For the price of some of these packages, you can hire 2 developers (or more!) for a year and get them to code an application that does EXACTLY what you want. As long as you stick with a fairly standard architecture and document it well it should be just as effective. Using components that have already been developed (such as various jakarta subprojects) can really speed projects like these and make them worthwhile. Most importantly, it is custom tailored for your business.
Where's my lobbyist? Right here.
is bloated, buggy, and too expensive
Software has been following this general trend for years now (except the too expensive part). I know this is like the "when I was your age I had to walk 50 miles in the snow up hill to school at 4am" kinda whining, but I'm going to do it anyway.
Fact is, other than watching video files and ripping cd's, why is it that you need an OS that requires more RAM than you had HD space years ago for. If you map computing oomph (mips, ram, hd, video speed/resolutions) and software functionality (say on the y axis), you'd end up with an incredibly dissapointingly near flat line. With as much horse power that we have today, we should be able to create nearly bug free software because of all the majorly powerful development tools that put all this power to good use. Instead, we have majorly bloated development tools (Rational Rose et al) and environments that focus on letting people make pretty but ill conceived ui's and make a half hearted stab at helping to improve code.
Bah, humbug.
One of the key problems is that software vendors think that they should continue to add more and more features. Each time a software vendor solves some little bullshit problem for one customer, they decide to throw it into the next version resulting is feature creep. This might be kind of cool for the geeks but it sucks for most users, especially the typical users of the software. As most of us know, as you increase the number of features, you increase the complexity. As you increase the complexity, you decrease the usabilty. Thus, paradoxically, as you help some people you hurt a lot of other people. Stated another way, the harder these vendors try to help users the more they hurt them. Usability just keeps dropping.
How to Download YouTube Videos
> finding that they're not working out the way the sales guys told them they would.
ok 2 old jokes:
Q: what's the difference between a used car salesman and a software salesman?
A: the used car salesman knows when he's lieing.
Q: how can you tell if a software salesman is telling a lie?
A: his lips are moving.
A bit off topic, but related. I got tired of trying to find a really decent store suite for e-commerce. Most of the ones which did what I needed cost hundreds to thousands of dollars, and would require additional licenses as more features or bugs got fixed and made a new version release. Going from version 3 to version 4 would be a $200 upgrade, or buying the package to include coupons would be $150.
The free or low-cost solutions did little, were hard to use, and were buggy as well.
So people really had two options. Pay plenty for good software that they would have to continue paying if they wanted to keep up to date in modules and features, or pay little or nothing and get software they would have to invest additional money into making work how they need.
So, like those before me in the free software world, it made me start my own software suite for e-commerce, to be released free under the GNU GPL license, because I would already need it for my site, so why not give it to those already in my position.
I think this is where business software will be going. A small company or a programmer will find that there is a need for a software package or suite. There will be two options, expensive lock-in software or cheap hobbling software. They will probably decide in this economy it will be easier to either build off FSF-approved-licensed software to make it work how they need, or just build their own.
I'd love to see this option work out well. An alternative to Peachtree/QuickBooks for all platforms that is XML based. Linux-based POS software for stores. Inventory management and shipping database applications.
Why spend $100,000 on such a suite when you can just build off a free project, or start your own using the knowledge you already have with the suite you couldn't get working how you wanted, open it up and reap benefits from servicing contracts and support to other companies in similar situations.
Or am I just dreaming?
Human nature is the same everywhere; the modes only are different. -- Earl of Chesterfield
Analysts estimate business-software customers spend $5 installing and fixing their software for every $1 they spend on software.
.75 FTE for a Unix Admin for on-going support. This is about 5 times the need of any of our other Unix servers, and makes me wonder how much care & feeding the system will require just because of the buggy application. From my observations, the numbers quoted in the article for fixing software don't look high at all, and may in fact be too low.
The management mindset of "do it right now", as opposed to "do it right" is costing them more in both the short- and long-term. Until prevailing attitudes are changed on the part of those making the purchasing decisions, software makers will still have little motivation to change.
My employer is looking at a $1 million+ project for HR automation. $40k of that is for the unix server, the rest for software and "services". And this was, supposedly, the best software available. The vendor also recommended a
To be honest, at least 50-90% of the cost of big software packages goes into maintaining another company, paying that company's CEOs and sales staff, paying for first level support people to misdirect your call and other things that are, to a great degree, unrelated to the quality of the software you're getting.
Think about it: for $100k, you can get package X, which does half of what you need it to do in some areas and twice what you want it to do in others. Or, you can hire me & my buddy Josh for a year. We'll write you a custom piece of software integrating open source tools, work right along with your employees and give you all the code and a support contract for XxX hours over the next YyY years.
If there's an OSS package that already does most of what you need, you can probably hire their developers to customize it for you quickly and at a very minimum expense. You don't even have to tell anybody about your custom code, unless you intend to release the binaries outside your company.
And of course, if you can get three companies that need a similar piece of software, you can invest in a small business that does exactly what you want and split the cost. That's how my friend's firm works...the bills are paid for by the big guys, and anything they sell on top of it is a bonus. As a result, their rates are 1/2 to 1/10th those of their pay-for-our-big-name-CEO competitors.
That's your software revolution: customization, adaptation and competent small businessmen. And it's already happening.
Hey freaks: now you're ju
I'm sure you would, and I certainly would. Unfortunately in the corporate world these decisions are too often made, for "non-technical reasons" [1] by people who lack this apparently simple insight. I've seen too many inappropriate purchases made, of over-priced, under-functional software and systems that looked like it did what the purchaser thought he wanted, but in real life failed to do what the company acutally needed. Or had prohibitive costs. Or...
And I don't believe that my experience is particularly unusual.
[1] don't ask :-(
Paul "Say no to feeping creaturism"
It has imprecise layout options.
It second guesses your decisions.
It is ginormous for what it does.
It has encouraged use of Bold, Italics, and MS Comic Sans
It sucks CPU cycles like a 40-dollar whore.
It indexes every last damn file on your PC.
It saves information that you really don't want distributed in every file.
It has an annoying mascot.
It has been ported to mac.
It is used by mac users.
It gives you hell whenever you don't want to save as a
It is far too expensive.
It has too many features.
It encourages use of MS Comic Sans
and...
It encourages use of MS Comic Sans.
Thanks.
Marketing people overstate the usefulness of their products in order to sell them.
Wow.
It is because software is supposed to bend to the will of the user, not the other way around. And that is why software is so feature-laden, so mandatorilly configurable.
If you wrote yourself a business app without configuration, you are dictating to your customers exactly how they will do the business they intend to use your software to do. That's great if your customer either does not do business in this area yet, or if they already do business the same way you expect them to.
But guess what! 99% of the target customers out there do or will want to do business differently!
For example? Let's pick something we can all agree on: source code management. Now how are we going to do business? Every shop will have a subtly different answer.
And that's the problem. Customers frequently don't know how they do business, and forcing them to articulate their current processes leads to them facing this unpleasant truth. Sometimes they tell you the wrong thing. Sometimes they deliberately tell you the wrong thing.
Sometimes management gets wind of all these neat metrics that the new system will be able to measure, and those get tacked on to the requirements sheet.
Sometimes there comes a requirement to seamlessly interface will all these legacy systems. Oh, and seamlessly sort, classify, access, and audit all the legacy data too.
You get the point.
The comparison with the auto industry is similarly bogus. The auto industry has a sharply restricted list of top level suppliers (Ford, GM, BMW), has the infrastructure to provide all routine supplies (like computer units, replacement hoods, etc), has a universal interoperability standard (the road), and a standardized operator interface.
Until the requirements for Business Software becomes simple and universal, the software fulfilling those requirements will never be either simple or universal.
you should read everything on the internet as if it had "but I'm probably talking out of my ass" appended to it.
The big business app vendors have mastered the buzzwords to impress the CxO's and boardrooms into believing they solve the problems. After all, if FORTUNE 100 software company whose software is used by everyone doesn't fix the problem, who can? The evaluators are shut off because the sale is predestined by the owner.
I saw this happen when my company evaluated a $2 million package by Big Software Company X and went away saying no way in hell. Then it came down from above to look into it, and $4 million and 2 years later it's still not done. The problem is, any project with that much money, and the big names on it can't (by definition) fail. So more money, more time, more frustration.
Of course, it's easy for someone so close to the implementor level to see it as management's fault. They turn around and see it as the implementors' fault for not doing it properly, since it works everywhere else so well.
They overruled the mechanics and bought the Jaguar, and don't want to look foolish and admit to the neighbors it's always in the shop. Articles like this are a positive sign though...
There's enough blame to go around to everyone in the enterprise software rip-off game:
* Buyers for not even applying common sense to outrageous claims
* Software companies for overselling and underdelivering
* The press for pandering to the software companies for ad $$$ a the risk of their readers
* Consultants and IT managers for using buggy implementations as job security
Shame on all of us.
-- $G
The Sprint PCS Vission support person told me to powercycle my phone when I was having connection problems. This was to flush the buffers and cache. They said that this is a common problem with all software and said that even Microsoft Servers have to be rebooted every few days.
If we hold companies' feet to the fire and and be demanding, they may change when we start demanding refunds for buggy software.
No bugs is good bugs!
Fight Spammers!
It's that same question ALL OVER AGAIN.
o r comparable methods)
Software sucks because there is no demand for quality software - hence software vendors do not need to implement internal engineering processes which could ensure that the software is good (to a degree).
The problem happens when you get into the Enterprise "space", where companies are accustomed to spending huge amounts of money for products that are engineered to be bulletproof.
Then they settle for products which were coded the same way consumer companies coded their freeware.
Here's how to solve this problem:
Company X claims they sell "unbreakable" software.
Their software breaks.
They get their asses sued off, or handed to them by their competitors. **IF** their competitors use an engineering process to write their software, and IF they can show that process, and prove it to their customers that they use it, and show, with numbers, how it helps.
In other words, act like a REAL software company, instead of just another dotcom trying to make a quick buck before another dotcom is tricked into buying them.
What do I mean by "engineering process?"
http://www.sei.cmu.edu/cmm/cmm.html
(
Yes, it costs a LOT more to do these things. But they work, and should be a great selling point for people buying software. Unfortunately, the main reason we had a "computer revolution" in the 80's and 90's is because software was so cheap to produce - because it was being written, compiled and shipped. Not engineered.
If there was a demand for quality software, then it would be worth it for a software vendor to use these processes to ensure quality. And it would be profitable, because they could charge a lot more. Some vendors DO this, and get their asses handed to them by other vendors who do not. Which brings me back to the original problem. STUPID CUSTOMERS.
So, stop whining about sucky software.
Stop spending money on software in the "Enterprise" price range, without knowing that it is, in fact, Enterprise quality.
Stop listening to Gartner Group and other ANALists. Stop reading lame trade rags. Their corruption is what allowed this market to degenerate and devolve to the state it's in today. Their job was to educate responsibly, and they failed miserably. But they did make a lot of money from SUCKERS along the way.
These are my friends, See how they glisten. See this one shine, how he smiles in the light.
I've been a software Product Manager at some of the biggest software producing companies in the world since 1995. I'm the guy an awful lot of you coders seem to dislike so much. You know, the one always asking for just one more feature to be squeezed into the release, and, oh, can we get it two months early?
There is great truth in this article, and a great lie. Software companies publish buggy, bloated product all the time, but not because it's fun and not because we marketing weenies think it's such a good idea. It's because that's what the market wants. The idea that customers are asking us to stop is a load of crap created by journalists looking to write about the latest backlash.
Sure, as the article points out, Oracle 11i was bug-ridden, but how many millions did Oracle make off it? Claiming a 11% drop in revenue in 2002 is just a tad misleading--who *didn't* see a drop in revenue in 2002? Didn't some bubble burst or something? Bottom line, customer's bought the software, bugs and all. And you can bet an awful lot of them were screaming at Oracle to get the software out as soon as possible. So where's the motivation to do it any different?
Every customer will tell you he wants just one more feature, or just one critical (to him!) bug fixed, and then he'll be happy. Bunk. Fix the bug, add the feature, and get ready for the next demand. And since what Customer A wants isn't always what Customer B wants, we get lots and lots of features, many of them aimed at a very small subset of users. Add to that all the customers screaming since the customers want it *right* *now*, and we ship software with way too many bugs, and lots of silly features. Which customer pay for.
I work at a pretty large .com, one who actually survived the bust and maintains a profit, and has a pretty significant amount of traffic. We have used ATG Dynamo for our application server for several years, partially based upon the built-in ability it has to do an MVC architecture, personalization, pools, and so forth.
However, we just completed a web application that was built using many open source components, including Struts, Validator, JUnit, and others. By using open source components we have completely divorced ourselves from using the proprietary technologies used by Dynamo, and have opened ourselves up to the possibility of using a different, and of course cheaper, application server. This would not have been possible were it not for stable, performant open soruce initiatives.
Not only is management happy because we have (potentially) saved a bunch of money, but the developers are happy because they are much more friendly towards open source than closed technologies; it is far easier to get an answer to a question via Google than it is to pay for and go through the hassle of using a support contract of some kind.
I do not mean to denegrate Dynamo at all, because it is actually a fairly good application server. The licensing costs, however, just cannot be justified when so much of the functionality provided by it is already available elsewhere, for free.
Feature-creep is often caused by "the customer is always right" syndrome. The benefits of adding the feature are considered, but not the total cost it. It is sort of like cocaine, or a greasy burger: it might not kill you today, but eventually it will, or at least make you disfunctional in the longer run. But people ignore the downsides because they grow subtley.
Further, a lot of the tweaking is for vanity purposes IMO. I could build a system that could generate complex business applications mostly just by filling in values in a "data dictionary" set of tables that describe fields and relationships between them, plus a few event handlers. However, the interface would be so boring and predictable that it would be ignored. It would lack a WoW factor that people seem to want. Managers like to stand out from the crowd. They *do* pick a system simply because it looks cool.
Finally, too many places fail to design their databases well. They let slop creap in over time, resulting in bad, poorly normalized tables. Don't let your schemas slide. Don't duplicate columns and data if you don't need to, and don't make a bunch of tiny one-to-zero-or-one tables.
Table-ized A.I.
It goes back to the old adage that in theory there is no difference between theory and practice, but in practice there is.
I donâ(TM)t think it is simple to fix. Business processes tend to get complicated. Companies must try to meet the needs of many different customers. The end result never looks like something that was designed by one person but rather a conglomeration of the attempts of many people to make everyone happy. You canâ(TM)t just tell your customers to deal with it this way because the programmer doesnâ(TM)t want to spoil the elegance of his system.
You also have to take into account that you rarely if ever get to start from scratch and make everything simple, homogeneous, and elegant. You always end up having to get this file from the old Unisys machine, access this database on the AS/400, ftp this file from another old system, etc. Deal with this Perl script, that COBOL code, that piece of JAVA.
These âoepackagesâ that you implement end up being about 75% code from the vendor and about 25% glue and hacks implemented on-site to meet requirements. So the complexity arises from having to meet all of these needs when a software system is implemented. Each new project adds a few more goofy requirements.
When you start integrating with legacy systems and code from all of the place it is very difficult to adequately test. If you sit down and look at everything it is impossible to develop enough test cases to cover the full range of possibilities. They are practically infinite. Every machine, OS, OS patch level, language, library, communication protocol, file format, database, etc. throws another opportunity for a failure.
You also never have a stable target. Businesses merge, spinoff, develop new products and services, move, layoff, downsize, rightsize⦠At the drop of a hat. When you think about it, we are kicking butt to have anything working.
I don't want to seem mean but:
:-)
You admit that you lack accounting knowledge, but you wanted to code an accounts payable application yourself? Using open source software won't magically give you accounting domain knowledge. At least GreatPlains offered a framework for setting up an accounting system, even if your management mishandled the implementation.
As you now hack up some PHP+mysql app, you've hit the core problem mentioned by many, many others: users don't know what they want. ("The department that need(s) automation dont know what to automate and cannot come to conclusions.") But accounts payable is a *standard business function*. It's been implemented thousands of times before by companies like yours. Your staff don't need to know what to automate; in this task, they're hamstrung by 1) being accountants, not software or process designers, and 2) being used to the manual way they do their jobs.
So call up your suppliers, your trade association, the other companies in your building, whatever...someone who's done A.P. before. Ask who they used for implementation. Then call up vendors and ask how they handle the key requirements and pitfalls that you've heard. Stand on the shoulders of giants
(Or, if you insist on coding something yourself, consider this: if you're automating a department that is 100% manual today, there is bound to be some very simple feature (in your eyes) that absolutely blows the staff away. "You mean we can list all the accounts 30 days past due in Chicago? With one click? Wow, that used to take Marge half a day to work out.")
(Oh, and your management needs to take charge and decide if they're going with an external vendor or an in-house solution. With the best will in the world, it sounds like you're torn between two completely incompatible implementations right now.)