I am writing this in Vancouver airport, on my way home from OOPSLA conference. It seemed to me that the nature of the creative process was a recurring thread through the program.
The most thought provoking session I attended was a workshop run by Dick Gabriel - Extravagaria II. The subject of the workshop was the creative process followed by artists and scientists. Explore; Discover; Understand. The general process has some commonalities. We externalize our ideas and interact with them, as a result we develop an understanding that we can communicate to others in our community. As our mental models evolve, we are changed by our interactions with our work in a yin-yang way. In both inspiration can come about via methodical approaches although there is an unconscious element to the mental gear shifts we make - immersion followed by defocussed attention.
During the workshop we were challenged to write a sestrina - to see how applying constraints can boost creativity. It was funny to observe how satisfied the group was with a superficial delivery - on-time, loosely conformation to the sestrina format but truly terrible as poetry. A little like a software delivery that conforms to the written requirements without satisfying the customers needs.
The second exercise was to write a simple program using StarLogo. Attending the workshop was a last minute choice for me so I had not familiarized myself with this interactive programming environment (which by the way is really cool). Again interesting to observe that recognizing the task was tough in the time, we dropped our principles and made little attempt to work together as a group.
Ivan Moore and I had great fun running our workshop on Gumption Traps and how to uncover root causes of demotivation using techniques from systems thinking.
Other highpoints were the Turing lecture delivered by Alan Kay in which he demonstrated OpenCroquet, Ward Cunningham's talk on System of Names and wiki and working with Gerard Mezaros on patterns for Heartbeat Retrospectives. Low point was the Keynote that turned into into a demo of their latest tool (a certain Chief Scientist sitting near me was heard muttering "I can't take any more of this" as he walked out).
I have in my OOPSLA conference bag a copy of a long anticipated book "Fearless Change" by Linda Rising and Mary Lynn Manns ISBN: 0201741571
I first met Linda and Mary Lynn at OT2001 in their workshop "Introducing patterns (or any new idea) into an organization". I was a little in awe, as this was was my first time I attended a prestigious conference, but if you attend a workshop you have to contribute. I racked my brains furiously trying to think of a pattern.
At that time, there were many developers in the software community who wanted to try out XP but they were having a hard time persuading their peers and bosses. I felt so lucky to have fallen on my feet and found a job at Connextra - a company setup on XP principles in 1999. Connextra took XP so seriously that we had custom-made convex desks for pair-programming and sliding pinboard and whiteboard walls in easy reach of our workstations. When we told developers at eXtreme Tuesday Club all about our XP implementation, they were sometimes a little cynical about this XP nirvana but our stories gave some developers who wanted to try XP a little reassurance that XP could really work and some ideas of techniques they could try. In some senses, they were looking for a "shoulder to cry on" and so this was the pattern I wrote on my index card at that workshop.
Amazingly, the pattern made it into the book "Fearless Change". The essence of the Shoulder to Cry on pattern is that if you are having a hard time then seek out others in the same situation - sharing stories and pooling ideas can help you pull through tough times when you feel like giving in.
We get fewer developers coming to Extreme Tuesday Club with sob stories nowadays, more people are doing XP or at least TDD, but nevertheless XTC remains a great support network that has helped so many of us and who knows, maybe it has played a significant part in the uptake of XP in UK.
I have just returned home from 2nd Scrum Gathering in Boulder, Colorado, USA. Hosted in the the historic Boulderado Hotel - a past haunt of beat poets Allan Ginsberg and William Burroughs.
A tip for frequent conference goers is that sharing a room helps cut your costs - Linda Rising was my room-mate.
Unlike the first Scrum Gathering (organized in Vienna by Boris Gloger last April) the Boulder Gathering was an invitation only affair. I had not paid much attention to the invitee list so was surprised on the first morning to run into Ron Jeffries, Brian Marick and Dan Rawsthorne. There were also a few familiar faces from Europe there; Boris Gloger, Hubert Smits, Joseph Pelrine and Karl Scotland.
After a brief opening session - when Ron Jeffries was dubbed in as a CSM (Certified Scrum Master) - not honorary as "he earned it by his posts to scrum lists". We separated into three working groups tasked with generating materials for CSM's to use: metrics, process and simulations.
My group was "The Fluffies". Our task was to deliver a simulation that could be used by CSM's to teach Scrum. Our group was lead by Esther Derby and Jeff McKenna. We had a lot of fun trying out simultations but a key learning point was that debriefing simulations is essential (you can use ICA's ORID for this).
We had great fun with Bill Wake's Daily Scrum role-play. Participants are handed secret roles to challenge the ScrumMaster's skills - such as noisy chicken, late-comer, disguised impediment, etc.
Also look out for:
* Alisha Yanik's exercise on communication with colored wooden tiles
* Kert Peterson's "Empirical vs Defined"
* Jean Tabaka's "Scrum 59 minutes"
On the second day, each group presented their work back to the whole group. The original schedule had part of the afternoon set aside to discuss future plans for the Scrum Gatherings and Scrum Alliance but due to the over-run of previous sessions this was cut-short. Scrum Gatherings will run every six months alternating between Vienna and Boulder locations. Ken wants to be able to give compenstaion for work on web-site and organization rather than rely on volunteers, for this reason the Scrum Alliance is likely to be a for profit company with directors; Ken Schwaber, Esther Derby and Mike Cohn.
The Scrum Alliance has yet to work out it's relationship with Agile Alliance (Ken was one of the people who breathed life into the Agile Alliance). However, the Scrum Alliance has a specific aim to support the growing community of Scrum Masters. Many of the Scrum Gathering participants are also XP coaches and as I am one of these I hope that the Scrum Alliance can embrace this community rather than compete with it. Going forward we should remember that the folk at the heart of this gathering care about spreading agile software development to a wider audience - Ron Jeffries wrote an article about Passion which I find a useful guide in this.
Some photos of the event can be found here.
I just read JUnit Recipes, an excellent new book on testing with JUnit by J.B. Rainsberger. I found this book very readable and am looking forward to try out some of the recipes on my current project. The book does not attempt to teach Test-Driven Development instead it focuses purely on testing patterns - different ways to apply JUnit to object and system testing - including examples of how to use JUnit extensions and specialised assertions from other XUnit projects, such as XmlUnit. The book contains many patterns that will be familiar to TDD practitioners and so will be a handy reference book for teams using JUnit.
I learned TDD at Connextra (the cradle of Mock Objects) back in 2000 when Mocks were coded by hand before mock generators and dynamic mocks were available. What I will be taking away from this book is ways of writing tests without mocks.
When I am introducing XP to a new team I usually start with a short overview starting with values. Of the values - Courage, Communication, Feedback and Simplicity - Courage seems to stick out like a sore thumb.
What has Courage got to do with writing code? Well, do you ever catch yourself saying - we should really get rid of this or there's a cleaner solution but we didn't get time to implement it (perhaps even EJB's are overkill here). The XP value of courage is all about following your own advice - swallowing the bitter pill - if the code could be cleaned up then get down to it and refactor.
The XP team values developers who step forward and do what needs to be done rather than living with clumsy solutions.
I looked back at c2 and found it refreshing how open the discussion on naming this value was. This set me wondering why Kent did not use the wiki for XP Explained 2nd edition...
I am often surprised by employees attitude to professional development. When I suggest a reading a book or attending a seminar the usual response is "if I can get my employer to pay for it" - implying that if the employer will not cough up then this is completely out of the question. Now this surprises me, as in the software industry it is rare to have a job for life. How can you expect your employer to invest in your development, if you are not prepared to do the same? Do you really need to be pushed down a career path rather than taking responsibility for building the experience to support where you want to go?
I think it is important to create your own personal development plan and to dedicate some of your own time and resources to it. Think hard about what you like about your job and where your interest lie. Set yourself some personal goals and objectives to take you along on the development path path you choose. Consider how much time and money you are prepared to spend on books, pet projects and attending interest groups. Can you commit to read one technical book per month? Why not start your own website or contribute to an open source project? Can you spare one evening a month to attend an interest group? Extending your own personal network of contacts in your industry may prove useful - in these uncertain times it is possible you may find yourself looking for a new job.
Try to get time with your line manager to share your plans for personal development. Demonstrating that you are prepared to invest some of your own time and money will show how serious you are and may be a factor in convincing your manager to back you with more funds.
Whether you get financial backing or not I am sure that you will not regret it - learning is it's own reward.