|
Screencasting of tacit knowledge
I'm deeply fascinated by the idea of tacit
knowledge, which is the stuff that we don't know that we know, or
that we assume that everyone knows so never bother to explain. To
paraphase the philosopher Michael Polanyi, whom I cited in The
tacit dimension of tech support, tacit knowledge means knowing
more than we can (or do) tell.
One of the things that I've known tacitly, but never articulated, is
that screencasting can be an excellent way to transmit
tacit knowledge. An example I used in a talk last week comes from my
recent screencast
with Jim Hugunin about IronPython. At one point, Jim was showing how
to manipulate a bunch of Avalon objects in a Python list. But along
the way he unconsciously showed me an important fact about Python
that, while I'm a relatively skilled user of that language, I'd
somehow never discovered. It happened right here:
While Jim was typing for b in buttons: I was pondering the
previous line, buttons = _, which (as in Perl) assigned the
value of the most recently evaluated expression -- in this case, a
list of Avalon objects -- to a default variable
that's represented using the underscore character. How did I not know
that, particularly given the direct Perl analog? Such knowledge gaps
are weird, but hardly uncommon. The interesting thing here is that Jim
transmitted that bit of knowledge without even realizing that he did so.
In my talk I suggested that this kind of unconscious transmission of
tacit knowledge may be a key rationale for the practice of pair
programming. Two programmers, working side by side, exchange tacit
knowledge by osmosis.
To generalize from programming to all use of software-based tools, the
equivalent of pair programming -- that is, direct observation of one
another's use of such tools -- is ideal. But that's not always
possible, in which case live screensharing or asynchronous
screencasting is the next best thing to being there.
|