Closing tasks

I read a great quote in I’m feeling lucky. It described a note sent from one Google employee to another as he handed over a piece of software.

  • Here’s what I’ve done.
  • Here’s how it’s running.
  • Here are some things to look at.
  • Here’s what’s going to go wrong if it goes wrong.
  • Here are the steps to turn it off.

These five points would be invaluable documentation to any new code or functionality. Imagine how much time could be saved if you had this information before embarking upon a code change.

Back in the gym

This morning I did my first weights workout since my Grade 3 AC joint separation 5 weeks ago.  I didn’t push it hard, the point was to start building some strength slowly while trying to avoid further injury.  Most of the weights were around my previous warmup levels. i.e. around 60%.

I was focusing on my legs and back, so the exercises were: Squats, bent-over rows, seated rows, deadlift, incline press.  I tried doing some lat pulldowns but there was way too much movement in the AC joint for my comfort.  I was surprised I was able to deadlift at all but it was quite comfortable.  The rowing exercises required the most concentration to keep the joint stable, as did the incline press.

I’ll probably stick with this routine three times a week for a month or so, gradually increasing the weights.  I hope to be back to my pre-injury strength by the end of January.

AC Joint Rehabilitation

One month after suffering a grade 3 AC joint separation I am definitely on the road to recovery, but still a long way short of back to “normal”.

I’ve been doing my resistance-band exercises plus the Plank exercise each day for a few weeks now and the strength is slowly returning. I haven’t gone back to the gym yet but I think I’m only a few days away.

Tonight I was able to do a few push-ups which made me feel really good.  I have been able to do 15 “countertop” push-ups for about a week, but I have to do most push actions extremely slowly to control any movement in the AC joint, and by slowly I mean 5 seconds up, 5 seconds down.

Continuous deployment

Automation isn’t about quality, it’s about scale.  Manual processes don’t scale.

Each part of your process that you automate gets you one step closer to continuous deployment. For many teams, automation is a Quadrant 4 activity – not urgent, not important – but on my teams it is a Quadrant 2 activity – important but not urgent. We allocate time each iteration to improve our automation because it frees up more time for development.

Things we automate include

  • Build (Jenkins)
  • Testing (JUnit, Selenium)
  • Deployment (ControlTier)

On a typical project the deployment is the last part to be automated, however on my current project we’ve strived to automate our deployment since Day One simply because we’re deploying to a grid with many moving parts.  Automation allows us to scale our deployment without taking time away from our development activities.

Automated processes also serve as executable documentation.  The precise steps to perform a function are documented in code and are repeatable.  The only way the process can change is if the automation that controls it also changes, so the documentation is always up-to-date. Computers don’t forget to do things the way that IT Operations staff do.

Our deployment works. Repeatedly. Because it’s automated.

Half marathon

On December 4, three weeks after getting hit by a car, I ran the Las Vegas half-marathon in 1:44:11.

I was very nervous about how my shoulder would hold up, but it was ok.  I had to run with my left elbow held tightly against my ribs to limit movement in the AC joint, and as soon as the race was over I headed to the medical tent for an ice pack to prevent excessive swelling.

The race probably set my recovery back a week or two but I am really glad I was able to complete the race – I don’t think I sustained any permanent injury from it.

Now, onto the shoulder rehabilitation.