Using Git for Knowledge sharing

by Hemant,

As imperative as it is for efficiency, knowledge sharing is not a behavior that is easily assimilated into the company culture. There is no immediate incentive for a team member to go out of the way to share resources and hacks that might prove useful for somebody else in the future. Even well intentioned employees might not contribute if the process is too much trouble.

There are several threads on Quora discussing the various available ways - Wiki, Google docs, knowledge management software...the list goes on. There is no dearth of options. Even so, we chose to do it our own way. Here we share our 2 cents of wisdom on how we do it and why it works.

Why not a knowledge management software?

As programmers, we generally are either too lethargic or too busy to step out of the comfort zone of a text editor or terminal. In such a case, it would be quite a hassle to open or login to a separate system to share tips and tricks learnt through the day. The only way we can hope to make knowledge sharing possible is by hacking a process which will not interfere with a programmer’s flow.

Our hack is very simple but quite efficient - we have been doing this for over a year now. What we do is - anything a developer thinks worth sharing is written down in a Markdown file and pushed into the collective-knowledge repository which we call ‘Picks’. Others in our team get notified via Hipchat, they can have a look and comment on commit if needed. Content is easily searchable via simple tools like grep or ag.

Picks

There is a good reason why developers would prefer a Jekyll to Wordpress. The philosophy of Jekyll (as below), quite reflects our reason to go ‘Picks’.

Jekyll does what you tell it to do — no more, no less. It doesn't try to outsmart users by making bold assumptions, nor does it burden them with needless complexity and configuration. Put simply, Jekyll gets out of your way and allows you to concentrate on what truly matters: your content.

The toothpick gem

We have even created a command line utility that automates this workflow. Using Toothpick, saving the file in your editor automatically pushes the pick to git repository.

Knowledge sharing works quite well this way at our scale; we are a team of 10 devs. We are not too sure about how this will scale as the team scales. But, that is a problem to be solved in the future. We would love to learn what works for you and how you manage it in your company. Looking forward to your comments.

More articles

Operating Kafka in Rails with Karafka: Production Architecture, Consumers, and DLQs (Part 2)

In Part 2, we dive deep into the Sync-Out pipeline—how Rails publishes events to Kafka, how our legacy adapter writes to SQL Server 2009 using TinyTDS, and how Dead-Letter Queues (DLQs) became our lifeline during production incidents. This post covers transaction management, service objects, and operational workflows for handling failures.

Read more

Operating Kafka in Rails with Karafka: Production Architecture, Consumers, and DLQs (Part 1)

This post breaks down our production architecture for event streaming in Rails using Kafka and Karafka—from designing producers and consumer flows to handling failures with DLQs and keeping warehouse databases in sync reliably.

Read more

Ready to Build Something Amazing?

Codemancers can bring your vision to life and help you achieve your goals