Stephen Freeman Rotating Header Image

October, 2007:

Sustainability on XpDay Manhattan

Tired Scientists

Now the dust has settled, I can reflect a little on the recent XpDay Manattan. I was impressed by the quality of the people there, and how everyone pitched in to the OpenSpace sessions, I have vague memories of people trying to sort out J.B.’s life whilst my jet-lag kicked in. Some people came quite a distance to get there, so Joe’s providing a useful service. Unfortunately, Naresh Jain, who was also talking, got stuck on the way home

For my talk, I chose the concept of Sustainability, in its widest sense, partly because I’ve done a couple of project where I end up looking like the picture above. I used a definition from the UN’s Bruntland Commission

[meeting] the needs of the present without compromising the ability of future generations to meet their own needs.

which sounds to me like a pretty good description of how we should run development teams.

There were so many things I wanted to cover that I ended up doing an Alphabet Talk. That way, if the audience didn’t like a topic there’d be another one along in a couple of minutes. The list is below. Most of the topics should be obvious to a sophisticated Agile expert (like you, dear reader), but there were a couple of points I noticed along the way. First, most of the points are about people, but you still have to have the technical skills to deliver. The other thing I realised (finally) about putting all the data up on the walls is that it’s an invitation to stakeholders to join the team.

Accountability Looking around
Attitude Mistakes
Build Nice (Be)
Continuous Ownership (Collective)
Deming, W. Edwards People over Process
End-to-end Planning
Estimates Quality
Feelings Rest
Fix it Now Retrospectives
Get up from your chair Self-respect
Gold cards Skills
Habitability Transparency
Help (Ask for it) Uncertainty
Initiation, Project (Regular) Value
Initiative Values
Just in Time Whole team
Kaisen XP
Kanban YAGNI
Learning Organisation Zero Bugs

1Picture from

Another one-liner from Jason Gorman


Thoroughly designed? – I mean, not just having a UI layer and a process layer and a business layer and a data layer (which is how a child might draw a software application’s architecture – in crayon).

XpDay filling up

As of today, XpDay London has about 35 places left. Register soon.

I've been cited…

Euan Semple has quoted my comment about the state of ICT education in British Schools (and elsewhere, I expect). In a more imaginative world, our education authorities would have picked up something like MIT’s Athena project, centrally administered to make it more reliable, avoiding the traps of ageing local hardware and inadequate support. The contrast of our education system with the greater ambitions of the One Laptop Per Child are striking.

In the meantime, I watch my 8-year old using our laptop and he has no problems navigating the standard packages. What he does need guidance on, is understanding the rewards that can come with deeper engagement with these amazing and frustrating machines. Right now, I’m trying Scratch, also from MIT, on him to see if it takes.

Oh, and there is one useful skill that should be compulsory, which is touch typing.

Update: It turns out that Google want to address this issue too.

Maybe I should have gone to the APLN Summit

I have an allergic reaction to events called “Summit”, but judging from this posting it sounds like there were some interesting discussions.

Indirectly, I can second the comment on Israel Gat’s presentation, I shepherded a BMC experience report for Agile 2007 and it sounds like a very effective organisational turnaround. The author was so enthusiastic, I couldn’t get him off the phone 🙂

At Citcon Brussels

I’m back from Citcon. So a few more notes

Things people have shown

The worst build I ever worked saw…

We had a hallway discussion about some of the difficult build environments we’ve worked on over the years. A bad build can be really unpleasant to work with and a blocker to progress. One project I worked on burned out three developers in a row trying to get a messy build under control.

The discussion reminded me of something I always knew but only figured out recently, that a complicated build is often a symptom of design weaknesses. So when I’m thinking about adding another little tweak to the build to fix a problem, I should first take a look at the code to if there’s a root cause that I should address first. For me, the classical example of fixing the wrong problem is a build that changes the code to set parameters, which means I need to build artefacts for each configuration. Usually this requires lots of copying stuff around, which takes time and is harder to track. The real answer is to have clean artefacts that can deployed anywhere and separate out the per-environment features.

Concurrent builds

As often happens, the most interesting snippet for me was right at the end.
Jeffrey Fredrick talked about how his group has an optimistic, rather than pessimistic, approach to running multiple builds. They run all their builds in parallel, rather than having a pipeline of increasingly complicated tests, and people can check in provided they pass the fast check-in build that catches the obvious errors. The corollary is that people can check in even when there are broken secondary builds, which is a bit shocking to the hard core. Usually, any failures settle down as check-ins ease off towards the end of the day.

The idea is to get feedback as soon as possible, and to avoid the problem that some teams have where it’s hard to get a check-in window because it takes too long to confirm the last one. Of course, they have a culture that makes this work: they’re doing shrink-wrap so their release cycle is longer, they have enough hardware to run in parallel, and I assume that people have the initiative to pick up failed builds and fix them.

The Balle-Argentee method of business improvement.

A brilliant fable about how good ideas get corrupted. Is your organisation at Phase 8 yet?

via Dave Snowden

One Build Monitor per child

The One Laptop Per Child project will be offering a Give 1 Get 1 program for a little while. We all know we want one to play with but haven’t found a good excuse yet. So propose to your management to use them as build monitors, they might even be tax-deductible.

I’m just hoping we can find a way to get hold of them in the UK too.

A fail-safe address book?

My mobile handset has the unfortunate property that it’s easy to press the wrong buttons when I grab at it to answer a call. I’ve just discovered that I made a rather expensive international call this Summer to the first person in my address book, called Adonica, while responding to someone else. It looks like most of the call took place on Hold.

In an attempt to idiot-proof (i.e. me) the Nokia design, I’ve just added a dummy user “aaa don’t call” with an invalid phone number that will come first in the address book. I’m waiting to see how many times I dial it.

Sorry Adonica

Another great way to lose track of time on the Web.

I just bumped into this service from Blogger. It shows the pictures that are being uploaded in realtime. I don’t know why but it’s addictive.