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!

Thursday, August 16, 2007

Affirmations

Every so often I come across something in the blogosphere that makes me happy:

I don't know about you, but I use [the refactoring step] to add a bit of Beauty to my code. Thanks to TDD, my code already has Truth. It works. Now I make sure it isn't just good, it's beautiful. Gorgeous. The best damned code I know how to write... It doesn't sound like much, but for me, it's the final touch. I write good code. I take pride in my work. When you look at my code, you can tell.

- adapted from James Shore's post Truth and Beauty

Emerging design

If development is the process of introducing dependencies, then design is the art of managing those dependencies.

So, design will be effective when applied after development has begun. That is, design emerges from the swamp code.

This type of emergent design is ideal in an agile environment. With techniques such as refactoring, unit testing, and pair programming at our disposal, all we need do is periodically look at our work from a different perspective and have the courage to acknowledge its shortcomings and we will be in a great position from which to emerge a better design.

Here are some tools that I've found helpful for emerging design:

Tuesday, August 7, 2007

How pragmatic are we?

In his Let's be pragmatic blog post, Jason Yip asks a single simple question:
When you say "let's be pragmatic", do you mean short-term pragmatic? Or do you mean long-term pragmatic, which means paying attention to sticking to values and principles?

The answer is obvious but unfortunately different for different people.
All members of a cohesive team should give the same answer to the question. Or should they?