How We Value Learning

One of our core principles on the engineering team is that we value teaching and learning. We often struggle to live up to them, but we work hard everyday to bring our practice in line with our principles.

I'd like to tell you about one step on our journey of valuing teaching and learning.

TL;DR #

As engineers, we spend a lot of time learning. We also spend a lot of time being confused. While this time is valuable, it’s not highly visible. This can create problems for learning. At TpT, in order to prevent this problem, we elevate this work by encouraging people to give short, low-pressure presentations about things they have been learning at the end of each week. Past topics have included tips for our monitoring and logging systems, how our search indexing works, unit testing in React, common Elixir patterns, and much much more.

The Problem #

If we're lucky, engineers spend the bulk of our time learning. But we rarely talk about it. This leads to a host of problems.

First, this leads to poor communication, since we're not talking about significant parts of our work. We don’t learn from each other, and end up repeating others’ mistakes.

Second, this distorts our reality, leading us to feel that we are the only ones who struggle to learn. This can make learning things feel much more uncomfortable, which is of course harmful.

Third, this devalues the time spent learning through lack of recognition. By not talking about time spent learning we show that we don't think it's worth talking about.

These three effects are directly in opposition to valuing and facilitating learning.

Part of the Solution #

We borrowed an idea from the Recurse Center - informal weekly presentations. These are short, five-ish minute presentations given in a one-hour session at the end of each week. Sign-ups are on a Google doc that gets sent out in the #engineering Slack channel every week.

The content ranges from live coding and code walkthroughs to feature demos to short presentations about useful tools. Some past topics include:

  • Unit testing in React with enzyme
  • Vim window management
  • Elixir auto generated documentation
  • Apollo - GraphQL client with React bindings
  • Dotfile tips & tricks
  • Testing Chef with Test Kitchen
  • Sphinx indexing
  • Natural Language Processing in BigQuery
  • Kubernetes Introduction

This has the primary effect, of course, of elevating the day-to-day learning we do and avoiding some of the damage outlined above. It also has some additional benefits. It gives people ample opportunities to practice teaching, and it empowers people to speak up about the value they are providing. We all get a better sense of the day-to-day work on other teams. Everybody learns, and it's a relaxed atmosphere for team bonding.

Next Steps #

This is just one step, so obviously there are next steps. We have some ideas.

We are trying to expand this practice to everyone at TpT, whose learning is at least as important as ours, and maybe more devalued. We have recently begun encouraging more demo-like presentations to push a little more on the cross-team communication aspect. The beer was a recent addition, too. We'd also like to give the presentations persistence, but have not put in the effort to make it work yet.