As I am spending time doing fieldwork at IBM's Dublin Software Lab, I had the opportunity to attend a talk by Erich Gamma yesterday. He is one of the authors of the famous computer science book Design Patterns (thus 1/4 of the Gang of Four) and one of the people behind Eclipse and, currently, JAZZ.
In fact, I was in a bit of luck: I first heard of his talk as it was announced that he'd give it as part of the Lero Topics in Software Engineering seminar series at UCD. But that was in the afternoon and I was dreading facing the Dublin traffic to get down there in time. However, by coincidence I overheard some people mentioning the talk and it turns out he was giving the exact same talk at the IBM lab in the morning that same day! No need to travel further from my comfy desk than down to the local auditorium...although I did make a detour to the in-house cafe to acquire a nice, big cup of coffee. ;-)
The title of the talk was "Developing Software like a band plays Jazz" (see full abstract here). It was a very interesting talk, mainly focusing on the agile practices applied when developing Eclipse and how reflections on this lead them to developing JAZZ and has formed the underpinning values embedded in this software. JAZZ integrates functionality and support for all major areas of software development - development, collaboration, project management, and organisational processes - and mainly emphasises the importance of transparance and general awareness.
I especially liked one of his main points, namely the importance of having an agile rythm in the project. They were working in 6 weeks cycles, delivering a working build at the end of each iteration. This held product quality at a constant high level throughout the project life-time, avoiding the common "hanging rope" trend that many projects experience: the quality and stability of the developed product is at the highest in the beginning and end of the project, but is at a constant low in-between, forming a sort of "hanging rope" curve. With agile 6-weeks cycles, the cruve rather resembles waves, as the quality and stability is raised again at every iteration. Among other things, this is very good for motivation and maintainance of a clear vision of the final product.
It was a very interesting talk that gave an insight into the practices of this high profile software development project (albeit mainly from a process point-of-view, IMHO). In addition, the team I am working with at IBM are, in fact, using a beta version of Rational Team Concert (built on the JAZZ plattform) and are applying many of the same agile principles as the Eclipse/JAZZ team, so most of the developers were attending the talk with me, making it all the more interesting!
Some podcasts about JAZZ and Rational Team Concert:
Kartik Kanakasabesan, product manager for Rational Team Concert, discusses the development environment Rational Team Concert is designed for and looks at some of the challenges Rational Team Concert is intended to address
Lee Nackman, Mike O'Rourke, and John Wiegand, Rational leaders on the open beta of Rational Team Concert Express