Thursday 2 April 2009

Install updates?

It's a few weeks now since I last posted about my new job.

Spring (in my step) source
    One of the nicest things that ever happened to me, being in a new (smaller and friendlier) company has boosted my energy, optimism and self-esteem. That, and free membership to the local gym, has made me feel younger! It is simply amazing what a challenge and a change (with, it has to be said, a wise and people-savvy company) can make to a person. [I still look the same age, though--you can't have everything.]

A few weeks ago (about six, now) we adopted Scrum working. (See picture below.)














This, in case you didn't know, is an iterative development structure that encourages short, development spurts, with clearly defined and effort-sized deliverable outcomes. These spurts are called Sprints and in our case are three weeks (elapsed time). [Of course, in my old place we couldn't have just `adopted' Scrum. This would have been hard to do without several levels of sign-off: and the running and scheduling of Sprint planning meetings would be very difficult indeed.]

Progress
    We just completed our second (full) sprint. (That's how I knew it was six weeks -- see?) I have to say that, normally cynical about these much-lauded `methodologies' (and having experienced--and even taught--a fair few in my time), I have found this one to be quite positive.
    Since the internal workings of a sprint are really up to the team (and they are relatively free to do as they please) we have been guided (by the team leader) rather than driven, and are still feeling our way. However, the nature of the beast is that teams are expected to learn for themselves what is good and bad about the process -- including how to estimate the team's tasks beforehand. 
    For us, that means we are still tinkering with how we deal with change: most of these are the usual--design changes, external dependency lapses, unexpected and persistent bugs, unplanned absence; and the answers are the usual ones--postpone design disruption (until the end of the sprint), re-order tasks to allow more external time (and plan tasks to negotiate with third parties), rally the `troops' to crack hard bugs once and for all, pull together to keep the sprint plan on target.
    In the case of a short spurt (the sprint), and well-defined and agreed tasks for that spurt, we find it is easier to apply those standard solutions. In every case the small tasks and sprint structure makes it easier:
  • postponing tasks is easier since there are enough small tasks planned to rearrange and even re-assign;
  • re-ordering is easy, even if there are inter-dependencies, since the short sprint meant that not too many were scheduled at once, and the dependencies are manageable;
  • rallying the troops is not hard, because only a week or so ago all the team members took joint responsibility for the deliverables--there is no shortage of offers of help.
After a number of these, too, the members of the team have worked closely and regularly and this makes joint responsibility easier to execute: we learn each others' skills. New guys learn more quickly and have a sense of achievement earlier. They become old guys sooner (and I mean that in the nicest possible way).

Distress
It is prudent of me to talk about the not-so-good things, or things for which the jury is still out:
  • the expectations of the product owner can be skewed, and not allow enough team experience before expecting (or trusting) tight estimates -- hopefully this is something that can be ironed out over time;
  • the team members have to work at close co-operation during the sprint (we are lucky to be all in the same room--although this could be a problem for a larger team);
  • learning what `hours worked', `task complete', `ideal hours' mean requires several sprints to iron out--and this can easily be disrupted by team personnel changes;
  • it is hard to do difficult things--especially if they require sustained, co-ordinated effort.
There are other niggles, but I have to be careful not to confuse genuine concerns with my natural tendency to be a Grumpy Old Man.
    More on the progress of this `experiment' later.

Meanwhile...
    Back at the (old) ranch I hear all is not happy: the large management structure, lack of technical autonomy (caused by lack of trust), and catastrophic disconnect between effort, achievement and reward, means that more and more (oftener and oftener?) I am hearing heart-rending bleats of discontent from my old friends. What they can do about it, I don't know, but I wish better for them.