Toward a Pattern Language for Enterprise 2.0

A Pattern Language, published in 1979 by Christopher Alexander and his colleagues, was a landmark book in architecture that also became a landmark in other fields like computer science; one review called it “The decade’s best candidate for a permanently important book.”

It identifies architectural patterns at three levels – towns, buildings, and construction – that seem to work: to be both useful and livable, and to please and welcome people instead of alienating them. Alexander and his team came up with them inductively, by looking at architecture all around the world that worked and asking themselves why it did so. The authors interlink the patterns they identify, and A Pattern Language has been called “perhaps the first complete book ever written in hypertext fashion.”

It’s an amazing piece of work, and it popped into my head recently as I was trying to articulate for myself how Enterprise 2.0 work is different from Enterprise 1.0 work — from how knowledge workers used technology to get their jobs done before all these weird (and wonderful) Web 2.0 tools and communities appeared.

I’ve had for some time now the vague sense that the iPhone, Twitter, Gmail, Googling, Facebook, Wikipedia, Delicious, and other runaway successes are trying to tell us something about how we want to use technology in our lives and in our work, and if we enterprise technologists listen carefully we’ll hear what that something is.

I don’t believe that what they’re telling us is that we have to throw out all of our existing devices and applications and start enterprise IT from scratch. But we do need to throw out some tools, approaches, and philosophies, and incorporate other ones. The enterprise technologists that do the best job of this will be the ones that see their offerings succeed.

I started jotting down some comparisons based on what I’ve seen, read, and experienced for myself, then realized that I was identifying patterns (although far less rigorously and thoroughly than Alexander and his colleagues did). And I thought that in best 2.0 fashion I should open up this work early in the process by posting an initial set of patterns, seeing if they resonate with people, and asking for further contributions.

I’m dividing my 2.0 vs. 1.0 comparisons into two groups. First is a set of patterns where 2.0 is just better than 1.0 —  where the old should, I believe, just be replaced with the new. Second is a set in which 2.0 is an alternative or addition to 1.0, not a replacement for it. This second group of patterns, in other words, shows two alternatives, both of them valuable and viable, for how computers are used to get work done.

Some of these patterns use the broad term ‘technology,’ while others are more specific about devices or applications. They ignore, at least for now, whether it will be technically easy or difficult to accomplish the 2.0 vision. They’re just an initial set of patterns related to 2.0 work, which will hopefully be expanded and refined over time.

Patterns Where 2.0 Should Replace 1.0

2.0 1.0
Technology appears to have been designed for the user Technology appears to have been designed for someone other than the user — the developer, the boss, a lawyer, etc.
Only small amounts of time and training are required to become familiar with a technology It takes significant time and training in order to become minimally competent with a technology
Few steps are required to accomplish basic tasks; technology-based work is ‘frictionless’ Many steps are required to execute basic tasks; technology-based work has a great deal of friction
Devices delight, pleasing the eye and the hand Devices exist to accomplish tasks and are designed only for function, not form
Delays and latency are low; technology responds instantly Delays (especially at startup) can be long and latency can be high
Crashes are no big deal and are easy to recover from Crashes are time-consuming and costly / catastrophic
Relevant data is in the cloud, so it doesn’t matter which device the user employs Relevant data is stored locally at many devices, so it matters which device(s) the user has access to
Users navigate via search Users navigate via menus and directories
Work is accomplished via the browser Work is accomplished via many discrete applications
Technology accurately guesses what users want, is forgiving, and makes users feel smart Users have to guess what the technology wants. The technology is unforgiving and makes users feel stupid
It takes virtually no time to author (to contribute online content) and few if any approval loops exist It’s laborious to author, and many approval loops exist
At its best, technology is welcoming and empowering At its worst, technology is alienating, isolating, and frustrating

Patterns Where 2.0 is an Alternative to 1.0

2.0 1.0
Technology is used to execute spontaneous collaborative work Technology is used to execute planned / predefined business processes
Technology is used to share work and conclusions with others Technology is used to generate or analyze information individually
Technology is used to broadcast information publicly to people both known and unknown Technology is used to transmit information privately to known people
Technology is used to ask questions and solicit information and help from people both known and unknown Technology is used to ask questions and solicit information and help from a small group of already-identified people
Online content is the start of group-level work; it is work in progress Online content is the end point of group-level work; it is finished goods
Online content is generated by many people Online content is generated by a few approved sources
A person finds new colleagues by examining the online content they’ve generated and assessing its quality A person finds new colleagues by asking around an looking through official directories
Information sources give good answers to the questions users thought they were asking Information sources provide complete answers to perfectly phrased questions
Technology is used to create and diffuse new knowledge Technology is used to encode previously-generated knowledge

The ecosystem of the public Web —  its sites, applications, and gadgets — is a truly Darwinian place. It’s crowded, always full of new entrants, and characterized by low switching costs; in many if not most cases, the competition really is only a mouse click away. This makes it a tough environment, and one where only the strong survive. ‘Strong’ in this case, I believe, means something close to ‘delightful and valuable to users.’

Of course, the primary goal of enterprise IT is not to delight users, but rather to increase the value of the company. But do these two outcomes have to be in conflict? I don’t think so. It wouldn’t be prohibitively difficult or expensive for enterprises to adopt 2.0 patterns. The biggest challenge will probably be to get corporate technologists (a group that includes IT departments, vendors, and consultants) to stop thinking like monopolists that can dictate tools to users with great confidence that, because of the lack of alternatives, they’ll get used.

Today there are viable alternatives out there on the Web, and they’re revealing new patterns for getting work done. I can think of four negative consequences of ignoring these patterns and continuing to act like a 1.0 enterprise technology monopolist. In ascending order of severity, they are that enterprises will deploy technologies that are disliked and/or not used; that employees will use ‘stealth IT’ and any knowledge / information captured therein will not be retained by the enterprise; that employees and customers will leave because of their frustration with poor enterprise technologies; and that the the enterprise will be handicapped or crippled  —  less productive, innovative, collaborative, agile, ‘wise,’ foresightful, insightful, transparent, clear than it could be otherwise, or than its competitor is.

What Enterprise 2.0 patterns are you noticing? How should the tables above be expanded? Leave a comment, please, and let us know.