One of my previous employers is of the large variety. While working there, it was evident that every developer became a knowledge silo because that's just the way projects and resources were assigned. The solution my previous employer adopted was to
encourage require regular knowledge transfer meetings where a developer would share with the rest of their team what it was they had been doing in between coffee and bathroom breaks. Thus, the whole team would know enough to step in and help should there ever be a need to shuffle resources around.
It didn't work.
Just imagine, you have to stop what you're working on and attend a meeting to watch one of your peers present PowerPoint slides - against their will - on what they do for the company aside from cashing a check and drinking coffee. Maybe it's just me, but I don't consider that a healthy learning atmosphere.
I'm not with that company anymore, but those forced knowledge transfer sessions still linger in my thoughts. Then, I began working with my current employer who has a culture that promotes continuous improvement and the sharing of knowledge. I started my tenure there believing that they surely know how to keep their developers up to date with current tech. Maybe they even promote other means of learning and knowledge sharing so that we are all equally effective at our work.
You already know where I'm going with this, don't you?
Sure, as a team, we all want to be at that place I imagined when I started my current job. The problem, as you may have guessed, is nobody knows who to start down that path. We have sprint retrospectives and health checks, but they weren't the right place for improving our technical knowledge. We often try having developer-only meetings or "technical health checks" regularly, but they often stop occurring after a couple of iterations and rarely did they ever focus on sharing knowledge.
We still struggle, despite our best intentions, with knowledge silos among our team, and it's something I think about a lot now as I am transitioning into more of a tech lead role. Often, I find some useful tidbit of knowledge I'd like to share - sometimes from Dev.to - but I'm not sure how best to share what I've learned.
The problem with Emailing or IMing unsolicited stuff to the team is that it feels like I'm shouting into the void. I put together a relatively small blurb with supporting URLs but rarely would I get a response. I don't ever expect one, but I imagine that the rest of the team would simply read it and say, "Oh. Cool." and then forget about it. Perhaps that is my insecurity on display, but if I'm honest with myself, I would probably do the same thing.
Another issue with disseminating knowledge in that fashion is that you can only touch on so much before people truly tune you out. Would you want to read a blog post in an Email or a messenger window?
I've thought about running a "lunch and learn" session or scheduling a meeting on a topic I'd like to discuss, and a few people have even attempted it in the past. While successful in the short term, both have lacked staying power. Those failures may lay squarely at our own feet because no one took the lead and championed this cause.
Beyond the effort needed to continue training sessions amongst the team is the unfortunate reality of cost. The bottom line is that we (the team) are consultants and there is always the nagging idiom "time is money" hovering over our time-management decisions. Admittedly, my employer values self-improvement and training, so we're afforded some slack when it comes to improving those. Nevertheless, I can't help but assume that when given a choice, most would stick with their billable work rather than volunteer their time to gain knowledge in an area that isn't yet relevant to their current task.
I recognize that I own most of the responsibility for sharing information I find useful to our team, and I'm up for being a catalyst of change. Our team can all agree that we must do more to break down our few remaining silos to work more efficiently, and I believe we can get there.
What I want to know, though, is the best or an effective way to share knowledge. What has been successful for you? Was there a particular medium that your team responded better to than others? Do you think I need to stick with the things we've tried before?