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!