DEV Community

Bhumi
Bhumi

Posted on

Distributed thread pulling in software teams - teaching and learning from our colleagues

"Acknowledging you don't know something is the dawning of wisdom" - Charlie Munger

This is so difficult to do in the software world. If we don't know something, (it is expected that) we say nothing, look it up, read a wikipedia page, and come back to the conversation with an air of having known about the concept all along. (I have this visualization of xkcd comic where time is paused, dash to the keyboard, unpause time, start nodding).

In doing this, sometimes we fool ourselves too. I know all about distributed ledgers now (or document-orientated databases or GraphQL or SSL or DNS...). We squash the desire to go back and actually understand concepts at a deeper level. As developers we do have to walk a fine line. I wrote about abstraction and the constant need to be able to make use of something without understanding it fully. Suppressing curiosity at times is a necessary part of being an efficient get-things-done kinda developer. Other times we do have to dig deep to figure something out, especially while debugging. Where things are not working according to our expectation, pointing to a likely gap in our current understanding (OR a silly typo!). And these times can actually be enjoyable if allow for actual insight and wisdom to seep in!

I like the idea of pulling at threads to understand something deeper in my spare time. But this is not very efficient. There are only so many things I can get through in a week or month before I get exhausted or distracted.

So what if we could do this in a distributed way.

We could distribute this thread pulling activity and divide up topics among a team. The thread pulling deep dives could take 1 to 2 hours each week and then we come back and share the learning with everyone. This could work. Couple things required to make this actually beneficial for all:

  • Focus on collaborative understanding (not self-promotion or boasting) - every single person should be able to nod their heads. Really practice articulating the concepts well. You are only successful if your teammates really 'get' it and have that aha movement.
  • Focus on the most relevant sub category to the team's current work. Make it relevant to everyone in the team and make it relevant to your current project (so not computer science --> web development --> browser debugging --> dev tools)

Wouldn't it be really awesome if we all take the time to pull a thread and learn and teach each other in a real way. With the common goal of appreciating the beauty hidden in software. I would love to be part of a software industry culture where this type of learning and teaching from team members is a common practice.

In my experience good things come from connecting the dots.

Have you tried a practice of learning and teaching within your teams?

Top comments (0)