« Off by one | Main | Python: don't return from __init__() »

Operational mindset

Mike Cannon-Brookes on how Atlassian update Confluence in-house:

"It's two commands I believe and takes about 20 minutes to run, including doing a full backup of the data"

They need to release that job - the last time I upgraded confluence, it took a chunk out of a weekend. But it was worth it!

"The longer answer is that because we know we're going to update twice a week, we try to keep our... code clean at all times. "

I couldn't agree more. For that kind of thing, operational experience trumps a process manual or guidelines every time. It's like exercise - there's not much point talking about doing exercise. The last major project I worked on we built frequent upgrades into the development cycle. It was frustrating initially ("Upgrading? Again? Why!?"), but the project relied on open source and with open source you need to be able to stay near the latest and greatest. The other upside is that we and ops and support know how to upgrade that system because we have upgraded that system over and over. It's not guesswork. The impact of particular changes are well understood (risk) and as importantly an upgrade can be estimated (schedule). There are other good things that fall out of frequent releases and upgrades. First, you'll end up with a decent build and configuration system (out of necessity). Second, your code will tend to be non-monolithic (to support upgrading the minimal amount of code).

[Not unrelated: I was playing with a bamboo evaluation today with a coworker - very impressive for a 1.0. ]

March 1, 2007 11:30 PM


Post a comment

(you may use HTML tags for style)

Remember Me?

Trackback Pings

TrackBack URL for this entry: