Archives, eh
-
# A new job
I resigned from my current job yesterday. My last day will be September 25th, then I start work in a new role on Monday the 28th.
I am pretty sure I didn’t piss and moan about this at the time, least ways not on this venue, so for completeness, I was informed in May that my employer intended to renew my contract but only for nine days a fortnight, leaving me with a 10% paycut. At that point all the careful balancing of pros and cons of leaving fell apart like a madly misplayed game of jenga; I was leaving, no matter what. It took me three months. When I started out a recruiter told me ten weeks was the average time it was taking people he worked with to get a new job. Given I was overly picky and pretty relaxed about it all – after all, I wasn’t unemployed, just underemployed – 13 or so weeks is probably on par.
My current employer is a travel company. They sell packaged tours. One of their tour brands is like a Kontiki for sad, wet people. Another sells river cruises for people who suffer under the burden of having too much money. Most of the rest is bus tours for pensioners.
I don’t know if you’ve heard, but apparently the world is undergoing some sort of massive correction in the financial markets. You might be able to imagine what that kind of thing does to travel companies. Suddenly everyone feels like they should hold onto their money. To cut a long story short, it means that my employer had to cut costs.
Allow me a few sentences of rant. I probably won’t get to say this in an exit interview, so I’m saying it here.
The executives all took pay cuts; contractors were required to take cuts to hours. I understand this, they had a problem and they needed to solve it. However the solution to their problem was, partly, to make a small part of their problem a large problem for me. My solution to my problem then is to return their problem to them. With interest. “You want me to cut my hours? How about zero? Does zero work for you?”
I am the only person who has ever worked on this project, this project that handles a significant chunk of their daily business processes. Not the bits that directly make money, but the marketing bits, the bits that lead up to some of that money being made. It doesn’t matter how good my documentation and hand over are because whoever gets lumped with responsibility won’t have four years of working with this thing behind them. The accountants who decided to cut my hours may well find that however much they saved by only contracting me for nine days instead of ten will get blown away by the time wasted having someone else re-learn all the subtleties, knowledge that walks out the door with me.
Rant over.
My new employer is a communications agency. But effectively for me they are a web development agency. I’m looking forward to going to web development. It was what I did primarily until about four years ago – when I became more of a database and middle-ware developer – and I’m excited to be going back. With the usual trepidation. While I’ve tried to stay on top of new developments, I’ve been a little left behind. The next three weeks are going to be interesting while I brush up on everything I should know. But it is a fresh start. I no longer have to support decisions I made as long as four years ago, decisions that are painfully naive in light of things I have learned in since making them. I get to make all new poorly informed decisions, and I get to make them as part of a team.
-
# I guess the lesson for today is...

Some of Ds commenters said I looked calm; perhaps living in a house of females – even the bird is a chick – had given me practice…
I was going for Che Guevara. Camera angle was all wrong though and it’s not like I stand in front of the mirror trying to get my celebrity impersonations right.
Queen’s Birthday weekend was boring for a variety of reasons, not least because I was unable to go to Canberra to engage in the detonation of low explosives. This may have been a blessing in disguise. I do, after all, have a professional responsibility to retain all my digits…even if I do have an uneven ability to use each of those digits. Still, it would have been a good catchup with my good friend in the nation’s capital, and I am sure if the worst had happened – and I should point out he has all of his fingers – I could have fashioned a prosthetic with nearby kindling.
Been playing with NHibernate a lot recently1 and wish I’d had it at my disposal in 2005. Which is to say I wish I hadn’t succumbed to NIH Syndrome in 2005. In 2004 I and a co-worker set about inventing our own persistence framework and it did blow mightily, but we persisted and so did it2, and it ended up worming it’s way into a few projects, not least of which was the one I am still employed to maintain and develop. Been through a rewrite or two, and there is a complete end-to-end rewrite that has never been used in production code. Which is kind of ironic because it is the version with the most extensive testing framework and the version that requires the least amount of scut work to get setup. Just that it still involves scut work and I no matter how many unit tests I have, I still have a framework that has met the most definite of tests, it has been deployed for years and it does not throw exceptions.
My framework – teh most current one, I mean – is unashamedly based on ActiveRecord, the M in MVC as implemented by Ruby on Rails. NHibernate…ehhh, not so much. It is a port of the Hibernate framework for Java, and the roots are there for all to see because they are a selling point. I’ve learned lessons, such as the wrong way to support transactions, so the Java way as showcased by [N]Hibernate appeals right now.
So now I am furiously, and possibly against the clock, working on reimplementing the entire Models assembly using NHibernate, trying to keep the interface the same3 so that I can seamlessly – other than the persistence calls – replace the existing assembly.
But it reminds me of a question I was asked in an interview some time ago. I was asked what Agile development means to me. I froze up at the time, and staggered through an answer. At the time, it didn’t mean much to me. I wasn’t consciously trying to follow it. But right now, Agile means
twoseveral4 things to me:- Don’t code something if somebody else already has.
- Code ugly if it helps to get the feature out. Gussy it up later.
- Get something, anything, in writing about what you are working on.
- Avoid doing things.
- Remote team members might as well not exist.
If you code something, its something else you have to maintain and test. If you can find someone else to take on that responsibility – and you have faith they can do so – then its so much less for you to do. The more code you write, the more bugs you write, so you are best sticking to just the code you really have to write and not taking on extra stuff just because it sounds like fun.
The next-to-last is just a superset of the first, really. I don’t want to have to run tests, compile, and then copy the compiled code somewhere. I want to click a Go button and then have a coffee while everything is done, because the more steps I do, the more steps I can forget to do, or do badly.
The last is the number one lesson I have learned from my current job. I’m the only developer on my project, but also I am the only one in my project in the Sydney office. There are some users and they are probably the more clued in and motivated users, but they are users who are lowest on the political totem pole. The rest of the project team is in Melbourne and so are most of the rest of the users. Puuting aside how lonely, isolating and demotivating it is, it is very difficult to communicate effectively. When the company flies me down to Melbourne I am usually tired and wiped out from having to get up so early to catch an early flight, but even in that numb state it is remarkable how much better coordinated the project direction is after a few hours of face-to-face planning.
In the future I’ll go all out to avoid being a remote resource, and if I ever lead my own team, I won’t have one if I can avoid it.
1 Yes, that’s right. It is one of those rare posts in which I display an interest in my profession.
2 But that premise won’t.
3 To be clear, there aren’t any formal interfaces for many of the classes since I Wasn’t Going To Need Those and really, I still don’t.
4 I was thinking agilely, so there. Not my fault Constitution is my Prime Requisite.

