Why is enterprise software often so complicated?

As answered on Quroa

Two primary reasons: the complexity of enterprise requirements and a sales-driven requirement to try to satisfy as many customers as possible.

Human resources software would be a good example with which to start. Someone previously asked Taleo: Taleo is dreadful. Why is it so widely used? Don’t they have any competition?. This is a single piece of software being used within one organization that needs to meet the requirements of different teams and a multitude of different end users. As a candidate or the immediate recruiter the information that seems pertinent to you is pretty minimal, but perhaps the legal team decided that there needs to be an audit trail, and the CFO wants to a specific metric to gauge ROI. Add in other real and perceived requirements and pretty soon you have an octopus of a product.

Now consider that Taleo wants to sell this software to as many customers as possible, in as many “verticals” as it can. Or consider Microsoft SharePoint. Most people use it as a document repository, but it’s extremely feature rich (overly, perhaps) because it needs to satisfy the needs of the 100 person team managing proposals and the 1,000 person team using it as a backend for some custom workflow, and maybe the marketing team who decided to use it for the public facing website. If you are hell-bent on selling one item that can satisfy the customer who wants a saw, the customer who wants a magnifying glass, and the customer who wants a corkscrew, you’re going to end up with an ungainly Swiss army knife.

Insane Swiss Army knife

Added to this second reason is the hierarchal nature of enterprise software sales. The users and the buyers are not the same people. And when the end users are involved in the assessment they rarely get a real chance to evaluate the software. You can test drive a car all you want, but you’ll only get a flavor for whether you’d like that car on a road trip. Similarly a user would really need to be able to replicate or replace their processes with the software under evaluation to properly assess it. However for perfectly valid reasons this is usually not possible.

I think the XaaS model is at least starting to provide a way out of this trap. Maybe not for everyone or for every product. The success of companies like Yammer (Enterprise Software: What enterprise software doesn’t completely suck?) and Atlassian is due in no small part that employees can adopt their products and services, even just to try, without going through a big procurement process.

(Image source: http://joshlinkner.com/2012/swiss-army-knife-innovation/)

Originally published May 2012

Are you a Django developer? Have you found yourself wishing you could reuse the code you write or looking for some guidance on building standalone Django apps?

Check out my upcoming book, Django Standalone Apps: A developer's fieldguide to developing reusable Django applications the first guide written specifically for writing standalone apps.