could combine to make a really cool TV gameshow just like IronChef
We have two groups of ten geeks. One group does an ExtremeHour
, the other does a RupHour?
The "special ingredient" here is the project vision. And we could take bets - if we could convince the ThreeAmigos
to pony up some of their ill booten gotty, we'd make a mint!
Well, we finally went and did this at the XpTwoThousand
conference. The slides are at http://home.san.rr.com/merel/igeek.ppt
, pictures are on IronGeekXpTwoThousandPhotos
, and here's some observations:
Things that worked:
Things that didn't work:
- Scoring & structure based on IronChef plus the 7 ten minute periods from the XH.
- Two magnificent teams - kudos to all 18 - and two great coaches, KentBeck & FrankWestphal
- Great courage on the part of MicheleMarchesi to let us do this without a precedent.
- Wonderful running commentary from Jutta, Don & Ralph. Excellent gags from BobMartin, RonJeffries, & Beck himself, who staged a 4 minute "vacation" for his whole team right in the middle of the event, brought food and coffee, and got into a dust-kicking argument with the umpire when his rather - um, liberal - interpretation of the rules was questioned.
- A very interesting innovation from Beck's team. Rather than have the testers work independently of the developers, per the original ExtremeHour, the testers and developers worked together from the outset. To do this right, of course, you'd have to have some independent team actually run the tests. Maybe the panelists could do this as an analogy for the IronChef "Tasting".
- At the last minute the hotel couldn't supply any whiteboards, so we had to make use of projectors and flip charts. This made it a great deal harder for the audience to figure out what was going on.
- Having customers and programmers on the same team. The customers got very conservative because they didn't want to give their own programmers anything very hard to draw, so the stories weren't really challenging enough. To address this, LeahStriker?, a member of Frank's team, suggested that next time we have the customers from one team give their stories to the other team.
- Inadequate production staff. Having the 4 panelists was great, but we really needed another 2 or 3 folk to run around directing and coordinating. As it was, Ralph and myself sometimes left "dead air", which wasn't helped by the lack of white-boards.
- Focusing too much on coaches. The teams needed names, colors, themes & costumes. Perhaps also different colored hats so it's easy for the audience to identify the roles being played.
- One of the judges, not to name names but you know who you are, didn't judge entirely based on deliverables. Impartiality is important if this event is to gain popularity - no one enjoys a BoatRace. This isn't to say FrankWestphal's team didn't deserve the win - they did great! But Beck's team deserved to be judged based on their performance, not their associations.
In general, as far as I could tell, a wonderful time was had by all. In addition to the 24 participants, by the end of the 100 minute presentation we had a full house in the audience - about 200 people. Brilliant performances from all, I really hope we can make this a regular event. Maybe next time we can give every conference participant an opportunity to participate. -- PeterMerel
It was great to see the two teams compete, no matter which won. As a spectator it was probably not as much fun as a participant, but it was still good to see how it worked. I will certainly try it out. PeterGassmann
I talked with Kent afterward and he didn't think that the first category of score, which was coolness of features, was really an appropriate one to grade a team on. Upon reflection, I agree. I would even go one step farther and say that the second category is not a good one as well. The second category was simply that the judges think the machine as designed would work. (Think about it...we're talking about machines made out of transparencies and ink.) The important thing to judge here is the team's usage of the XP process and not the finished product. I was thinking that seeing important XP behavior emerging would be scored. There was the point when Kent's team began to TestEarly
before development was finished. There was also the time when a developer on Frank's team solo programmed a piece of the machine, but then threw it out and started over pair programming it. We should refactor our scoring mechanism to emphasize that kind of behavior.
Also as AlistairCockburn
pointed out (I think it was AC) it is the team that wins and not the coach, perhaps in the future we should have teams created in advance and compete together instead of specific coach. The coach would simply be one more member of a team.
Another useful thing would be to hand out clipboards with score sheets to audience members. This would get a larger portion of the audience more into the game I believe.
More space. The teams could have benefited from removing the first 4 rows of chairs from the room.
Kent had run an extreme hour many times before and Frank had never run one. Generally speaking, the idea behind the extreme hour is to teach people what XP is about. If we look at it from that point of view Frank learned a whole lot more from the experience than Kent did. Unless of course maybe Kent learned never get involved in a coaching war in western Italy.
I myself liked the animations and interchangeability of parts given by the overhead slide format, but I have not seen the event run with white boards.
Now to answer Peter's claim that it was a BoatRace
, I did try to judge fairly. But I was watching the Beck team exclusively during the competition because I was their reporter. Having audience members score would fix that problem.
I agree with the idea of customers from one team being the customers of the opponent's team. This sets up an adversarial role not unlike the real world in some ways. The team needs to then be scored on their ability to negotiate with the customers. However the customers must be reasonable during such negotiations, clearly a referee must watch the negotiations for fouls since it is at this point that the two teams interact. -- DonWells
Agreed Don, and apologies if you felt implicated in the IronGeek fixing scandal. Speaking as umpire and confederate, I take full responsibility for it. If there were a tribunal I ought to get banned from the sport. Heck, first person banned from the world IronGeek championships, now there's a dishonor I'd put on the rezoomee.
If memory serves me right (Ralph has the slides), the categories were originality/coolness, suitability to vision, quality of testing, quality of factoring/integration, and team integrity/fun. I wanted the first one because I thought it would inspire the customers to try to do interesting things. In my mind the second one wasn't so much that the machine would work - ensuring that is the tester's job - but that the stories were suitable to the vision.
I want to make it clear publicly that I feel very much in debt to Don for the fun we had in this event. If it weren't for his staunch support and exceptional diligence, it never would have happened. Don was also behind the SSQ ExtremeHour, and deserves kudos from me, not brickbats.
Speaking as one of the customers, I don't think we were conservative at all. For example, we threw in an off-centre requirement in the second iteration, just to liven things up. If we hadn't done so, our team might have shipped more (also, we didn't have suitable overhead pens!!!). Don't forget, we also broke the rules by calling in RonJeffries
as a HighlyPaidConsultant
to bring the team back on track.
An interesting innovation would be to have developers and testers separate in the first round, then integrated in the second, so they could experience the speed-up.
I'm not convinced about making customers adversarial. At root, most people want to ship - they get adversarial when things don't work out as they thought. When I've been running ExtremeHour
s, I've had the customers do the presentation at the end - it makes them concentrate on what they're getting and whether they really want to put their name to it in public.
In London, we've been moving more towards making the drawings a storyboard. It shows more detail (can't just draw another knob on the front) and is easier to estimate (count the frames).
Talking about involving more people (and inspired by the fact that it took place during the EuropeanCup?
) we could run it as a league table, where teams are involved in takeovers at each round. The LondonExtremeHour
has always been run with everyone participating, rather than as a show. -- SteveFreeman
As a Beck Team customer, I'm afraid we probably took the task too literally and actually tried to come up with requirements for a fishing robot (we even put a beer cooler on it in the second iteration). I like the idea of someone throwing a curve ball in half way through (some kind of unexpected regulatory requirement for example).
Generally, for an event like this, I suspect some more pre-game preparation would be helpful. This is not a criticism of IronGeek
at all, I had a great time and really did learn some lessons about XP from it (Specifically that the team were great, working that way is fun and that a highly motivated and involved functional testing team makes a HUGE difference (thanks guys).
If I had time to prepare I would like to put more role play elements in there. Like pulling a team member out at some point, switching a customer out with someone else, maybe producing some joke background and 'pre-marketing' material to try and set the tone.
It would be really great to run it early in the conference, as an ice-breaker it was second to none! Steve's (or was it Peter's?) idea of a series sounds like fun. The scenario would be that the teams were different companies trying to fill a market niche, at the end of each session one 'company' would go under until we had our new monopolist by the end of the conference :-). -- TomAyerst
If you want role-playing, develop a set of actuarial tables, then roll dragon dice at fixed intervals to introduce random events! -- PCP
As the other one of FrankWestphal
's customers, (the one who recommended MisterRonJeffries
) and someone who's run a few ExtremeHour
s, I felt that an hour (or so) wasn't enough time for an IronGeek
works well in a short time with a few people, but adding so many extras to it (2 teams, inexperienced coach, the extra role-playing that Tom suggests, etc.) the fact that the teams were made up on the spot, and the complexity of the task (RobotFisherman?
) I think that I wouldn't run an IronGeek
except in an ExtremeWorkshop?
where I had half a day or so. Longer iteration time, maybe three iterations, more time to present the findings at the end etc etc etc etc.
is quick, dirty and to the point. I think the added benefit of IronGeek
needs extra time. (but I loved it :-)
Sounds like you need three teams, each of which has customers and geeks. You pair up Team A's customers with Team B's geeks, Team B's customers with team C's geeks etc.
pointed out, it's a team effort. In this spirit, I'd like to give credit to the brilliant people on the team. The real IronGeeks