The life of a freelancer can be great – you’re (often) hired for your expertise and (sometimes) for your ability to present new and alternative solutions for your customer’s needs. Mostly you’re hired for your rate, but that’s a whole other discussion.
Today I found myself revisiting an application that was coded a few years ago, but no so long ago to have not benefitted from some modern coding practices (or at least some decent documentation). I happened to know that the outfit that built the application were in advanced stages of ceasing to trade, and had little or no interest in any future support for the application. What really threw me when I tried to make a simple script run (a bulk update of a mySQL table – all 40million rows) was that the script could never have run successfully in the first place!
With working outside of normal office hours (one of the perks of freelancing – a cold beer and an Indiana Jones movie on the TV) there was no way of contacting the application owner to talk through the requirement from a business point of view, so I opted for backing up the tables and loading away.
With regards to the source code – I did a splendid job of revisiting the logic to make the damn thing work, documenting as best I could as I go (I think I’ll be able to understand it in 6 months’ time for the next update). Unlike the previous outfit, I do have an interest in supporting this and other applications owned by this client in the future (so does my wife, daughter, fridge, car, netflix subscription…). A couple of hours of quality support can very easily turn into an opportunity to re-write, optimise and modernise the whole application for the client. Imagine how many beers and adventure movies that would take?