Title
Extreme Programming: What do you want to know? A fireside chat with expert practitioners.
Format
- Brief story or topic related to XP from each member.
- Gather topics from the audience.
- Discuss topics gathered.
- Five Ahas from the students
Presenters
GaryShea, KatyaPelekhov, KayJohansen, JeffGrover, ZhonJohansen
Topic selected by the students
- What is XP?
- How does it improve productivity?
- How do I XP all the way?
- How can I make a company switch?
- How does it differ from "traditional" methods?
- How many programmers can XP handle at a time?
- How do you pair?
- Communication in XP
- Estimation of effort
- How do you design in XP?
Brief Stories
ZhonJohansen started by introducing the participants, and ecouraging students to listen carefully and take notes in case they happen to have an interview with one of the presenters soon. He promised that a well thought of question about the merits of test-driven development during the interview will move the questioner's resume to the very top of the pile. Zhon explained the format of the presentation and turned the spotlight over to the rest of the gang.
JeffGrover went first by asking the audience what they thought of a Dennis Nedry (computer expert) character from "Jurassic Park". Replies like "nerd", "antisocial", "could blow everything up" followed. Jeff probed further by asking how could he blow things up so easily. "He worked alone". Jeff then asked if anyone in the audience wanted to be become more like Nedry. No one seem to volunteer. Jeff pointed out that XP programmers are the opposite of Nedry: social, sunny people that build things, not blow them up.
KatyaPelekhov realised that she is in a tough spot having to follow up such an entertaining discussion, and simply stated her history with XP. She brought up three aspects of XP that she surprised her most (and that schooling did not prepare her for): efficiency of pair programming and automated testing, and the ability to make long-term accurate estimates.
GaryShea compared XP to living without chairs. Lots of places in the world forgo chairs, which seem strange and uncivilised at first, but creates much less lower back problems in people practicing it. He said that XP may seem strange way of doing thing at first, but invited everyone to try it and see for themselves if it has merit.
KayJohansen followed with an account of her experiences with XP.
Topic discussed
- What is XP?
Presenters tried to define XP, but it sounded so very Zen, so they decided to wait until discussing how it is different from traditional methods to properly define XP.
- How does it improve productivity?
- How do I do XP all the way?
Jeff defined doing XP all the way as improving every day.
- How can I make a company switch?
Even though all presenters were very much excited about this topic, it was cut from the discussion due to time constraints
- How does it differ from "traditional" methods?
- How many programmers can XP handle at a time?
- How do you pair?
That seem to be a topic students were most curious about. That generated some confusion among presenters, who asked "so, do you want us to demonstrate?" and started looking for a stray keyboard laying around. After a few seconds of confusion they got their act together and described what is going on during pairing (sharing workstation, passing keyboard around, "thinking" role vs "typing" role...) Zhon shared a few tips on importance of personal hygiene.
Jeff mentioned that it takes certain courage to pair: no one is infallible, and admitting own mistakes as well as nicely pointing out someone else's missteps is the key. Kay noted that it is junior developers that may feel threatened by pairing, senior folks have no problem with it.
- Communication in XP
- Estimation of effort
Never got to this topic either due to prioritizing remaining topics, and lack of interest from the student audience. Curiously this is a topic that was of the great interest to the practicing software professionals (presenters), and generated a lively discussion among them on the way back to the cars.
- How do you design in XP?
There was a question of what was meant by "design"? Job done by product manager communicating with a cutomer and lining up stories? Design as in using design patterns? Refactoring? The presenters touched on all those meanings.
- Stories between the topics
There was a story of what you would see if you happen to be in XP environment: pairing, people consulting each other, big room, story board..
And another story of how Zhon and Katya paired the first time (they remember it differently).
Five Ahas
- Try unit testing
- Try pairing
- It was cool to see that people are really using XP and it is working for them.
- One student came down after class to tell us his aha: while working on a game, he stayed unstuck by sharing space with other programmers.
