Legitimate Peripheral Participation – By Kent Beck

1 week ago 5

Recent augmented coding episodes reminded me of a book that changed my thinking about learning: Situated Learning: Legitimate Peripheral Participation.

We’re so focused on Production = Productivity that we forget that in the long-term Learning = Productivity.

I’ve mentioned that I’m coding in languages that I don’t know well, sometimes that I don’t know at all. While my ignorance occasionally glitches my development (looking at you, Rust, with your borrow checker), generally we make decent progress, my genie & me.

More than that, though, I’ve noticed that I am quickly learning the languages we’re coding in, even without focused effort. I go from:

  • Not being able to read the language

  • Being able to read the language & make sense of it (sometimes with genie help)

  • Being able to comment on odd or difficult to read constructs

  • Being able to judge whether the genie is using the language well

  • Being able to refactor to improve structure for readability, reduced coupling, or increased cohesion

And that’s about it. I haven’t gotten to where I can sit down & bash out a bunch of any of the new languages. Since that’s not such a valuable skill any more, I’m not fussed.

The surge in readers since I started weaving augmented coding with software design themes in this newsletter inspired me to grow the community by offering 40% off the first year, this month only.

Get 40% off for 1 year

The book challenges the model of learning where a teacher carefully crafts a syllabus of topics which, lectured on & tested on, will result in new skills or knowledge for the learner. Instead, it recommends giving learners:

  • Participation. Actually doing the skill or exercising the knowledge.

  • Legitimate. Do the real thing, not some safely bowdlerized version of the thing.

  • Peripheral. Don’t make the learner solely responsible. No “throwing in the deep end” sink or swim. Someone already skilled or knowledgeable is there doing the thing. The learner is helping.

Legitimate peripheral participation rests on the assumption that part of what the learner gains while learning is the skill or knowledge, but part of what the learner gains is confidence. If all you’ve ever worked on are toy problems, you’re still not sure (well, you shouldn’t be sure) that you can operate when faced with a messy, real situation.

Another assumption is that being exposed to expert performance accelerates learning, even when the learner can’t yet appreciate all the subtlety or nuance going on. Mulling over, “Now why did they do that?” late at night is fertile ground for learning.

Pair programming can act as legitimate peripheral participation. My first task pairing with Ward Cunningham was to make sure the parentheses balanced & the periods were in the right place. From there I began to offer suggestions for better ways of solving small-scale problems (I was even right sometimes). And from there I became a full-fledged partner.

I notice that I’m learning languages without exerting noticeable effort. The legitimate peripheral participation model helps me understand how this is working.

  • Participation. I’m in there reading & understanding code to avoid the worst genie-perpetrated crimes against design. I’m programming. I’m designing. I just don’t have to do all the programming & designing.

  • Legitimate. I care about my projects. My efforts keeping complexity under control keep them moving forward, giving me plenty of emotional energy to keep exploring. If I hit a blocker related to an unfamiliar language construct, I really want to figure it out.

  • Peripheral. I feel safe. I know if I get stuck I can always ask the genie, “What does ^&«n mean?” or, “Why shouldn’t that be ~~>**% ?”

Makes me wonder what a genie specialized for learning could do. “This is the first time we’ve seen &&«. Would you like me to explain?” “I could have implemented it 2 other ways. Would you like to explain the tradeoffs?” and so on. At the moment we’re so focused on Production = Productivity that we forget that in the long-term Learning = Productivity.

Read Entire Article