15 Jul 05

Yes, We're Control Freaks

I didn’t realize how much automation we have in and around our Rails project until the other day when our shared development server took a vacation and never came back. It’s like that backup strategy that only gets tested when the hard drive fails. Except in this case it was pretty much a yawner. Once we decided to go to a new machine, we were up and running in no time. There were no panic-stricken fire drills. For all intents and purposes, it was business as usual.

Part of the credit for no downtime goes to the fact that we all work untethered on our local machines. (This turns out to be super handy on long airplane rides.) This forces a discipline of keeping things relatively self contained. But we do hook up to the mother ship often (or right after those plane rides) to synchronize our work in a shared Subversion repository. The contents of that repository represent life. On demand, we can recreate anything in the repository—any version of a file from the time the project started up to the present. Everything else is out of our control.

The key to repeatability lies in how much stuff you put in version control. It’s best just to go long. On our project, James meticulously made sure that our Rails application was as self contained as possible. Using only the Subversion repository as a source, our entire application and its supporting infrastructure can be built from scratch. We regularly put that to the test on our local machines, and the development server is just another machine.

It’s relatively easy to automate small things, but it’s especially rewarding when those recipes are applied to automate the big things, as well. Indeed, for large projects, no single recipe will do. But in his latest blog, James discusses some strategies that you might be able to pick up and apply to your project.

09 May 05


Bil Kleb wrote in to share an insightful term described in Taiichi Ohno’s book Toyoto Production System: Beyond Large-Scale Production:
The Toyota production system utilizes autonomation, or automation with a human touch, rather than automation. Autonomation means transferring human intelligence to a machine. The concept originated with the auto-activated loom of Toyoda Sakichi. His invention was equipped with a device that automatically and immediately stopped the machine if the vertical or lateral threads broke or ran out. In other words, a device capable of making a judgment was built into the machine.

At Toyota, this concept is applied not only to the machinery but also to the production line and the workers. In other words, if an abnormal situation arises, a worker is required to stop the line. Autonomation prevents the production of defective products, eliminates overproduction, and automatically stops abnormalities on the production line allowing the situation to be investigated.

What sorts of autonomation does your project have to "stop the machine" before abnormalities compound?

30 Mar 05

Announcing Pragmatic Studio

When I visit projects, I often get asked the question: "How do other projects apply automation, version control, and unit testing?" Everyone knows they should be doing these key practices, but very few folks know just how. So by asking the question, managers and developers not only want to know what tools to use, but, more importantly, how other companies are using these fundamental practices to their advantage. You see, the teams I visit don’t have a lot of time for trial and error. They urgently need to know how to implement the practices right.

Dave, Andy, and I are excited to announce Pragmatic Studio: a two-day interactive workshop where you learn how to make automation, version control, and unit testing work for you. It’s a unique opportunity to glimpse into a well-oiled project that’s using the essential practices covered in the Pragmatic Starter Kit. Based on our combined experience having visited many projects, you’ll be engaged in a project-like setting where we won’t just tell you what to do, we’ll show you first-hand how to do it right. But more than that, through lively discussion and fun interaction you’ll learn how to tailor the practices to your project.

And to make it more convenient for you to attend, we’re bringing Pragmatic Studio to three cities this summer. We hope to see you in one of these Studios!

09 Mar 05

OSCON 2005

Mike Clark is scheduled to give an automation with Ruby talk at the O’Reilly Open Source Convention (OSCON) in August.

11 Feb 05

Two-Way Feedback

Jon Udell draws an insightful analogy between automating software and teaching a kid to ride a bike.