Friday, May 20, 2011

The Big Wall of "Why?"

I submit for your consideration - The Big Wall of "Why?"

We all love a good rant from time to time. It's cathartic. The most impassioned rants tend to be born of truly knowing a problem and its causes. Unfortunately, verbal rants are ephemeral. They go in one ear and out the other. Even if they were to be recorded or written down, they're not really accessible for a wide audience to consider. They they carry too much detail.

It struck me that many folks in our organization held vital knowledge which just never quite crossed the threshold into common knowledge because of difficulty in articulating and socializing the information. As a result, the information tends not to be taken into account when forming organizational strategies.

One day, about 6 weeks ago, I was listening to a colleague's rant about our build processes. It was like drinking from a fire hose. As I strained to listen, I could tell that he was supplying important details, but I couldn't quite parse it all into my understanding quickly enough. I grabbed a deck of Postit sticky notes and stopped him in mid-flow. Thinking of tweets and Haiku, I tried to summarize his current point on a sticky, since the size of the sticky would force us to really get to the essence of his problem. I put it on a board. I then asked him "Why?" He gave me that answer to that and I summarized it on a second sticky. Pretty soon, we'd got to the end of his chain of reasoning. I could tell he looked visibly relieved that someone else had "got it".

I left the board up in a corridor along with instructions (which I've rephrased below) so that passers by could contribute:

1. Grab a pink sticky, write something that is making your job hard.
2. Grab a yellow stick, write "Why?", include an arrow.
Repeat steps 1 and 2 until you run out of pink stickies, or complications.

Grab a purple sticky if you want to challenge whether a complication you see written on a pink sticky is still true. This signals that we might be able to unravel that particular chain of misery.

Grab a green sticky in case you know of a candidate solution to a complication written on a pink sticky.

The anonymity of the stickies and the accessibility of the format really seemed to catch on. The size constraints of the stickies forced concise descriptions of the complications. Every time I walked past the board there were more stickies, describing more issues and their causes.

Tantalizingly, we also started to see purple stickies challenging whether complications were still true and green stickies proposing solutions that would collapse these chains of blocking complications. Over time, you could see the organization discover, debate and form consensus on our main problems, their common causes and possible solutions. We even started to see additional norms develop, for example the use of blue stickies denoting JUMP and LABEL for linking stickies in different parts of the board.

Since erecting the Big Wall of "Why?" I've showed it to a number of friends who all seemed to like the idea. Why not give it a try in your organization? I'd be interested in hearing how it turned out for you and what you learned that you didn't expect.

Monday, May 02, 2011

Delivering a Call to Arms in the Toilet Cubicle

In late December last year, I moved from finance IT into retail IT for the first time in 10 years. One of the first things I wanted to do in my new role was to give a flavour of how I saw the importance of tests in software development. Given the issues with attention span and signal to noise ratios on office emails, I decided to post the following notice in the toilet cubicles of all our development offices....

A Call to Arms

We need a change. A change in the way we approach test code. Test code is just as important as the code we release to production. It's really meta-code, in that it's code that describes the behavior of production code. It has the power to either constrain or free the evolution of the production code. It dominates the architecture.

For example, how often have you seen a piece of production legacy code where everyone knows how it 'should' be written, but can't take on the refactoring work because the tests don't adequately verify expected behavior? The refactoring gets left because it would simply carry too much risk. And this is just one way in which poor or missing tests impact not only upon the correctness of the system, but its ability to change.

Anyone who's been developing for 10 years or more will have come across a number of instances where systems are replaced with functionally equivalent yet more (scalable, secure, insert your architectural dimension here) solutions. If you have come across this, now might be an appropriate time to pause for a minute and consider exactly what prevented the original system from evolving to accept these new architectural or functional requirements. With the exception of replacement of vendor products, it's most likely that it's down to an inability of the current codebase to adapt to the new architectural constraints or functional requirements.

Many architects concern themselves with scalability of a particular system architecture and may only give a passing nod towards the importance of tests. There's a certain irony to this, since there are natural limits to how well any particular system architecture will scale. Only through tests that adequately describe the functional requirements and architectural constraints will we have the necessary safety net to truly respond to scale by evolving the production architecture itself.

In short, test code matters. It really matters. It matters in a way that makes the production code seem almost trivial and replaceable. And that's a Good Thing since it means we can respond to change. I want us to start giving some real care to the unit and functional tests, just as we currently do with the code that will be deployed to production.

So, as you leave this cubicle and go back to your desk, I would ask two things of you:

1. Wash your hands

2. Shift your perspective on the relative importance of test code.

Interested in hearing more and shaping the software we create?

Search the wiki for Software Craftsmanship and come join our Community of Practice.

Tuesday, March 08, 2011

Continuous Delivery and Marginal Consumption

I've recently been reflecting on the similarities between the concept in Economics of charging at the margin of consumption and continuous delivery in software. In particular, I've been thinking about them in terms of the effect each has on the promotion of socially responsible behaviour.

For example, in your college years you probably recall parties for which entry tickets were expensive but that once admitted, all drinks were free. People who went to these things didn't consider behaving in a socially responsible way because the system of incentives motivated them to drink too much. After all, you've got to get your money's worth and the delayed nature of the consequences mean that the hangover is not at the forefront of your mind. If instead, the ticket for the party were free and each drink was individually purchased at the full market rate, this charging at the margin of consumption produces a system of incentives which yield more socially responsible behaviour. There's no longer the feeling among participants that there's a free lunch (or drink) to be gamed.

The parallels with continuous delivery are quite striking. Just as party-goers to the 'all you can drink' party don't focus on the delayed consequences of irresponsible consumption, developers in a software organization which delays the production deployment of code don't focus on the delayed consequences of inadequate testing or other expedient measures in the development of software. This problem is easily compounded in cases where the traceability of those bugs is difficult. This is akin to nobody being able to tell who was responsible for the pools of sick in the morning.

Monday, March 30, 2009

Two Dogs

Two Dogs
Originally uploaded by Stuart Blair
Got some of Lachlan's paintings home from the nursery. Is it just me that can see two dogs humping here?

Saturday, March 14, 2009

Struan Blair Arrives Early!

Originally uploaded by Stuart Blair
Pamela and I are delighted to announce the birth of our second child, Struan. Weighing in at 8lbs, 2oz and 21 inches tall. He came just over a week earlier than we were expecting and consequently, we haven't yet settled on a middle name yet. He's lovely.

See the flickr site for more photos.

It was a bit of a surprise for us how quick it all happened. At 10:00am Pamela wasn't even feeling any contractions. By 12:45pm we had another son.

He came so quickly that they didn't get the time to administer any form of pain relief. To celebrate both the birth of our second child and the end of her gestational diabetes, I brought her in a huge bit of chocolate cake. Mother and baby are both doing well and will hopefully be home tomorrow.

Sunday, March 01, 2009

Toes up the nose

Lachlan has just invented a new game which involves him taking his socks off, sitting in my lap, swiveling round and jamming one of his toes up my nostril, while gleefully singing "Toes up the Nose!"

Not that I want to go all Victorian Dad all of a sudden, but it does make you wonder what happened to respect for ones parents.

Thursday, December 04, 2008

My Buttons

You know how after a while you just get used to seeing homeless people in San Francisco? It just gets to the point where it no longer shocks. Coming out of the Bart this morning I saw a Mum and her toddler with a note saying "Please help - stranded and homeless". Beside them were a couple of bags with all their worldly belongings in it. I could see a tonka truck poking out the top and the wee boy was playing with his crayons.

This pressed my buttons in a big way. I had $10 in my wallet so I went over and gave it to the Mum. I consoled myself thinking that considering the volume of passing pedestrians and how shocking her predicament was she'd probably have $300 by lunchtime.

It's funny how identifying with someone entirely changes your viewpoint and response. It's like when they show pictures of toddlers crying on telly. You feel ill if you don't do something about it.

Friday, August 29, 2008

Delighted to announce.....

Originally uploaded by Stuart Blair
Pamela and I are delighted to announce we're expecting a wee brother/sister for Lachlan in late March 2009. Here we go again!

Saturday, April 05, 2008

Deja Vu

Originally uploaded by Stuart Blair
Same bench in Sausalito 3 years on from when we last visited and wouldn't you know it, there's the same guy we posted a blog entry about. Again, spreading the love with his dog - 'Caji Dog' dressed up and singing for the bemused passing masses.

We stopped and chatted and wouldn't you know it, but he's got a web page:

Surfing at Bolinas, CA

Originally uploaded by Stuart Blair
Oh come all and bask in my gnarly wave-catching abilities. Or maybe not. Pictured here is my most successful attempt when I managed to get up on my knees before being thrown off the board. Maybe I'll stick to sailing. I was also told by my colleagues (after I'd been surfing) that the sharks spawn just up the coast from here. Oops.

Sunday, March 23, 2008

Painting Eggs

Originally uploaded by Stuart Blair
Since this was to be the first Easter Sunday that Lachlan would be able to roll an egg down a hill, we boiled some up and stopped by a shop for some markers to paint the eggs on our way up to Golden Gate Park. Lachlan was sleeping in his car seat, so we decided to have a go at painting ours while had a nap.

Pamela was in the front passenger seat while Heather was in the back with Lachlan. Neither could see what the other was painting on their egg, but once they were put together. See the middle two eggs. Pamela's is on the left and Heather's is on the right... Super creepy isn't it. Even the choices of colours is the same. I'll bet they have their own language that they only use in each others' presence.

I also liked Lachlan's impressionist egg.

Tuesday, March 11, 2008

I ♥ San Francisco

Sorry for being so quiet. We've had quite a rollercoaster ride in the past couple of weeks. We've signed the lease on a house in Walnut Creek which looks like something from the set of Desparate Housewives, we've done battle with the department of Social Security to get numbers, we've got US bank accounts, credit cards and cell phones. I've also started work and it looks like I'm going to have a really good time here.

So, in words and pictures, here's why living and working in San Francisco and the East Bay rocks:

The people are genuinely interesting and are genuinely interested in what you have to say.

The culture is one in which personalities don't compete, but ideas do.

There's no gung-ho work til you drop attitudes or cowboy coding, rather it's about working smarter and recognising that you're doing yourself and your team a disservice by burning the candle at both ends.

What the locals consider to be a 'Storm' would be interpreted as a bit of a wet day in Scotland.

I've yet to see graffiti, a dog turd, phlegm or broken glass on any pavement. You can actually just look straight ahead and enjoy the view.

It's a myth that you can't get decent cheese or alcohol free beer here.

The food is plentiful, cheap and very good.

Petrol is laughably cheap compared to the UK, but despite this, there's still a great deal of interest in recycling and the use of hybrids.

The sailing waters in San Francisco bay look amazing.

This is winter -

More pics at

Friday, January 11, 2008

So long and thanks for all the fish

After 5 years at JPMorgan, it's time to move on.

I've accepted a position at another financial institution in San Francisco. I'm really looking forward to the new job and our family's new life in California.

My decision to leave Morgan's is tinged with sadness, as I'm leaving behind an XP team of talented developers that I really respect, each of whom crossed from colleague to friend a long time ago. I'll miss you guys. Stay in touch.

It seems that every time something 'big' happens that I'm not used to, I become a prolific blogger. Given what's due to come up in the next couple of months I'm expecting to make quite a few posts. My new firm has laid on a fairly comprehensive relocation package, so an awful lot of the hassle has already been dealt with by someone else. Even so, I expect there's going to be some blog-inspiring stuff.

Sunday, November 25, 2007