XpdWiki

FrontPage
RecentChanges
XtC
FindPage
PageIndex
XpApprentices

Set your name in
UserPreferences

Edit this page

Referenced by
GeoffBache
AcceptanceTestOnl...




JSPWiki v2.0.52


XpExperienceExchange


As an XP developer (GeoffBache) married to another XP developer (EmilyBache), I have been through quite a few discussions about XP and different approaches to it in the past few years! We work for different companies, and approach the process in quite different ways, which we have, of course, discussed in some detail.

This summer, though, after one particularly confusing discussion, it gradually dawned on me that I still really didn't understand how Emily's process worked. Also, I wasn't at all convinced she understood how our process worked, despite maximum possible exposure to the ideas. What hope was there for the rest of the world?

Our discussions began to remind me of those design discussions in the Bad Old Days before XP where everyone talks enthusiastically about their own ideas and doesn't understand anyone else's ideas. Yet here we were, both advocates of a process that claimed to have fixed this problem! The wisdom goes, of course: there's no way to learn and prove an idea like trying it out in the company of a partner. This is worth a thousand presentations and theoretical discussions.

So, why not apply it to the XP process itself, and the companies doing it? We came up with a scheme to present to our employers, involving me spending a day as a guest on Emily's team, and her spending a day a few weeks later on my team at work. I sold this to my manager largely as "training" on the grounds that:

  1. I can learn a great deal by seeing another XP team in action and pick up ideas to improve our own process.
  2. We can all learn about our process by having an external experienced person come and view our process for a day: they may well find things we can improve.

To someone used enough to development and familiar with XP, this is a very intense way of learning a lot quite quickly.

So, how did it go? We had two intensive days and a lot of fun. From my side, I saw Unit Testing in action, as understood at Astra Zeneca, and began to see some of the issues involved. I didn't leave wanting to take up Unit Testing: the process seemed quite heavyweight in this respect to me with two independent automatic test suites, compared to our process with just AcceptanceTests. Get a failing acceptance test, then create a failing unit test, then write the code. Often writing the unit test was a good bit more complicated than the code it was testing, and we spent a long time debugging one unit test which wasn't testing the right thing (and was considerably more complex than the code it was testing). But I did leave with a good view of the agility of Python and was left frustrated with my own C++ system which seemed cumbersome by comparison.

After visiting Carmen Systems for a day, Emily had much the same view of C++ ("all this writing stuff in two places...")! However, she picked up our domain very quickly and was definitely an asset for the day. One of my colleagues commented that "it was very refreshing to pair program with someone who didn't have preconceived ideas about how the system should work". I'm still wondering if this was meant to be a criticism of me...

On the downside, Sod's Law kicked in and we had network problems during both days. Astra's network went down for two hours (which according to Emily it had never done before) so I had a few tours of the building... and then at Carmen a vital release build failed the night before, causing the Powers That Be to demand that it by redone in the middle of the day: thus hogging all the system resources and severely limiting our ability to build and test frequently. That had also not happened for a long time. Probably related the the Law that says that whenever you decide to demo anything, anything that can go wrong, will.

Still, I believe in this enough to want to do it again with a different company. Anyone for the Experience Exchange? We have a different enough process that works well for us (see AcceptanceTestOnlyDevelopment for the theory, but you'll never really know from that alone, of course :) ), so that should make us interesting... applicants should be part of a reasonably established XP team that they think is worth demonstrating, and should not expect to get paid or to pay anything to us: the theory is that both parties gain equally from the experience.

Mail me on "geoff dot bache at pobox dot com" if you're interested in setting up something similar with us.

-- GeoffBache


Edit this page   More info...   Attach file...
This page last changed on 18-Oct-2003 19:59:41 BST by unknown.