Friday, October 12, 2007

The Social Enterprise

A couple of days ago, Ayende wrote:

Enterprise Software - A common term used to refer to systems that usually run a core part of a business.  Often those are mission critical systems, which interact with many other systems in the organization in many interesting ways.  Enterprise software is considered hard because it often need to mix technological capabilities with the business logic, and be flexible to handle changing conditions as the business evolves.

I feel there's something very important missing from this definition.

Where are the people?

Enterprise software is hard not just because of gnarly technical system integration issues related to core business processes but because it has to be very carefully tailored to fit the social environment of the enterprise.

I'd argue that the social challenges of enterprise software greatly outweigh the technical considerations.  If the system does not somehow relate to people, it is not an enterprise system.

Enterprise systems generally incorporate a very large installed base of internal and external stakeholders that have widely varying perspectives and needs.  These people are accustomed to a particular conception of the business operating environment.  They have developed a specialized vocabulary to describe their doings.  They have adopted work habits to get them through the day.  To observers they often appear to behave in strange, mysterious and chaotic ways.  Changes run the risk of inducing systematic paralysis, shock, mass-hysteria and cannibalism.

We're going to build systems for them?!?  You must be out of your mind.

The stakeholders of enterprise systems are tightly coupled to the system itself.  They are a part of the machine and they exhibit a sensitive dependence on its behavior (and are often quite resistant to change).  Building and maintaining enterprise systems involves performing a carefully unscripted dance around the social, political, financial, legal and quasi-religious spheres of the organization.

The actual code seems almost irrelevant!  "Business logic" is a formalized contortion of the whimsical demands of a fractious collective of fanatics, individualists, providers, consumers, and parasites.

The true horror of enterprise systems can only be revealed in the actions and sentiments of people.  They are your business.  That's what's so hard.

Sometime I'll get around to posting my ALT.Net reflections...


Casey said...

I think that puts very clearly exactly what I was trying to convey to Oren ... making change is not about proving your code is better - because your code is frankly irrelevant - the massive momentum of an enterprise organisation requires much more force to shift in a new direction than a few good coders can create.

Peter Weissbrod said...


People are afraid of changes.