Saturday, September 15, 2007

Test First, Test Driven Development and Distributed Agile

The more I deal with severely distributed teams (long way from Vancouver to Siberia!) the more I have come to view Test First and Test Driven Design/Development as a must for success. It is an uncontested fact that the lack of co-location is the largest downside to a distributed agile team, you can view the communication link within an agile team as a water system.

For a co-located team, the communication is a vast pool of knowledge that everyone can dip into whenever they please. As soon as you divide the team up, even if it is from one room to another, you need to put a pipe in place between these pools. The further apart you place the teams, the narrower the pipe becomes.

Now one needs to ask, how best can we fill this pipe? Are there any ways we can shore up the pipe with other means of communication. This is where I see Test First, TDD, executable requirements, Fit, whatever you want to call it but activities that help the team communicate the requirements and validate that the design and development underway meets those requirements without the constant need to fill up the pipe with clarifying questions.

Now pardon my belaboured use of the plumbing analogy (can't help it, I am an engineer!) but after an initial flood of communication clarifying tests and requirements at the beginning of the sprint/iteration/whatever (we need to start to have a unified language for these things ... a blog post for another time), these agreed upon, well understood, and continuously executed tests leave the pipe free to be used to communicate about creative problem solving and more truly profound questions about requirements, not questions like "should the discount be applied AT $50 dollars or AFTER $50".

The Break Between Sprints

One element of agile development that is often forgotten in the heady drive to increase velocity is to truely take a break and recharge those creative juices. This struck me at a concert during the aptly titled song "White and Nerdy" by none other than Weird Al.

We all have to remember that you must play hard to work hard. Who better than Weird Al to let you laugh at him, the world, and most importantly yourself.

Wednesday, September 12, 2007

Weinberg on Agile

In his article 5Qs on Agile with Gerald M. Weinberg Gerald Weinberg tries to foresee the agile movement's fate:

Q4: What is the future of Agile?
First we will drop the capital A. Then we will drop the term "agile" altogether. Agile methods will be successful if and when we stop seeing them as anything other than normal, sensible, professional methods of developing software.

Sounds like a plan, doesn't it?

Thursday, August 23, 2007

Agile 2007 Conference Notes from a Newbie

What a week. I’ve never done booth duty before, and as a introverted product development type, it’s exhausting. I tried to flee to attend as many session as possible, mostly product management and Fit related sessions. So here goes with my notes from the conference:

Monday

Did some booth setup and attended a session by Naresh Jain of Thoughtworks and Micah Martin (yes, Uncle Bob’s son) on Acceptance Test Driven Development, where they described a lot of patterns and best practices in ATDD and using FitNesse. Some of the main ideas: write independent tests, don’t put everything in one big test, cleanup and teardown after your tests, avoid repeating by using includes, and don’t have too long of a feedback loop when using a build tool like Cruise Control – try out open source products like ProTest to get you feedback on your checkin within 5 minutes.

In the evening we checked out the ice-breaker in the ballroom and had a good chat with Rick Mugridge, the creator of Fit library. He was a walking booth with his ZiBreve shirt and hat – the shirt even had screenshots.

Tuesday

From my booth I could see a bit of the keynote by Susan Ershler. I spoke to her afterwards and got her book for my husband – she’s pretty inspiring. She and her husband were the first couple to climb the Seven Summits, including Everest. On her quest up Everest she had to try it a couple times, and go up and down to camps so the basic idea was sometimes to reach new heights you gotta do a bit of backtracking, and struggle long and hard.

Then I worked the booth. A fellow Canadian I met in the cafĂ© suggested I attend the session on Google’s Agile Adoption and I wish I had – I heard it was excellent.


Wednesday
I was up, bright and early, to check out Rick Mugridge and David Hussman speak about Executable project documents (basically about Fit). We spent some time writing up user stories and Fit tests. David was funny and it was well presented, but it was basically the same content as in the Fit book, “Fit for Developing Software.”

Then in the afternoon, I checked out the leadership symposium in the South Ballroom. Saw 2 good talks, one on Agile Memes (successful Agile patterns basically) by Steve Baker and Joseph Thomas from DTE Energy and one on Enterprise Agile at Yahoo by Gabrielle Benefield. Steve described how they got their big energy company using Agile by slowly phasing it in, trying on pilot teams, and getting teams to volunteer to try out scrum. They did their scrum meetings in the cafeteria and were open to people listening in, and made it fun by dubbing it “Big Pop Time” (someone started a trend of getting a huge pop and making scrum a fun break in the day.) Gabrielle described how she similarly piloted scrum at Yahoo and got mass appeal by giving out cute Agile t-shirts, hiring very outgoing Agile coaches, making it a defacto almost subversive process rather than mandated. She basically made scrum and Agile cool, and it spread around Yahoo.

Thursday

I went to Gabrielle Benefield and Michael Holzer’s session on User Centred Design for Agile projects. They described their unusual research methods for finding out what users, in their case teenagers, wanted out of products and creating user profiles to help understand their target market.In “Agile Ghettos or Thriving Communities”, Chris Avery and Michael England presented the idea that we should have Agile methodologies move beyond product development departments up to the executive level. There is a divide between these levels, and having a scrum of scrums and more collaborative work between executive could bring productivity gains. They described many case studies of this working at unique companies, including WL Gore (they make Gortex). And Friday we flew home. It was an exhausting week and I did a lot of demos of FITpro and got some feedback, but that will be the topic of another blog post. See you at Agile 2008 in Toronto!