-
# 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.
-
# re: I guess the lesson for today is...
Two things? Is that an agile approach to counting too? :-)
PS, clever of your guys to lose the T20 early so they can have a nice holiday before the Ashes!
-
# re: I guess the lesson for today is...
I didn’t expect some kind of Spa…wait, we’ve done this the wrong way around.
-
-
# agile is like teenage sex
http://www.whattofix.com/blog/archives/2009/06/agile-project-m.php <—agile is like teenage sex.
We are doing what can be purported to be agile, I hold scrum each morning, we have unit tests galore, we even have pages of spec plastered over the wall with names on them and big green texta ticks on the ones that are done-done.
Hasnt stopped the release schedule being pushed forward a month. Engineering, unfortunately, is the lowest on the totem pole too often. Also agree on the face to face. We have two developers on the team in the Bay Area, they are hard to manage simply because you cant plonk in a cube and say, “how is it going man”.
I always liked Alistair Cockburn answer, if there is too much process people will find a way around it and still deliver working code. So I tend to be pretty laisse faire.

