The prices for most "enterprise" software varies a lot, and seems to be mostly based not on any kind of objective metric, but more based on a voodoo-like attempt on the part of the salesperson to determine the maximum amount the business will pay. Licensing fees, maintenance agreements, and consulting are all intermingled into a figure with a lot of zeroes, and of course the software firms are not interested in the software that will be solve your problem the best, but rather the solution that will perfectly match the maximum amount that the business can afford to pay. This usually results in vastly over-ambitious projects involving legions of employees from the vendor and the customer trying to work together and implementation timeframes of as long as a year or more in some cases. More often than not, the end result is a major disappointment and the project is scrapped, despite huge expense and major effort.
Now this scenario, which plays itself out over and over again in the business world, is not all the fault of the software companies. The software companies are putting their revenues ahead of their customers' best interests, but that's expected. Their job is to sell as much of their software as they can. The other half of the blame goes to gullible upper management at businesses who is too easily swayed by fawning acclaim in the trade press and flashy vendor presentations at trade shows. Companies like Oracle, who recruits its salespeople from among the Great White Sharks swimming off Southern Africa, are great at closing huge sales through sheer force of will. And why are these salespeople so aggressive and successful? Because they are richly rewarded for their efforts. The best salespeople in the enterprise software business make millions of dollars, literally.
And because the pricing of software is based on demand, and supply is unlimited, the salespeople, top managers, and investors in successful software companies can make lots and lots of money. So software consumers are being sold overly-ambitions software implementations that often fail, resulting in hundreds of thousands of dollars down the toilet, while the sellers are rolling in the dough. And did I mention that a lot of this software sucks?
Here at OSNews, people complain constantly about the well-known shortcomings of Windows, Linux, and other OSes. And they're correct. Even the most widely-used software is bound to be fraught with defects, minor and major. But the quality of some of the "enterprise class" software out there is absolutely frightful. I won't name any names, but anyone who's worked in big business IT can probably rattle off a few of the worst offenders.
It's not because these software firms don't have talented engineers. In fact, in most cases, their original products were creative and well-designed, and many of the big firms' flagship products are very good. But usually, once a product has started to sell well, the demands of the bottom line start to trump product quality. Typically, enterprise software needs either extensive customization or the user is forced to shoe-horn their needs into what the software can do well. Usually the ultimate solution involves a combination of the two, so you have clumsy workflow mixed with hastily-created customizations, and the whole thing can come off a little unwieldy.
Add to all this the fact that the software engineers are being hounded by management to include product functionality for the sake of increasing sales, while often bug fixes, security issues, and architectural improvements fall by the wayside. The goals shift from creating an excellent product to creating sales. And this is accomplished in a few ways:
Chasing fads: Whether it's XML, "Push," Java, Linux, or the dozens of other fads and buzzwords that have swept the software industry over the past few years, you can always count on a vicious circle occurring in the software industry. The trade press will start hyping the latest buzzword, then customers will start asking the salespeople if their product has it, the salespeople will say yes, that it's in the next version, then marketing and PR will gang up on the engineering VP and demand that they immediately add XML or Linux or Java to the next version. Sometimes these fads mark real, worthwhile trends, like the move from client-server to web-based architectures. Other times, it's all just a waste of time and a distraction.
Creating spin-off products: Database vendors sell an important product that forms the backbone for many companies' IT infrastructure. But naturally a database doesn't do anything by itself. So they have partners who provide various systems to run on it: a Human Resources package, a financial package, etc. But those partners seem to be getting all the money, so the database vendor makes a couple of hasty acquisitions and gets some products together. And they use their leverage as the database vendor to get their customers to buy their new applications. And the core product might lose engineers as the best ones are shifted off to these new enterprises, or development of the new core functionality might get sidetracked with supporting other projects and their needs. So you get an excellent but neglected and fragmenting core product, and a bunch of spinoffs that may still be vastly inferior to the former partners' products.
Manufacturing pretexts for upgrading: Whenever a new release of Windows or Mac OS is in the works, there's always a big push to publicize the flashy new features it contains. And though sometimes these new features are a revolution, usually they're just eye candy, or modest improvements on existing utilities. The real advantages of these new releases, security enhancements or performance boosts, are usually too modest or just plain too un-sexy to get people too excited. Worst of all, many times the big new reasons for upgrading are often the fixing or partial fixing of serious flaws from the previous version that should never have existed in the first place.
And when that doesn't work, forcing an upgrade: OS vendors are probably the most guilty of this one out of all the software makers, but it's widespread in the industry. If too many years go by and a software company's users are just not being attracted to the paid upgrades that are being offered (for example, there hasn't been a feature added to Microsoft Word since 1993 that I cared about), then there are various dirty tricks that they can do to force me to upgrade. They can mess with file formats, so my version of the software won't be able to open newer documents. They can "stop supporting" older versions, which may mean that security flaws won't get fixed and compatibility other software won't be resolved, in addition to the fact that they won't take my phone calls anymore.
In each of these cases, the demands of revenue generation trump improving the product. Where does fixing bugs, improving architectural elements, and maximizing security come in? As a necessary evil.
So, to sum up, kids and other individual consumers of intellectual property feel like massively rich and powerful corporations want to force them to subsidize an outmoded sales and distribution regime that's inconvenient and annoying to them, and that's how they justify file sharing. Similarly, decision makers in the world's companies feel like they're caught under the thumbs of massively rich and powerful software firms who want to force them to subsidize an outmoded sales and distribution regime whose goal is to maximize revenue even at the expense of their IT projects' success and puts them on a treadmill of forced upgrades and implementation of substandard spin-off products. And all this for software that mostly doesn't work all that well in the first place. Does it push them to violate copyright and licenses? In some countries, yes. But in the US, the BSA's big stick is an effective deterrent. What it has done is push companies to consider alternatives.