“ Hard times create strong men, strong men create good times, good times create weak men, and weak men create hard times. ”
G. Michael Hopf
One of the most challenging things in software development is setting up and supporting information pipelines/flows. How people communicate is the key to any successful product and team. By success, I mean not only the profit that you bring to the company, but also how much enjoyment you derive from your work, and how much easier you make life for yourself and your teammates. If you think that profit is the only thing that matters, then I guess you would not enjoy the rest of this article. It's okay. It's okay to be a soulless bastard.
I have been working as a software developer for more than 6 years, I worked in different types of companies and teams in terms of size and scale and how those teams operate. What is common about those companies/teams is that they absolutely sucked at knowledge sharing, or even at establishing sources of knowledge and rules of how to access the information required for the work.
I have gathered all the hideous, horrible, and just the worst practices of knowledge sharing that I have experienced in my career. I will try to share them and suggest some alternatives. Whether you would agree or disagree with me, it doesn't change the fact that I am right. Let's start.