I recently attended the Software Craftsmanship North America conference. Audrey Troutt gave a talk, Learn Better Together, that really caught my attention.

As I’ve written before, I’ve been focusing a lot on learning for the past five years or so, trying to get better and better at what I do.

Zeal, the company I work for, has a similar focus which is one of the reasons I work there.

Often, though, our learning is an individual thing. There have been some times where we’ve gotten together as a group to all learn the same thing at the same time, but a lot of our learning is individual.

Audrey’s talk made a compelling case for learning as a team. She suggests that anywhere from 20-70% of development time is spent on learning, which makes it one of the biggest parts of any project.

Citing the theory of constraints, she suggests that learning might be the bottleneck in our development process, so anything we can do to learn more quickly will speed up our team.

She gives a number of examples of what teams might need to learn together and how they might do that. She also gives her recommendations for instilling a team learning culture:

  • Clarify goals: Know what you’re learning and why you should learn it.

  • Apply immediately: Take what you’ve learned and use it right away so it sticks.

  • Protect learning time: Make sure that your team has the time they need to learn. If there isn’t lower-pressure protected learning time, the team will still need to learn but the learning won’t be as effective.

  • Include everyone: Make sure everyone is learning together. Otherwise, you’ll introduce fractures into your team and they won’t be as effective.

  • Iterate and reflect: Always review how things are going and make improvements along the way.

As I have reflected on this talk, I think we’re doing pretty well at Zeal, but we also have some room to improve.

Here are some examples of what we do today. Maybe some of these ideas would work for your team as well:

  • We have “Zeal Day”. We do billable client work for four days during the week. Fridays are called Zeal Day, where we can work on anything that makes ourselves or the company better. We work on open-source projects, internal initiatives, learning new technology, preparing conference talks, or anything else that fits this general guideline.

  • We occasionally decide to focus the entire team on learning a specific thing that we feel is important for everyone to know. We might use Zeal day to work together on the new subject. We might read a book together and have a book club to discuss it. We might tackle a small learning project together.

  • We have lunch-time tech talks a couple of times a month. Anyone on our team can volunteer to give a tech talk about something they’re learning.

  • We organize and host meetups.

  • We have a “Friends of Zeal” program, where we allow friends of the company to come in and work on their projects in the coffee house part of our office.

  • We have an apprenticeship program, where we bring in new developers and help to grow them into members of our team that we can place on client projects.

  • At our morning standups (and in our Slack), we have a segment that we call “interestings”. Anyone on the team can share something relevant that they’ve read, watched, or listened to recently.

As a side note, we’ve begun collecting these items into a weekly curated newsletter called “#interestings” that we share internally and with clients and friends.

We’re now opening it up to the rest of the world, so if you’d like to start receiving the newsletter or review back issues, you can check it out at https://codingzeal.com/interestings.

Based on Audrey’s talk, we’ve already started talking together about how we can make our learning more effective. I can’t wait to see where we end up!

What does your team do to learn together?