I tossed out a post two days ago proposing a "manifesto", similar to the Agile and other such manifestos, to encode the ideas that are at the heart of what some of us in the enterprisey world are trying to do. I got some helpful comments on that post, and would like to work those suggestions into the manifesto. I also got an email from an anonymous donor, however, who made an important criticism: my manifesto mixes its metaphors.
First, my critic suggested, I was co-opting Andrew McAfee's term and expanding it. That's something that McAfee has publicly expressed his lack of enthusiasm for, and that bears respecting. Second, the things that I am mashing McAfee's original idea up with don't fit: McAfee is all about the impact of social software on Enterprise 1.0. Stuff like protocols and systems design are all about tech, and are outside the scope of McAfee's term.
So I had a think about those criticisms, and have come to the conclusion that they are both correct. I am talking about something other than McAfee's Enterprise 2.0 here. In particular, it seems to me, I am trying to articulate a synthesis of four different memes:
The impact of social software on the enterprise (the original Enterprise 2.0 meme)
The superiority of ROA over other distributed system design styles
The need to provide for reflective, adaptable behavior of business users rather than lock them into static, predefined processes
The desire to reduce (and control) complexity and system entropy through the rigorous application of ideas like lesscode, convention over configuration, and favoring simple, lightweight solutions over large system designs.
In other words, I've been struggling to articulate that all these strands are necessary but not sufficient, in order to reach the goal I seem to have set for myself in my head. No wonder that's been difficult.
I also got the (expected, frankly) handful of emails (why do people send emails, and not comment here?) along the lines of "You didn't mention Rails! You're enterprisey! You suck!" All of which is more or less true, perhaps, but I have no intention of adding Rails or any other tool to my list. Reason: I see tools as enablers, as the means to an end. They are not the goal. I'm trying to articulate goals here, not ways to achieve them. (Aside: dude, if I was DHH, I would be so proud of the artifact I created, and so ashamed of the culture that it spawned. Rails people remind me of rabid Team OS/2 fanatics -- I know enterprisey people who literally decided against using OS/2, back in the day, because its adherents were such unpleasant, rude people). Seen this way, social software itself (and McAfee's entire meme) is just (one of) the enabler(s) for the first two points in my manifesto.
Therefore. I have decided to bump up the version number by a minor version, to distinguish both the point that I mean something other than McAfee's term here, as well as to express that I mean something more than just Enterprise 2.0. Hence, Enterprise 2.1. Without any further ado, here is release 0.1, which includes the feedback I received from you. I don't expect this to be the final word, and it may not be useful to anyone but me. I certainly would welcome further feedback and criticism.
Mark's Enterprise 2.1 Manifesto
Favor ...
Collaboration and adaptability over static business processes
Porous customer relationships over opaque hierarchies
Emergent systems over centralized command-and-control
Lesscode and convention over complexity and configuration
Internet protocols over proprietary middleware
Resource orientation over service or object orientation for distributed systems design