January 21, 2000
I think that we need to reasses all of our initiatives, regroup, and relaunch to the company with new commitments to quality and education. To date, we have had some success, but we have fallen far short of our potential.
Our collection of patterns is decidedly mediocre. There are several good ones, such as (ironically) swarm which are clearly defined, right to the point, make complete sense, yet are abstract and have no need to specify a Process. We have no process or plan for improving the vast majority of patterns which are not on the level - even at the simple level involving the use of good grammar and spelling.
My conclusion is that a good pattern is the hardest thing in the world to write. It takes real understanding of the subject. It is not accident that Skip would write a good swarm pattern. Swarm is not profound in the way that the best of Alexander's patterns are, but can any software patterns be that way? It is my feeling that we should treat patterns as the ultimate in work at Destiny - that writing a single profound pattern will be the hardest thing that anyone will do at Destiny, not something everyone will do on a day to day basis. Ironically, we've lowered the bar! We should exalt the best patterns and reward hard work in writing good patterns. The bar should be high with substantial rewards for clearing it.
The purpose of the pattern server is to replace a printed book in the following ways:
It has worked in #1 and #2 above quite well. However, the it fails on the third point for an unexpected reason: it just isn't relevant on a day to day based, and therefore, despite the success of #1 and #2, it might as well be a printed book (with some exceptions) given how infrequently most people look at it. When a reference book sits on your desk, you only open it when you know you need it, which means, you know what you're looking for. If you don't know what's in it, you may never open it.
So the pattern server has failed in the following ways:
WebCycle should relaunch itself the company in an Event, and roll out new plans along with the successor to the pattern server. This will give a fresh face to every aspect of WebCycle. People will be excited to hear a well presented and easy to understand WebCycle message, new programs, new commitments, and a more useful technology with much more compelling features.
A primary feature of the first pattern server was collaborative writing insofar as anyone could write a new pattern or edit an existing one. Enabling people to contribute their experience and knowledge as they see fit and whenever they want to is undoubtedly good in an open environment.
But as I said above, a good pattern is the hardest thing to write. We must keep the bar high and reward hard work to write the best patterns. Having said that, what does the pattern server then become? I think that we need to lower the bar for what constitutes contributable knowledge as well as raise the bar for patterns. What do we know? Not all of our knowledge is in the form of patterns. I know C++. The TNT system used Granite Foundation and C++. Paul Rehmet was tech lead on TNT. Paul knows java. WebLogic is a Java application server. TNT produced a plan for implementing a Ping Test. Ping Test is about testing early and often, which is about Reducing Risk.
The successor to the pattern server is more like a knowledge management system that allows such bits of associative knowledge to be entered, linked, surfed, searched through the internet (intranet). Its purpose is to create a web of associations (Russell knows java; weblogic uses java; weblogic is an application server; ...). Things like "java", "weblogic", etc are basic descriptions and relevant references which anyone can add and edit; the associations among them show how they are related from Destiny's perspective.
The ultimate purpose of such a system is to allow people to contribute useful, meaningful but not so abstract knowledge. It will connect information that is useful on a day-to-day basis to our patterns. the system is useful on its own without patterns, through the power of associative memory that can be built collaboratively (the premise of hypertext), but when this hyperlinked information space is connected to abstractions like patterns, we not only see who wrote patterns and on what projects they were used, but why. It brings patterns down to earth.