If knowledge is power, then sharing your knowledge empowers others.
In the open-source world, each of us endeavours to strengthen the communities to which we contribute. There is no better way to strengthen a community than empowering your fellow contributors with your knowledge.
There are no excuses in the open-source world for not sharing your knowledge. Our tools and processes are designed to make this happen naturally.
Having discussions on a mailing list allows other contributors to benefit from the information being shared in the discussion. It also ensures that information is archived for future contributors.
Detailed commit messages ensures that current and future developers can fully understand your reasoning for a given change. Pushing your in-progress work to a public branch allows others to take the work on and finish it, even if you don’t have time.
Thinking out loud in bugzilla means that even if your work is not complete on the problem, others can run with your initial ideas or analysis.
Using a public wiki for note taking and giving others access to your jumbled up thoughts, ideas, hints and tips is a great way to open your brain to the world.
A nice side-effect of all this is that if your knowledge is shared openly and archived, you don’t need to have such a good memory!
In other contexts, it might be good practice to jealously guard your knowledge. If you’re the guy that everyone has to come to because you’re the one guy who knows how to do something, that’s good for your job security, right? Surely, if you share your knowledge freely, that means anyone can do your job?
This is the exact opposite to what should motivate you as you contribute to a community. You absolutely do want to make it possible for others to come along and kick your ass. If somebody appears out of nowhere and starts doing your job better than you could ever have done, then that is an absolutely awesome outcome!