Monday, May 3, 2010

Job done


Work is over

In their 2001 track "Harder Better Faster Stronger", Daft Punk suggested that "work is never over" - in spite of this, I've just finished six months working as a contract programmer. It's been good: interesting, educational, lucrative and fun, and now I've finished it seems appropriate to reflect on some of what I learned from the experience.

Perhaps the biggest difference between this and my previous working life was that this time I was telecommuting i.e. working from home. This was possible because I was developing essentially stand-alone software projects, but before I began I was concerned about what home working would be like: basically, could I handle the isolation and the temptations to - oh, I don't know, wander off and do the laundry instead?

I found some relevant advice in a chapter from Miles Burke's book The Principles of Successful Freelancing. For me the most useful suggestions were:
  • Set up home office space: this was my spare bedroom with my old desktop computer (upgraded to dual-boot into Ubuntu Linux). Having a dedicated space (and machine) made it easier to start work and stay focused, by providing a physical environment that I associated with working.
  • Keep rigorous track of the hours you've worked: Miles' book recommended a bunch of online tools but I found that a simple spreadsheet worked fine for me. Keeping track helped me stay focused and disciplined - when I was on work time then I really did do work, and when I'd finished I knew that I'd really worked my full hours that week.
  • Have a work schedule set up ahead of time: this was especially useful at the start as I worked half-time and wanted to fit other commitments in around my work. I did deviate from the schedule sometimes, but it was good to have something to deviate from - and it also meant that for example I never felt I had to work weekends to catch up.
(Some other suggestions included things like getting properly dressed for work - i.e. not working from bed in your pyjamas - but that seemed quite obvious, and anyway since I'd usually go swimming or running before work, the pyjamas option didn't really come up.)

It turned out that I didn't really suffer from a sense of isolation, possibly because my collaborators were very good at staying in email contact. I also made visits to the physical workplace every few weeks, and while the travelling was often tedious (the one-hour stops at Birmingham New Street station will not be missed), contact with the project collaborators, end users and other real people more than made up for it.

Another major difference for me was working exclusively on one "closed" project at a time (I'd previously been used to juggling a disparate mixture of concurrent open-ended and cyclical projects). The resulting narrow focus gave me a sense of clarity that I'd often missed in the past; though at the same time, there was no escape if the going got tough - I just had to plow through it. Also as a contractor I felt less personal attachment to the actual finished code (although I remained deeply committed to doing the best job that I could), and less inclined to spend "work time" on learning about new stuff unless it contributed directly to the project.

Finally, I learnt a few things about being a contractor rather than a full employee that I wish I'd known beforehand - for example, since I used my own computing equipment I wished I'd negotiated some concessions for that, and I also hadn't realised I wasn't entitled to public or company holidays. Sometimes you pay to learn - at least I'll know what to check in future.

Overall though the experience was really good, both in terms of the actual work and also in terms of what I learned about myself. I feel more confident in my programming and in my ability to manage and deliver these time-bound projects. So while my time is now my own again I know there are aspects that I'll miss, but I'm also grateful to have had the opportunity while it lasted.

No comments: