1. Don’t talk about code
As a programmer, you’ve probably observed that one of our most valuable skills is our ability to learn. The better you get at learning new things, the better you get at programming.
When you start your journey as a programmer, there is a ton of new information available for you on the internet — and chances are, all of the articles you stumble upon will teach you a thing or two.
Sadly, once you have read the documentation several times, built a to-do app, and crawled the internet for a few weeks, learning new stuff slows down massively.
Fortunately, in most companies, you’ll be surrounded by talented people who know lots of things they can teach you. And you can teach them a couple of things back.
In this piece, I want to share a few ideas that can help you establish a knowledge-sharing culture, allowing you to enjoy your time a little bit more at work.
Build the community
First things first, we need to gather people who are interested in a certain domain — it doesn’t matter whether they’re experts or novices. The more the merrier.
If you’re lucky, you’ll have some sort of grouping already in your company: Maybe you have a Slack channel, a team of domain experts, or a chapter.
Second, we need to motivate people to participate in the events. Initiating a learning activity isn’t always going to be smooth since humans are lazy by nature, especially programmers.
It’s a crucial step to engrave this behavior so the company cultivates a learning culture. These incentives can be anything: a round of applause, giving recognition, cool T-shirts, tasty food, gift cards, or even team trips.
1. Don’t Talk About Code
How it works: Gatherings are a great way to connect. Grab some pizza and a couple of beers, introduce yourself, and get to know your coworkers.
Benefits: Sharing experiences and human connection is more important than sharing knowledge. We spend huge portions of our day at work — being friends with your coworkers makes working so much fun and helps when deadlines become too tight.
2. Things You Don’t Know … Yet!
How it works: Every round, a developer shares three tips/tricks/hacks that are useful and thinks other developers don’t know.
The presenter gets a point for every participant that didn’t know the trick, and a leader board is kept with high scores.
a. Multiple cursors in VS Code:
Cmd + D
let value = obj && obj.value || defaultValuec.
('b'+'a'+ + ‘a'+'a').toLowerCase() // banana
Benefits: The simplicity of the game makes it easy for people to participate and get started with knowledge sharing. And even though it’s a fast game, some small tips can end up being a huge time-saver.
3. Collaborative Newsletter
How it works: Members send the organizer articles they liked while crawling the internet.
The organizer combines, filters, and creates a newsletter. Ideally, these articles will be focused on technologies used in the company, frequent challenges, and the technical vision the company is heading towards.
Benefits: The newsletter facilitates common awareness and saves time by reading quality articles that match the developers’ levels. It acts as a conversation starter between developers as opinions are shared. And finally, it provides an easy way to make sure everyone is up to date so the team is full of strong domain experts.
4. Cross-Team Pair Programming
How it works: Developers from different departments are paired together, and they’re assigned a simple task (as one of the developers will have very little context about the codebase).
Benefits: Pairing has so many benefits. Cross-team pair programming helps in creating overall code ownership in the company and facilitates more code reuse across teams as developers will be aware of other projects and challenges in the company.
5. Bragging Time
How it works: A developer or a team shares a recent technical implementation they’re proud of — presenting the solution elegance, the complexity of the problem, or even the implementation duration.
Benefits: Being able to express and explain technical solutions is an important skill for developers to gain, especially when you have juniors on your team.
Spreading knowledge about the best work done in the company helps with keeping the quality high and creates a space for people to show off their beautiful code and ideas.
6. Crash Course
Format: Long presentation and demo
How it works: A long presentation is when a developer shares something they recently learned, going in-depth and simplifying it. Preferably this is a new or trendy topic, such as GraphQL or hooks.
Benefits: Teaching is one of the best ways to learn. Developers who provide crash courses will become experts in the subject while preparing the course, and everyone else will get a boost in their learning curve — #win-win.
7. Play With Code
Benefits: Some developers like to write code for fun. Having time to write purposeless software exposes developers to new types of brain teasers. Add a little bit of friendly competition, and you have a recipe for an amazingly fun time.
8. Host a Meetup
How it works: Figure out what your organization has been working on that you’re proud of and want to share with the public — or talk about technologies that have been deeply used in the organization.
Benefits: Hosting Meetups allows you to bring external domain experts to the company, allowing external knowledge exchange. Developers presenting will help in giving back to the community and grow other skills, such as public speaking.
And, most importantly, it’s always amazing to meet fellow developers!
9. Organize a Retrospective
How it works: Like all team retrospectives, a safe environment is created to review and enhance processes, figure out issues, and determine upcoming challenges.
Benefits: Facilitating collaboration and communication is important in gathering feedback, which allows us to learn from pitfalls and acknowledge achievements.
Thanks for reading, I hope some of these ideas help you share knowledge between your teams.