I’ve been thinking about agile/LEAN feedback loops lately, primarily how I could introduce fun ways to kick start them and hopefully keep them maintained. With this in mind my thoughts turned to the “commit” process. It’s something all developers do (hopefully else your coding without revision control) and provides a nice point in time to inject some automated feedback.
The idea is to have each commit analysed for some simple “agile” metrics, nothing too complex or tricky, examples:
- Did the commit touch unit tests
- Was the commit “small”
I imagine you could also run a few simple code quality algorithms also (ones that are regarded as being sensible) and maybe a copy and paste checker. Overall the main aim is to find around three or four simple metrics that the team can agree on that signify good practice.
Then the fun starts, you normalise the values and plug them into a simple fighting game, where they impact the fighters abilities (and looks?), clearly weighted towards the better the metrics, the better the fighter. This new fighter then battles the current one (winner of the last commit war) to see who remains king of the hill.
The whole fight can be e-mailed back as a small movie, statistics can also be kept - If you commit small, unit tested code often you have a high chance of ranking highly.
Think I will code this up. Also wondered about wiring the commit to net hack or an adventure game, I.e. your commit log would contain a string for your next move, on commit you are e-mailed a response. E.g.
# open door <commit> "You see a wolf"
Fun, possibly, but not where I was heading.