[Software Engineering at Google] CH3 Knowledge Sharing
1 minute read
Setting the Stage: Psychological Safety
Psychological safety is critical to promoting a learning environment
To learn, you must first acknowledge that there are things you don’t understand. We should welcome such honesty rather than punish it
An enormous part of learning is being able to try things and feeling safe to fail
One important way of building psychological safety is to assign a mentor someone who is not their team member manager, or tech lead whose responsibilities explicitly include answering questions and helping ramping up
Growing Your Knowledge
Learning is not just about understanding new things; it also includes developing an understanding of the decisions behind the design and implementation of existing things
Seek out and understand context, especially for decisions that seem unusual. After you’ve understood the context and purpose of the code, consider whether your change still makes sense
Scaling Your Questions: Ask the Community
Use the following community to ask questions
Group Chats
Mailing Lists
Question-and-Answer Platform
Scaling Your Knowledge
Use the following source to increase/spread knowledge
Office Hours
Tech Talks and Classes
Documentation
Code and Comments
Scaling Your Organization’s Knowledge
Be aware of the following for cultivating a knowledge-sharing culture
Respect
Incentives and recognition
Readability: Standardized Mentorship Through Code Review
Code review is mandatory at Google
Every changelist (CL) requires readability approval, which indicates that someone who has readability certification for that language has approved the CL
Certified authors implicitly provide readability approvalof their own CLs; otherwise, one or more qualified reviewers must explicitly give readability approval for the CL
TL;DR
Psychological safety is the foundation for fostering a knowledge-sharing environment
Make it easy for people to get the help they need from both human experts and documented references
At a systemic level, encourage and reward those who take time to teach and broaden their expertise beyond just themselves, their team, or their organization
There is no silver bullet: empowering a knowledge-sharing culture requires a combination of multiple strategies, and the exact mix that works best for your organization will likely change over time