Tuesday 23 December 2014

Jim Shore - Q3

Q3 - What has been your most satisfying Agile experience?

My favorite aspect of agile development is the collaboration and camaraderie that builds up over time.  The really great teams have this intense energy to them.  People laugh and joke and really have a lot of fun.  The work fires on all cylinders and there's this feeling of immense productivity.

I love that feeling.

I first experienced a hyper-productive team with my second XP project.  I first tried XP out on a small project (three developers) and had moderate success.  The manager asked me to come coach a larger dev team and I convinced them to give XP a try.  We worked together for nearly a year, and then I moved out of state, set up a satellite team, and we continued working on the same codebase for another six months.

That project was probably the most fun I've ever had at work.  We all got along very well.  Most of the team would go out for lunch together every day.  We pair programmed, wisecracked, and produced some of the best code I've seen.

The code didn't actually start out all that well.  It's not like we were super-geniuses or anything.  A lot of it was my fault: I didn't totally trust XP's ideas of evolutionary design, so I worked with one of the leads to create an up-front architecture.  It was terrible!  We didn't know that, of course.  But we gradually improved it, and by the end of the first year we had a nice, elegant abstraction.  That project taught me that code can actually get easier to modify over time, not harder, so long as you commit to constantly improving it.

(I wrote a paper about the experience of constantly improving design for the first XP Universe, here: http://www.xpuniverse.com/2001/pdfs/EP203.pdf.  That was seven years ago... I'd probably be embarrassed to read it now.)

No comments:

Post a Comment