Sunday 12 April 2015

Enterprise Software sucks

The dawn of the twenty first century is a rather comfortable time to live in for the privileged residents of developed countries. Most of the small irritants in life I even remembered experiencing 30 year ago are gone. To quote but two of them, even the cheapest cars are now air-conditioned, and dentists now widely use anaesthesia so we feel no pain when treating tooth decay. There remains, however, island of pain and frustration in this otherwise rather pleasant life. The first thing that come to mind is red-tape , the curse of many large organizations, whether government or corporations. I would like to devote this blog to a more focused irritant: the high cost, poor performance and inadequate user experience of most enterprise software.
Most of us are more familiar with the other types of software. Video game is an industry in its own, and the consensus is that the product quality has increased tremendously, even if some would argue that the focus on blockbuster games has been to the detriment of creativity. Consumer software, the ones we experience in our everyday life, is also generally appreciated. I put in this category the Office suites, excellent in my opinion. Even if there are tragic accidents, embedded software that controls our cars, machineries and aircraft are proving everyday their value by increasing security and performance. My next car will likely have a feature to stop in emergency if the car in front of me piles.

Enterprise software is subject to less headlines in the media, but is nonetheless crucial to our modern society. Your payslip and social security transactions are processed by it. Chances are that part of your daily work is entering, accessing or validating data through such systems. For most companies, the data and processes managed in enterprise software is the backbone of the organization, not just routine back-office: customer accounts for a bank, mobile phone contracts and billing for a telecommunication provider, resources for the assembly line in a factory. The investment is building, operating and upgrading such systems is significant, typically 2 to 5 percent of the company revenue, sometimes much more.

For sure, such systems are complex. To be honest, they do a decent job in some of the key desired features. Security of data access comes to mind first: imagine the mess in a company if anybody can see the salary of their colleagues, a possible scenario as most employees already access the HR system for other reasons, such as having their holidays approved. Data Integrity is another area where a decent job is typically done: on around 10 years working on enterprise systems, data loss and corruption were very rare events, and we did a decent job dealing with it on each occurrence.

On most other areas, my experience of enterprise software is disappointing. Ergonomics and user experience are typically abysmal, requiring costly training and resulting in low productivity. One famous example in my company is the transaction to book working hours on different activities. It should just be a matter of logging-in, and split the month hours on the activities my manager assigned me to, but it ends up being a 4 screens odyssey requiring the entry of up to 5 cryptic codes. Very often also, the software is ridiculously slow. However, I feel I need to precise here that I do not care if my software looks as neat and streamlined as Scandinavian designer furniture or some famous smart phones. I noticed that trying to improve enterprise software in that way actually made things worse, even if slightly more beautiful.

Building and maintaining enterprise software is a process with a discouraging amount of waste. Development is extremely costly, with a large proportion of the effort spent not on implementing the business logic that makes the software value, but on setting-up repetitive and generic infrastructure, such as data entry and visualization screen, and error management frameworks. Another large cost is documentation and testing, typically half the cost of enterprise software. Technology to automate it exists, but is rarely available on enterprise software platforms.

The fit of enterprise software with the organization business processes is almost always disappointing. This is a direct consequence of the last decade move to packaged solutions. Packaged solution certainly makes sense in some areas, typically back-office activities conducted according to well established norms. Editing payslips in a given country is very likely standard in most companies, though some would argue that doing that properly in a multinational context with the specific incentive plan of the company is a complex task poorly served by packaged solutions. However, forcing an organization to conform to package software features for a core business process that is key for performance is clearly nonsense, albeit a nonsense that has been very popular. This would mean that for this critical activity, the company cannot organize better than the "low average" typically implemented in packaged solution. The result is almost always an extremely complex customization of package software mixing the worst of both worlds: a costly monster bleeding money, the disaster coming to its apex during legacy retirement projects, a risky endeavour every 5 to 10 years to upgrade the system to ensure it can still run on modern computers: millions spent at no benefit to the business organization.

So you may ask why I have spent half of a sunny spring morning to write this rant. I have the strong opinion that it is possible to work significantly better. I believe some mistakes and misleading paths were chosen and can be challenged. I have several ideas about products and services that could help enterprise software communities to work better. I plan to share my ideas on this blog with you, and so I started by describing the problem I wish to contribute solving.

No comments:

Post a Comment