10% at The Beeb

jplindstrom on 2008-05-16T16:56:11

Interesting to read about Jonas's Google Day.

At the BBC we have what's called 10% time, which in our team translates to a Gold Card Day every sprint (i.e. one day in ten, which is... um... 10%).

"Gold Card", because we do Scrum and we put a card on the board for each developer. With the card we can do whatever we want for a day, but it's supposed to be somewhat related to the product, the project, or the team.

It's really good if it's also Innovative(tm).

Innovation is what the BBC is after. Apparently this is even in the BBC charter, and it's something that all of BBC is supposed to be doing. Currently I know of our team and another department doing it, but it's something they are semi-actively trying to get going all over the place at the moment.

When we started doing this Gold Card thing, it turned out that almost no-one actually took his Gold Card during scrum in the morning. So after a couple of weeks our Scrum Master instated the one "mandatory" day of do-whatever-you-want, which worked out very well. It's at the beginning of the sprint, so we don't risk putting it off at the end of the sprint because things may not be done (if that happens, we need to plan and estimate the sprints better).

So what kind of things are we talking about?

  • I spent last Gold Card creating a visualization of our code base as a clickable Treemap (I may turn that into a CPAN module in my own time. And replace that somewhat ugly JavaScript treemap with a prettier one). The Perl code stats collected so far are very naive, but here are some sample treemaps of our CPAN deps directory:
  • Way way back I wrote a tool to document and visualize database schemas. As a Gold Card task a month ago I adjusted the tool to MySQL and configured it for our code base so we get an automated SQL Map generated whenever the schema changes.

  • And the sprint before that, I spent Gold Card day investigating how Devel::Cover worked (yes, that took a day, more than that actually), making it possible to write Devel::CoverX::Covered and integrate it into Emacs with PerlySense (Ovid wrote Vim bindings).
While I tend to focus on tools and the dev environment and stuff like that, my team mates have investigated interesting and potentially useful technologies and done cool things to and with the product.

Edit: Added links to treemaps