Friday, November 30, 2007

Comfort Zone

I like writing code. It's not only something I enjoy, but I like to think I'm quite good at it. I guess it's the fact that it's just me and the machine, tunnel vision, cranking out a solution to a problem.

I took on the extra curricular activity of being a governor at my son's school about 2 years ago. It's been very rewarding finding out how his school ticks. I went on a course about 'Performance Management' which covered what is involved in conducting the Head teacher's performance / pay review. This is proper manager stuff. Trouble was, there was only me and one very new governor that went on the training, so I was therefore the most qualified to lead the review.

I will confess to being more than a little apprehensive. I don't respond well to authority, so actually being the authority made me more than a little uncomfortable. I read through all the notes from past meetings that I could get my hands on, and the various policies and pupil performance metrics etc, but I still felt hopelessly out of my depth as I walked in to the meeting. Fortunately, the Head teacher in question has done a fantastic job, so that was a relief. In the end, the meeting took over 2 hours with me asking questions and examining evidence to assess past performance, before identifying targets for the year ahead. By the time I got home afterwards I was absolutely exhausted.

I learnt a lot from the exercise. I now know that I can do the management type thing if I really have to, and that I should probably have a little more respect for the work that managers do. I know how draining it was doing 1 review ... imagine managing a team of 10 !

Tuesday, October 9, 2007

Getting a grip

I tried out a small climbing wall whilst on holiday in Center Parcs. It was a 15 minute session, which ended up being 10 minutes after the safety talk, and getting harnessed up. Even so, it was lots of fun. Since getting back from that holiday, I've often thought about trying some more climbing. So I searched for a local climbing wall, and found a place about 12 miles away with loads of climbing walls and boulders.

I was talking to a friend of mine, who went climbing several years ago. He liked the sound of it, so we headed across to the WestWay sports club to try out their 2 hour taster session. It started off really quickly, with a quick demo of how to tie the right knots, before being sent up the wall, with my friend holding on to the other end of the rope, taking up the slack as I climbed. It was awesome fun. I can highly recommend it.

We tried 3 different vertical climbs of anywhere up to 15 metres high. We also tried some bouldering, where you climb without ropes, but you never get more than a few feet off the ground. It sounds easy, but you start off almost as if you're inside a cave, and climb across the ceiling to get out and round. Very cool.

By the time the session had finished, I was exhausted. My grip had completely gone. It took a couple of days after that before I could grip a pen properly! Only problem now is that I can't wait to go back and try it again. Think I'll go for the beginners course next.

Thursday, September 27, 2007

Leading from the front

It's been the pattern for a few years now.  Hang around in a team for too long, and I go and get "promoted".  Maybe it's my big mouth that gets me into this kind of trouble, but for some reason, managers seem to think that putting me in a leader role is a good thing.  As seems also to be the pattern, I consistently fail to dodge the position.

This morning, when there was yet another piece of testing to be done in an awkward corner of the code, another member of the team was trying their best to avoid it, so I gladly volunteered to take it on.  When asked why I was so willing, I just automatically replied 'Lead as you would wish others to follow'.  I may be terribly naive, but I think my point hit home.  Sometimes you get to do the cool jobs, like spiking the new shiny libraries, and other times you get given a shovel, and it's time to muck out.

Tuesday, September 11, 2007

RapidWeaver: Awesome tool for the Mac

I've worked on lots of web projects over the years.  One of my first projects was re-skinning a VT100 terminal character mode app, giving it a shiny web front end.  I've been there, and done that.  I'm only saying that, so you get the idea that I can write html and css, and make a website look pretty much however I want it to.  So when it comes to tools for creating websites, I am pretty fussy.

I downloaded RapidWeaver about a year ago,  when I had a commission to create a website for Helen Anker, who is an actress / singer / dancer.  I gave it a go, but I didn't hold out much hope.  I was totally blown away by it's simple and elegant approach.  Since then, I've got my wife in on the act, and she was able to knock up a full Vampirates fansite in only a few days.  She has very little experience of HTML or CSS, but she was able to just get stuck in.

That's the thing that has so impressed me with RapidWeaver.  It appeals to me as an experienced web developer, but equally it works for my wife, a web beginner.  If you have a mac and you want to create a website using great and cheap tools, you could do a lot worse than this.

How do you make your 'Test Infection' more contageous?

I was first 'Test Infected' when I was working for a tiny consultancy, working on a project for a company who made games for Sky set-top-boxes. This was the first time I had really written any unit tests, and I quickly came to rely on them. I have been writing unit tests ever since then, but as time has gone on, the quality and nature of my tests has changed substantially. I've learned to develop code by asking 'What should this do?' rather than 'How should this work?'.

I have been fortunate to work with exceptionally talented people, who have helped me learn this practice. Now I find myself in an environment where there are lots of tests, but the code is not 'Test Driven'. It really shows in the codebase, that these tests are functional rather than unit tests, and that the tests did not come first. It is evident that the people who wrote these tests did what the believe to be the right thing.

The question is: How do you overcome the pattern of test-last development, and convince people to catch the TDD disease? It's a difficult switch to make, and it requires discipline. I'm in a position now where I'm trying to introduce TDD, but I have a team who think they are already doing it. Well, wish me luck!