A merry, automated Christmas

Christmas always brings back fond memories of my very first December at work, back in 2000. Right after joining Runtime Collective and as we started learning to build commercial software.

Our first project was a bit of a death march. As a small team of smart graduates we didn’t really have a clue on how to build software in the real world. Memories of writing on a white board which files we were editing, to avoid clashes!

So when I got the chance to lead our second project, the amazing Joe Holmberg and I decided to do it differently. First we decided to focus on a couple of issues which cost us in the earlier project:

  • our data model was a mess: updates kept breaking, we didn’t have a complete set of files to build the whole data model, we couldn’t create new instances from scratch

  • a lot of time was spent fixing bugs in new object types, for which values weren’t saved or loaded properly

With that in mind, we came up with a simple solution:

  • keep the whole data model documented, with one file for each object type, and one file for each upgrade

  • create a custom, minimal framework to test creating, saving, loading and deleting all object types

  • write an umbrella script which creates a database instance, loads the whole data model, runs the tests then destroy the instance

How did that work? Christmas 2000 was lovely. Everyday we’d come in the (near empty) office, get the next tasks from the project plan done, regularly check that the script ran without issues, and if not, fix the issues nice and early. Which saved us hours and hours of work.

We then noticed that, as we went through the project, the speed at which we completed tasks (our velocity as it is now called) was going up and up, in stark contrast to our previous project. We completed the project in mid January, ahead of schedule and under budget. The website went live and was well received. It was still running 6 years later - the last time I checked.

Automation of repetitive tasks is so important. A myriad of tools are now making this easier and easier: Jenkins, Travis, Codeship, combined with Git, Ansible / Puppet / Chef, Docker, Mesos, etc - all help automatically, build, test, deploy and manage applications at the click of a button. So if you find yourself busy right now with repetitive, boring tasks, why not spend some quieter Christmas time catching up on automating them.

 

Need advice for your technology business? I can help