Exciting. Tiring. Fun. Intoxicating. Mind stretching. Brilliant. Just a few words to describe EuroPLoP 2003, the annual European conference on Pattern Languages of Programming held in Germany during the last week of June. Although, I'm not completely sure 'conference' is the right word, nor does the gathering confine itself to programming patterns. I'll try and give you an idea of what happened somewhere in Bavaria.
The venue, as always with EuroPLoP, is Kloster Isree, a former monastery turned hotel and conference venue about 100km west of Munich. The hotel is set in beautiful countryside outside a small town - not that you have much time to explore the town or the countryside, but it adds to the general feeling of calm. The conference is actually something of a retreat, albeit a retreat which involves a lot of hard work (and, erh, beer.)
Full price this year was €900, but this included the conference, accommodation, meals, refreshments and as much beer as you can drink - or any other liquid refreshment you may prefer. As if all this didn't make for enough of a bargain the organisers threw in a brightly coloured yoyo. Who could ask for more?
Since everything is included the conference really starts over breakfast where conversation quickly turns to the conference itself and all matters patterns. This continues through lunch and dinner down to the bar and into the small hours of the night. Only interrupted by traditional conference drinking songs. And this is a conference with traditions carried on by a core of regular attendees.
For the conference newbie this core of regulars could seem off putting. But everyone is very friendly and by the end of the first day this feeling is disappearing, is gone by the end of the second, and by the time the conference ends you feel like you're part of an extended family.
In total there were 65 people at this year's conference. Unsurprisingly the majority of attendees were German but the second largest group (14) people, were from the UK. Add to this a couple of New Zealanders, half a dozen Americans, 5-6 Scandinavians and another dozen from assorted other European countries.
These seem to be split in equal thirds between academics, independent consultants and regular employees. The academics have a particular problem to wrestle with when it comes to patterns, that is, academia places a particular emphasis on original work, yet the very essence of patterns is that they document known solutions to problems.
The small scale and interactive nature of the conference means that by the time it comes to leave you have 64 new friends. (Well, in my case a few less as about 8-9 people are also to be seen at ACCU conferences.)
At most conferences the speakers list is one of the attractions to pull in the crowds, providing the opportunity to hear known speakers address a topic. EuroPLoP doesn't have any speakers, no big names, instead there are authors, and most of the attendees are themselves pattern authors. And rather than receiving a speakers list before the conference, you leave with a participants list. This leaves me thinking the conference is kind of upside-down.
Like any conference EuroPLoP is split into sessions, punctuated by meals and coffee breaks. The sessions though are split into Workshops and Focus Groups - the former in the morning and the latter in the afternoon.
Workshops are an opportunity for workshop members to review the patterns presented by the members of the group. These have been submitted and shepherded in advance so are already of high quality. The author introduces their paper then steps back, becoming a fly on the wall while the group discuss the paper. Only at the end is the author allowed to return and talk, and then he/she is only allowed to ask for clarification, they do not engage in defence of the paper.
The objective is to improve the paper. Over the months following the conference the author incorporates those suggestions they wish to into their paper. The revised paper is then resubmitted to be included in the conference proceedings. This is another way in which the conference is upside-down, the papers which make it into the proceedings have been changed from the papers presented.
I'm glad to say that my paper, a pattern entitled Encapsulate Execution Context, was well received by my group. However, when they turned their attention to improvements it can be most frustrating as the group discusses changes you have already wrestled with, or different group members contradict one another. Receiving feedback, even that meant positively, can be a bruising experience. Only later when I had a chance to write up my notes and reflect on the experience could I honestly say it was all positive.
Most of the afternoon is taken up with focus groups. The format of each group differs depending on what the workshop leader(s) wish to achieve. For example, one of this year's groups worked with Lego Mindstorms to build robots. The group leader's intention was to investigate the pattern discovery process by looking for patterns in robot construction.
Another group discussed team working and practices for human interaction in groups. Again the objective was pattern discovery. This meant working in small teams and discussing what we do in the work environment and looking for documentable practices.
In addition to workshops and focus groups there are a variety of other activities such as writers' groups and birds-of-a-feather sessions. The third night sees a grand banquet during which prizes are awarded, some serious, some humorous.
Something which marks out EuroPLoP from your average conference, and even your not so average conference, is the presence of games and art. The conference has a resident artist who runs an art studio and organises games at several breaks during the day. The games are non-competitive and not necessarily physically demanding - although some attendees made a decision not to offer themselves for stage diving!
Apart from having some good fun there is a serious intent behind the games. Giving feedback to people can be difficult, and it can be more difficult to hear people talk openly about one's own work. However, it is hard to take any of this personally when the person giving it was sitting on your knees last night.
There is also a lot of humour at EuroPLoP. This occurs inside meetings where there is a very relaxed, upbeat atmosphere, in the drinking songs and in the conference's own daily magazine. (Although Overload readers may have felt strangely at home with a magazine edited and largely written by two regular Overload contributors.)
The games also add to the sense of "getting to know you" that breeds trust and creates a sense of community between the people there. In a sense, the conference didn't end when everyone went home, it goes on, each of us is part of something bigger than ourselves that will continue to evolve.
If anyone still thinks Patterns equals the Gang of Four (Gamma et al, 1994) book and "Pattern Languages of Programming" (PLoP) means the conference concerns itself with just programming or IT matters, now is the time to wake up and smell the Bavarian Beer.
In fact, I think the pattern I presented was one of the most GoF like as it concerned itself with a common high level programming technique. Other patterns in my workshop dealt with embedded systems - giving their example in assembler code - or techniques for using Aspect Oriented Programming. Other workshops looked at pedagogical patterns, use case patterns, pattern writing, leadership patterns, and even patterns of shepherding patterns.
I detected three trends in patterns in the papers presented and the conversations about patterns:
- Pushing the boundaries:
pattern writers are starting to explore the boundaries of what patterns can do and where they can be used. As already mentioned academia has problems with patterns, however, this is not stopping some academics from trying to use them and research with them. A recurring theme was the use of patterns as a form of knowledge management.
- Application to new domains:
software people may have adopted patterns from architects but they have been more successful than architects in spreading the word. Fields with immediate relevance to software are now starting to experiment with patterns, educators are starting to write pedagogical patterns, while the IT security community is attempting to frame much of their work as patterns.
- Division of patterns:
another recurring theme is the correct "level" or "audience" for patterns. Some people are exploring how we may group patterns into hierarchies, so we may have abstract patterns at the top, with other implementation patterns forming a second layer of concrete patterns. For example, an abstract pattern may describe how to implement a scheduler, while a concrete pattern would extend this to techniques on DOS based computers. There is also a debate as to whether this kind of information is best presented as a concrete pattern or as a case study.
Others are interested in how to present patterns to different audiences. A format and content that is great for an inexperienced developer may not work so well for a battle hardened veteran. Even one's own demands on a pattern may change when the document moves from being an introduction to being a reference. What is the solution? Multiple styles? Hypertext?
What is increasingly clear is that patterns can lend a more human dimension to technical literature. This may occur directly, through patterns about human behaviour, or through the presentation of highly technical information in more accessible formats. Either way, the greater emphasis on people makes patterns a useful knowledge management tool.
(Now I come to think about it, I seem to recall Jim Coplien, either in print or more likely at an ACCU conference talking about Christopher Alexander's reaction to software patterns. If I recall correctly, he thought that the software community wasn't paying enough attention to the human aspects of patterns. Maybe the software patterns community is now addressing this, or maybe Alexander didn't realise that by computer industry norms, the patterns community does appreciate people more.)
What else can I say about EuroPLoP? I got home and felt as if I had been running for three days, physically it was very tiring. This was not just from the games and beer, the conference maintains a very high level of intellectual activity. My body may have been exhausted but my mind felt like it had been given a workout in a mental gym.
Much of the credit must rest with the conference regulars who form the pattern community, and in particular the European patterns community centred on Hillside Europe. This is a community with a noticeable ACCU overlap, I counted about 10 participants had been to one or other of the ACCU conferences - most notably the programme was chaired by our own Kevlin Henney.
Different conferences fulfil different roles. Academic conferences may be little more than presenting papers. Commercial conferences may be glorified training sessions. For me EuroPLoP was about two things. Firstly it was about contributing to the growing body, and secondly it was about growing as a person and opening myself to some new ideas.
Would I recommend it? Yes with one reservation: if you are going, be prepared to be open, this is not a conference for those with fixed ideas, fears or a point to prove. It is a conference where you give and you receive, and like Christmas, much of the pleasure comes from the giving.