Renamed to ExtremeFishbowl. Further conversation will continue there.
Following in the vein of such successful educational activies as XpForaDay, ExtremeHour, ExtremeHourWithActualProgramming, IronGeek, watching KentBeck pair with JimNewkirk refactoring RobertMartin's *particularly nasty* prime number generator at XpImersionOne combined with watching and running successful FishBowls, ZhonJohansen thought XpProgrammingInaFishBowl could be an interesting XpExperience (experiment?).
The three requirements for a FishBowl are 1) people involved in conversation; 2) people watching; 3) the watchers can become participants; 4) only those in the FishBowl can participate. The basic requirements are as follows:
- People will be programming in an XP fashion.
- Others will be watching.
- The watchers will have the ability to participate.
Hey, Zhon, you can count to three, right??? -- BaB
In order to accomplish these goals (and be interesting), we will need:
Four computers with attached programmers in the FishBowl
- Each computer will be attached to an overhead projector
- One of the computers will be used exclusively as a refactoring computer
The UserStories will be publicly available
- The design of the software will be in a public place
The things we wish to show to an eager, actively, learning audience include the following in no particular order
- Refactoring in practice
- The dynamics of pairing
- Team conversation in action
- Well factored code in creation
- JUnit in action
- Celebrities on the spot
- Pair Promiscuity
When presented at the March OoRoundTable, many ideas and much enthusiasm was generated. Here are some of those ideas:
A commentator is required to point out the nuances (possibly include a color commentator, JohnMadden?)
- Have the ability to do replay
- Show the design as it evolves (possibly using large sticky posters)
Have invited guests (e.g., KentBeck, RonJeffries, WardCunningham, RobertMartin, etc.) both program and commentate
- Have the next person to join the group watch the coding for 15 minutes (with the exception of invited guests)
- Add a new programmer in every 15 minutes
- Interview each programmer as they leave the group
Some of the questions that still remain:
- How long should this activity take
- Will we have enough audience participation (many people are terrified to program in public)
- How do we show the evolution of the design
- What code should be worked on
- How much code should be present
- What are the hardware and software requirements
After having our MarchMeeting where we experimented with ExtremeFishBowl (renamed from XpProgrammingInaFishBowl), we will had a number of new suggestions:
- Collect the biography of each programmer
- Make name tags with numbers
- Keep a visible clock and switch on the 15 minutes
- Have the environment in place
- IntelliJ
- cvs
- network
- code in place
- ant
- Interview one of the programmers as they leave
- Have a customer available for questions
- Show a working copy of the application
- The number of comentators should be three (and three is the number, not two except to continue...)
- Programmers and commentators should not speak to each other
- It is possible to bring in a contractor (someone waiting to enter the group) for a limited time to answer a specific question
- Each role should be clearly designed
- Cards with the roles rules should be given to each role player
- Commentators should be given card to start conversations
- The goals of the game should be as follows:
- Present the program rhythm (Refactor, Test, Code, Test, Code... Refactor)
- Show activities not usually seen in demonstrations (What are these?)
- Learn other peoples styles
Here are the roles and responsibilities:
FishBowlProgrammer (two for each computer)
- Refactor, Test, Code, Test, Code, Refactor
- May only speak to Customer
- Watch the programming, will be a Programmer in the next turn
- May not speak to anyone except Programmers
- Customer (singleton)
- Keep the programmers supplied with stories
- Answer programmers questions
- May quietly get stories from Audience
- Probably should have an assistant
- Statistician (one per pair)
- Observes and gathers interesting statistics
- Mostly will hand notes to the Commentators
- May only speak with the Comentators
- Commentators (three and only three)
- Will be continuously speaking about interesting XP things (pairing dynamics, design tradeoff, tests, people, etc)
- Will speak to each other
Will not speak to the Programmers --KayJohansen
- Moderator
- Keep the turns moving
- Make sure all rules are being followed
- May speak with anyone
