A big part of this effort has been to run a regular "craft day". "Craft days" are in-house software conferences with a heavy emphasis on hands-on practice of programming skills. (This has been disappointing for people who wanted to make beaded purses and wallets, or whittle figurines from a block of wood. You just can't please everyone.)
It really is awesome that I can do this during working hours, unlike what Chad Fowler describes and which most of us have had to do - learn almost all of our new skills outside of work hours.
The down-side to craft-days is that we can only do them every other month.
While it's great that we can do this sort of thing at all, it's only going to give us a limited return. We need to do hands-on practice regularly to really take the lessons to heart. It also servers to stoke the fires of geekiness in our pocket-protector-covered hearts, motivating us to stay on top of the technology curve.
It becomes much easier to engage people and figure out what they really need if you spend more time with them. Bob Martin has a pretty good (and pretty honest) explanation of why occasional exposure to learning doesn't really help much here.
Accordingly, I volunteered to to a twice-weekly Code Randori sessions. The first session wasn't very valuable, so with the help of the group (there were 25 or so people in attendance), we're going to try the following tweaks for the next one:
- A simpler problem (but still a real one that we encounter at work), with no code written for it. (TDD the whole thing.)
- The problem visible to all even while code is being written. (Whiteboard)
- The skills we're focusing on visible to all. (Whiteboard)
Photo by some guy named zimpenfish on Flickr