It’s been a long time since I wrote anything here. I’d like to say it’s because I’ve been super busy, and in fact that has been the case at times, but the truth is that I have two very specific problems: one, I try to do too many things, and two, I need a lot of sleep. But at least it’s not quite a full year since the last post.
I’m struck by how different things are now compared with a year ago. Back then, I was worried about the way the project was going, concerned that we were going to blow our deadlines, and that we would implement wrong functionality because our BAs were spread too thinly between too many projects. Well, all that happened. There followed a period of intense, stressful and very un-Agile firefighting, but we did eventually come out the other side, and the Big, Important Projects that depended on our technical changes got out the door not too far behind schedule. All’s well that ends well.
Perhaps I’ll write more about what I learned from that later, but this week I’ve moved on to a new project, and indeed a new company, and now is a time for focusing sharply on the task in hand, because, as a contractor, you’re only ever as good as your last week’s work.
The new gig is something of a watershed for me. Having taught myself Ruby, Cucumber and WATIR alongside my exploratory testing, I finally got my dream and landed a full-time Ruby job. The new client has a reasonably mature suite of Watir-webdriver tests, all nicely organised, categorised and wired into Jenkins. They’re now looking to add some browser compatibility testing (everything’s currently done in Firefox) and I’ve spent my second day looking into Watirgrid, with a view to running the tests on several virtual machines simultaneously, with a different browser on each.
The good news is that Watirgrid itself is pretty simple and seems to work rather well. By the end of the day I had irb controlling Chrome on one machine, Firefox on another, and running arbitrary WATIR methods on both together. So the first point of this post is to encourage anyone who hasn’t had a go at this yet to try it. There is a fair amount of help out there if you’re willing to do a bit of Googling and I’ll try and add a “cheat sheet” to this site when I’m more confident with it.
The second thing I wanted to say is that I’d forgotten what a brilliant concept virtualisation is. I know I’m probably preaching to the converted here, but I hadn’t really touched a VM in a good couple of years before this week, and one thing I’ve really appreciated today is that when something fails on Windows (I’m using Windows 7 VMs) I can try it on the host machine (a Mac) and thus narrow down where the problem is. If it works on MacOS, it’s likely either a compatibility or configuration issue. If you can’t get it to work on IE9, have a crack at it on another VM running IE8.
It’s also been quite an eye-opener: I’ve been a Windows user all my life, and I’m used to the sharp intake of breath from Those In The Know (devs) when I tell them I’m programming in Ruby on Windows. I’ve always put this down to good old OS bias, but actually I found today that I could get Watir-webdriver to drive Chrome fine on Mac OSX, whereas on Windows it just produced a string of impenetrable errors. Anecdotal and unscientific this evidence may be, but I’m starting to think the devs may have had a point.
Anyway, if you’re a tester, you have a reasonably powerful Windows box, and you have admin rights (a tall order in some companies, I know) then I urge you to slap a hypervisor on your machine and get some VMs running. It’s generally free unless you need Windows licenses (in fact, you can download a 90-day trial version of Windows 8 from Microsoft, but using it for testing might be a licensing grey area, so always read the label) . If nothing else, it’s an extra avenue to explore when you start to feel like you’re out of your depth with the particular random exception you’re grappling with. If you can prove that the thing you’re trying to do works on Linux, you can be that much more specific with your question on StackOverflow.
That’s today’s ramble done. Oh, and the title, in case you were wondering, is the name of my favourite Christmas song. It’s from the album Sweet Bells by the astonishingly talented Kate Rusby, and it actually isn’t really a Christmas song, it just happens to be on a Christmas CD, so it’s OK to mention it in April and you don’t have to throw sharp things at me. Candlemas is a Christian festival that falls on 2 February (40 days after Christmas), and apparently the night before was when people traditionally took down Christmas decorations. Nowadays, of course, we do this earlier, to give the confectionery manufacturers more time to flog us Valentine’s treats and chocolate eggs:
Down with the rosemary and bay,
Down with the mistletoe,
Instead of holly, now up-raise
The greener box, to show
The latter part of the song continues the narrative right through to Whitsuntide (in late Spring) which is honoured with birch and assorted flowers. It’s a song about turning points in the year, and, for me, it’s an ode to changes in general:
Thus times do shift, thus times do shift,
Each thing its time doth hold,
New things succeed, new things succeed,
As former things grow old
I’m an incurably sentimental twerp who clings onto memories with an iron grip and can’t sit through the end of Stardust without crying like a bilge pump. I hate giving up things I like, and view the good old days through spectacles so rose-tinted they’re practically opaque. I have to remind myself frequently that change is both inevitable and often productive, and this song, in addition to being rather beautiful, helps me do that. It reminds us that as seasons change, so must lives. Saying goodbye to so many dear friends at the old office was an unspeakably tough experience, but moving on gives me the chance to learn and grow. Besides, as the seasons are cyclical, so sometimes we can come back to places and people we’ve left behind.
Especially us contractors: we’re particularly fickle like that.