Some days it’s worth getting into work early.
That’s the skyline from our Holborn office this morning – the London Eye, the south bank of the Thames, and Big Ben and the houses of parliament on the right. My little phone can’t capture the full magnificence of watching the sun rise, but I hope this snapshot gives you a glimmer of inspiration today.
Snow on the way.
Microsoft debug their words
For anyone who’s following the whole kafuffle over Microsoft and their recent misdescription of TDD, you may be glad to know that it’s been removed, and will hopefully be rewritten following feedback from the Agile and TDD community.
I remember an old geek joke: “How many Microsoft Engineers does it take to change a lightbulb? None; they just declare darkness to be the industry standard.”
The world is changing in some strange and beautiful ways. I’m still going to buy myself one of these, though. Champion of the Underdog, that’s me.
BDD and multiple assertions
Yesterday, during some excellent conversations with the XtC, I found myself thinking about the “one assertion per test” rule which Dave Astels proposed, and which many people advocate for Test-Driven Design.
I think it’s important that each method in a test should test only one thing, but sometimes I find it’s more helpful to use a couple of asserts to do that. For instance:
public void testShouldHavePopulationOfOneWhenOnePigeonAdded() {
PigeonCoop coop = new PigeonCoop();
coop.add(new Pigeon());
assertEquals(1, coop.getPopulation());
}
public void testShouldHavePopulationOfTwoWhenTwoPigeonsAdded() {
PigeonCoop coop = new PigeonCoop();
coop.add(new Pigeon());
coop.add(new Pigeon());
assertEquals(2, coop.getPopulation());
}
could be replaced by
public void testShouldHavePopulationEqualToTheNumberOfPigeonsAdded() {
PigeonCoop coop = new PigeonCoop();
coop.add(new Pigeon());
assertEquals(1, coop.getPopulation());
coop.add(new Pigeon());
assertEquals(2, coop.getPopulation());
}
The names of the methods at the top describe ways in which to verify that the PigeonCoop, once coded, works as expected. The name of the method at the bottom describes an aspect of the behaviour of a PigeonCoop (and serves as a reminder to myself that ’should’, while magic, doesn’t automatically lead to Behaviour-Driven Design.)
Free advertising for a friend, and why you shouldn’t put up with a job you hate
One of my friends asked me for some advice about how he could change his life. “I’ve come to the conclusion,” he remarked, “that I will never be happy unless I’m making a living as a musician.”
“Well,” I said, “you might as well go for it, then. The worst that can happen is that you’ll fail, and be only as unhappy as you are now.”
So he did. He’s now the drummer for a band called The Modern. They’re playing gigs almost every other evening and he says the schedule’s quite exhausting, but when you see him play you just know he’s having the time of his life.
The Modern’s new single, Jane Falls Down, hit the UK charts at number 35 this week. If you’re into solid performance, dance beats, gorgeous glam, exquisite electropop, new experiences, or the kind of tunes that play themselves repeatedly in your head for days, go get it – downloadable from iTunes and MSN, and available in all good record stores except mine, which had annoyingly sold out.
Do you hate your job?
What kind of job would you like to do instead?
Why aren’t you doing it?
Silence – how, where and why to find it
The more he heard, the less he spoke.
The less he spoke, the more he heard.
Why aren’t men like that wise old bird?
- Punch magazine, 1776
Sometimes it’s very hard for me not to get involved when I see a problem. Like many people, I’m a bit of a control freak. I like to know that all problems will be solvable; that the future is rosy; that I won’t be surrounded by unhappy colleagues in the morning; that I won’t ever have to say “I told you so” just because I couldn’t get someone to listen. If I find new patterns which can be used to solve things, I tend to want to share them with everyone.
Following advice, and the timely intervention of external forces, I have been trying out Silence; a highly effective problem-solving process. I have had such success with this that I want to share it with you.
There are many core practices which make up Silence. Here are the ones which have worked for me.
- Get plenty of sleep and downtime. This helps your concentration, and means that you have reserves of energy. These are important. Without reserves, you are less able to adapt to change, and will therefore feel an insane urge to control everything around you. This will make you want to speak (see part 3. )
- Find a really nasty cold and fall ill with it (there’s one around the office somewhere). The future will become someone else’s worry as you struggle with the present. You may also lose your voice. (You will not need to do this if you follow part 1. )
- When you want to speak, don’t. Wait until there’s a space to speak. When the silence comes, forget about speaking – just listen to it. There will be another time to speak. Try to get at least one piece of silence between each thought, and voicing it, if you can remember what it was. You may be forced to let some thoughts slip by unvocalised, but take confidence from my promise that it’ll be worth it in the end.
The results of my limited experiment have been astonishing.
- Firstly, I’ve realised that most of the problems I spot are not unique to my own insight. I do have unique insights, but so far, I’m spotting one every couple of days or so. That’s a lot less time than I spend talking. If I treat each of my insights as an opportunity to let someone else speak first, then the rarer thoughts become easier for me to spot.
- Secondly, I sometimes learn things in the time of not speaking which change my insights. I get time to reflect on them, and to work out how to phrase them in the best way, and at the best time.
- Thirdly, I get so much more respect when I finally do speak. When I say things, they’re more often things that no one else has said.
- Lastly, and most importantly – those people who don’t speak often seem to say the wisest things. They’re very interesting people to listen to. If I don’t speak, then they have an opportunity to do so.
I’ve learnt so much from these people that I want to be one of them.
All of this is common sense, but it’s so much harder to put into practice than it should be. We ThoughtWorkers are often seen as an arrogant bunch, and not without reason; it takes courage (or the intervention of external forces) to give up control, and a certain level of trust in your colleagues and customers to let them take it from you. I’m learning, and it’s an interesting, if bumpy, ride.
A number of people have been instrumental lately in seeing me through recent challenges and uncertainties. Thank you is always worth saying, so to everyone who’s taken the time to help me and put me in touch with my inner owl: please accept my gratitude and respect. It’s rare to feel both humbled and uplifted at the same time.


Comments