So I am sitting here both exhausted and exhilarated after spending my weekend at a CD Summit (#TWCDSummit), an internal mini-conference held at ThoughtWorks.

One of the coolest things that I took away from the weekend is an answer to something that I have been struggling with on many a project, the README. You know, that file that gives step by step instructions for a new team member on how to set up their environment. The one that you hope is up to date, but usually isn’t. The one that if edited recently is likely to be organized but seems to drift in exponential time away from that format as those little things that were missing are discovered.

In a session on virtualizing these developments I tossed out the idea that it would be nice if we could kill the README, however we quickly realized that the goal should really be to be able to tweet your README. Of course I don’t want to be dogmatic about this, but isn’t it a nice goal to have that this file that has plagued many of us for years could be reduced to the size of a tweet? And not by writing it in some cryptic language!

I am not saying this will be easy, and in fact on my current project we will likely move to this in stages, removing the most painful things to set up first and gradually getting as close to 100% automation of setting up a new dev box. The particular solution I am exploring uses vagrant and virtual box, however the details are not as important here as the concept.

Not only can a new dev be up and running in hours (or less) instead of in days. The entire team could theoretically destroy and re-create their environments daily, or at least weekly ensuring that they stay in sync. And it is possible to have multiple VM setups, one that is pretty much like what we have for years been installing on our laptops or pairing stations, with everything running locally, and another with multiple VMs were you can test things out in a more production like layout and thus potentially uncover issues related to a multiple machine environment much sooner and with much less ceremony.

Advertisements