I have been going to the Recent Object-Oriented Trends (ROOTS) conference in Bergen for the last seven years, the last two years as a member of the program committee. It always strikes me how this conference gives me a different view on what I thought I knew, instead of just teaching a few new programming tricks.
The conference is a well-kept secret. The intimate and conversational atmosphere gives everyone attending a chance to discuss software developments with some of the great minds of our field.
The height of the 2007 conference was, as in previous conferences, not the one I had expected. Linda Rising had an introduction about retrospectives on the first day, and helped the delegates do a Real-Time Timeline: In the back of the main conference hall, we had a large sheet of paper where people could post sticky notes (of different colors) with things that made them feel happy, surprised, frustrated or challenged. Not surprisingly, the all too common SNAFUs with the projector was a repeated frustration on the timeline.
In addition to covering the practical aspects of the retrospective technique, Linda shared some of her insights. What I found especially profound was the idea that for participants in a less-than-successful project, there will be a feeling of loss, of failure, of regret. As humans, we have a mechanism that is meant to deal with this loss, namely grief. Linda shared the experience of one of the first retrospectives she had conducted, where the feeling of processing the experience, the grief, of the failed project was extremely powerful. Dealing with failure made the organization able to come to grasp and continue. I have seen similar situations, where the weight of people’s experience sap all motivation for further work.
Linda also was so kind as to help close the conference. All the attendants were given four index cards, and were asked to write on them each three answers to the questions: “The conference was great, because…”, “Next time, do things differently…”, “Next time, I hope…”, “These are things that puzzle me…”. Needless to say, this was a great source of ideas and inspiration for following years conference.
I have talked to Linda on previous ROOTS conferences, but I had never heard her give a presentation. I had always decided to prioritize other speakers. This year, she was in the keynote slot, and I am really glad I heard her speak. I always leave the conference having discovered some new extraordinary speaker that blew me away.
The exceptional, but (to me) unknown speaker of two years ago, Gary McGraw, was speaking at ROOTS again this year. Many software developers have never heard of Gary, but within computer security, he is a household name. Author of many books on software security, this year’s new release was “Exploiting Online Games”. An unexpected topic for a serious talk, but extremely fascinating. Did you know that there are sweatshops in China where guys are being paid $2 per hour to play World-of-Warcraft? This is just scratching the surface of the window that online games gives us into unregulated market economy. (Really!)
Another speaker I was not familiar with earlier was Dan North of ThoughtWorks. Dan is the inventor (I think?) of Behaviour Driven Development. He described how, when learning software development, he learned that User Stories often are well expressed on the form “As a X, I want Y, so that Z“. For example, “as a customer representative, I want to be able to generate a customer report, so that I can find out which customers are the most valuable ones.” Or something. When testing user stories, Scenarios, can be expressed on the form, “Given a1, a2, and a3, when b, then c1, c2 …”. For example, “given that an account holder has inserted his card in the ATM, that there is money on the card, and that he has entered the PIN correctly, when the account holder selects an amount, then the ATM will dispense the money, adjust the account holder’s current balance, and return the card.”
The interesting idea of BDD is that with a tool like rBehave or jBehave, or with some discipline, you can express these things in the software itself. During the three hour tutorial he was presenting, Dan had the chance to go into the details on how.
In addition to the exciting surprises every year, ROOTS also has a lot of well-know names that come back (hopefully for the really nice atmosphere) again and again. This year’s keynote speaker was James Coplien (“Cope”), who has been at the ROOTS conference a number of times before. Actually, Cope stepped in on short notice, as the original keynote speaker was delayed in Copenhagen due to an flight attendant strike. He gave a very insightful talk on the past and future of Agile software development, called “For those who were agile before agile was cool”. Cope pointed out how the “Bazaar” open source development model, Boehm’s spiral model, and Trygve Reenskaug (another ROOTS speaker) Model-View-Controller ideas (from the 1970s!) are still as current as ever. Not one to cheer for the latest fad, Cope had some rather critical things to say about Agile. Especially, he pointed out that the current trend seems to ignore user experience and interaction design.
Finally, I should mention the talk that Cope and Trygve Reenskaug gave together on Model-View-Controller and Trygve’s current work on the Data-Collaboration-Algorithm structure. I am not sure exactly how this work may turn out in the future. It will probably either be discarded, or revolutionize how we organize problems. I have no idea which.
The only sad part of the last ROOTS conference was the fact that is was too poorly attended. The relaxed, in-depth form of the conference gives a chance to reflect, discuss and really understand the current trends in our field, and reflect upon our own experience. The intimate atmosphere gives a great chance to get to pick the minds of some of the most insightful people in our field.
Next time, I hope… that more people will get that privilege.