A few weeks ago at The Team, inspired by the Atlassian model of FedEx days which we have have successfully employed before, we managed to make some time for the development team to spend the day away from the office to work on something for themselves. No clients and no managers, just our own requirements and some time to work in new ways together. It yielded some valuable results.
The notion of creating value from activities like this is not immediately obvious to all, but there is value to be found in many different places when working together on a project like this. I'll try to mention a few of them here as a kind of a primer for anyone who is looking to arrange a similar day of their own. That might be useful when you need to convince the folks at work who need to look carefully at things like utilisation, opportunity cost and project resourcing.
When arguing for the value of this kind of activity, it can be difficult to protect the time needed to make it really useful and valuable. I'd suggest that this is actually a vital activity in helping a development team to remain fulfilled, motivated, efficient and sharp.
This was a modest hack day. First of all it was just a single day, while I would have preferred to have it last for two. We had just the time that we could stay awake and productive for one day to plan, design, develop and deploy our project. Also, while I would have liked to involve a wider team in order to profit from a range of disciplines and specialisms, it was just our small development team who could be spared for one precious day. Nieman Journalism Lab recently wrote about the benefits of similar hack days at NPR which involve wider disciplines and dubbed them Serendipity Days. I rather like that.
We cheated a little. We had something in mind that we wanted to build. A simple need that we felt could be basically fulfilled with modest amount of development. That idea, we labelled Scamp Cat. So named as a bit of a hat-tip to Sprite Cow, a little side project by Jake Archibald which we each had some fleeting involvement in, and also just because we needed a way to refer to this thing, and Scamp Cat made us giggle. We are easily amused. Having something in mind to build, and having the opportunity to talk to potential users of this application ahead of time was a great way to get started quickly on the day. We already had an idea of the high-level requirements, and had identified a likely 'customer'.
Having a customer was my first tactic for justifying the day to my boss and to my Financial Director. We would be making something that has an application right here at work on a regular basis. Yes, there are tools around that provide a similar service, but none quite satisfied the needs of are colleagues in the EA and Design departments. Building this thing would be of value to us right here at work.
When I presented what we built back to my elders and betters, I was eager to point out that Scamp Cat, the most tangible product of the day, was perhaps the least valuable output. More important to me, are the various processes and conventions that we used during the day, and the insights into some new technologies and conventions we gained. For instance, during the day, we made use of Git Flow, a code versioning model in Git. This served us tremendously well and resulted in very few code conflicts and high confidence in our small but active codebase over the day. We now use Git Flow on all of our active client projects. Win!
We also started tuning our approach to provisioning our infrastructure using Puppet and normalising on virtualised development environments with Vagrant. More Win! In addition there were a number of small but useful pieces of reusable code which came from the project. These got rolled into our set of code snippets and plugins which form part of our project bootstrapping suite. Winning again!
My favourite part of the day was the fantastic sense of team spirit which was evident. We set ourselves a tough challenge, and together we knuckled down and met that challenge. Creating an opportunity for a team to pull together away from outside influences and commitments develops some great trust and mutual respect, which is perhaps the most valuable output of all.
But for those wanting to see an actual thing as an output from our day, Scamp Cat has found a little home on the Web, and is functional enough to use. Just. It can be used to upload, or reference, an image and add annotations to that image. The resulting annotated "scamp" can be freely shared via a public URL. There are similar products out there already, but none quite ht the spot for us.
We've already got some great feedback and are planning several iterations to evolve the functionality.