I googled the phrase "Collaborative Patterns" and was mildly disappointed to find my own blog post came up as the top result – after all I was looking for other people’s ideas on this topic! 🙂
Now, according to Wikipedia, the concept of pattern language itself originates in civil and architectural design but it has also been applied in software development – e.g. the Portland Pattern Repository. A pattern is typically a single problem, documented with its best solution, in a single design pattern. Each pattern has a name, a descriptive entry of the problem and solution, and some cross-references to other patterns, much like a dictionary entry.
In the context of collaboration, I think the idea of collaborative patterns are particularly relevant because my feeling is that we actually do know what does and doesn’t make collaboration work. However, the technology continues to evolve so fast that it is all too easy to get caught up in the new functionality and forgetting what we already know.
Also, these technology-agnostic pattern solutions to collaboration problems are helpful because, as is typical with user-driven collaborative tools, there are many different ways to apply these tools to actually implement the solution in practice. For example:
Through agreed protocols and shared practices (for example, a simple ‘workflow’ built using folder structures or naming conventions);
Through non-programmatic customisation, which may also include templated and repeatable approaches; and
Through actual custom development of the base solutions.
During the life and investment in a particular collaborative technology or set of collaborative technologies all three approaches may be utilised at any one time. In fact, a protocol may be the basis for a template customisation, which might eventually be hard coded into the solution over time.
So what are these actual collaborative patterns? Well, I might need a little help from you all to define them – a good starting point might be the technology-specific set of patterns for wikis.