Leading software companies have discovered that developing capable technology is not enough to guarantee long-term success. To stay relevant, software leaders need to develop and support the repeatable systems necessary to develop and sustain knowledge and expertise. Many organizations have taken inspiration from Spotify’s culture and adopted the concept of a guild or community of practice to connect engineers throughout the organization and steer them towards common goals. As organizations adopt this model, what is often missing is a clear understanding of the purpose of communities of practice and a repeatable process for developing the communities to their fullest potential. This post provides some guidance based on our experience developing a community of practice at Workiva, it also includes some best practices from the book Cultivating Communities of Practice.
Defining a Community of Practice
Communities of Practice are groups of people who share a concern, a set of problems, or a passion about a topic, and who deepen their knowledge and expertise in this area by interacting on an ongoing basis.
A Community of Practice (CoP) can be best described through example. Consider a surgeon, Alice. Alice is an expert practitioner of her craft and refines that expertise daily in her work. While working through some difficult cases, Alice develops a novel procedure that has the potential to reduce complications and patient recovery time. Alice is a practitioner of surgery, but she also belongs to a larger community of surgeons. Through the connections to her community, Alice can share her new procedure with like-minded individuals, refine the approach, collect feedback from other practitioners who try it, and eventually encode the procedure into the body of knowledge required to be a surgeon through published research, conference talks, and community events. Each surgeon in the community benefits from the personal and professional development available to them, and the practice of surgery benefits from the accumulation of knowledge and best practices developed and shared by its members.
We can bring this model directly to software development teams. As an engineer on a team, you are accountable for solving problems with your team. As you do so, you will refine your skill in solving problems and may encounter new problems that require new solutions. In your second role as a member of a community of engineers, you are accountable for developing the practice by bringing your experience to the community who can help discuss new solutions, generalize or document them, and integrate them into the community’s practice. Other members of the community then have the opportunity to apply these new solutions to additional real-world problems, continuously refining and developing the practice.
More generally, we want to learn from our experience so that we can fully leverage the collective knowledge we’ve developed over time. To do so, a community of responsible for developing the practice should be tightly connected with how that knowledge is applied in teams in what Etienne Wenger calls the “double-knit” knowledge organization. In this model, practitioners have dual roles as both members of the community and members of their team. This dual role helps keep the work of the community grounded in the requirements of teams and their members, and helps knowledge and best practices spread throughout the organization. The connection forms a strong feedback loop towards continuous improvement.
Creating the Community
Cultivating Communities of Practice proposes three basic elements that all successful Communities of Practice should have: a domain, a community, and a practice. It is important to develop all three elements in parallel. The art of community development is to use the connection between domain, community, and practice to help a community evolve and fulfill its potential.
The domain provides common ground for practitioners and a sense of common identity. A good domain provides a clear direction for the community and transforms it from a group of friends to a shared sense of accountability to a practice. A well-developed domain becomes a statement of what knowledge the community will steward.
The most successful Communities of Practice thrive where the goals and needs of an organization intersect with the passions and aspirations of participants. If the domain of a community fails to inspire its members, the community will flounder. Moreover, if the topic lacks strategic relevance to the organization, the community will be marginalized and have limited influence. This intersection of personal meaning and strategic relevance is a potent source of energy and value. Domains that provide such a bridge are likely to inspire the kind of thought leadership and spirit of inquiry that are the hallmarks of vibrant communities of practice.
Membership in a community of practice is voluntary. This means that the success of the community depends on personal connection and passion more than forced participation or coercion. The kind of personal investment that makes for a vibrant community is something that must be developed through trusting relationships.
A good community provides a safe space to share ideas, expose potential ignorance, ask difficult questions, to listen carefully, and to learn.
The Community Coordinator
The most important factor of success for a community of practice is leadership. The community coordinator is a leadership role that helps focus the community on its domain, maintain relationships between community members, and help develop its practice.
It is easy to conflate the role of community coordinator with that of subject matter expert. The role of the coordinator is to foster the community itself, not to be an expert on the domain. By elevating a subject matter expert to the role of community coordinator, you actually do a disservice to the community – members may be reluctant to bring up topics that challenge the expert.
A good community coordinator needs a few attributes to be successful. The first is enough time to do the job. A large portion of the role requires work that isn’t always immediately visible or reportable and managers need to trust in the long-term value of the community to invest in a community coordinator. A second attribute to focus on is the private space between community meetings or events. The coordinator is most successful when they connect practitioners together on topics, surface issues from members to the community, and work between the seams around teams and organizations. Both of these attributes require strong networking skills, people skills, and the ability to influence without authority.
The practice encodes the specific knowledge the community develops, shares, and maintains that becomes the defined way of doing things at your organization. One of the tasks of a shared practice is to establish a baseline of common knowledge that each member of the community can be assumed to have. Ideally, this common knowledge is encoded in a knowledge base developed and curated by the community itself where documentation and sharing of knowledge is not a goal, but an integral part of life for the community.
The practice needs to be connected to the work of community members. A successful pratice involves back and forth interactions between on the ground work and experience and generalization and production of artifacts that encode the best practices.
Building the Community
Successful communities spend equal time developing the domain, the community, and the practice, to make sure that all relevant community issues are addressed for the benefit of community members, the organzation, and the community itself. You can use the following list of questions to make each area of the community as successful as possible.
Questions to ask:
- What topics and issues do we really care about?
- How is this domain connected to the organization’s strategy?
- What is in it for us?
- What are the open questions and the leading edge of our domain?
- Are we ready to take some leadership in promoting and developing our domain?
- What kind of influence do we want to have?
Questions to ask:
- What roles are people going to play?
- How often will the community meet?
- How will members connect on an ongoing basis?
- What kinds of activities will generate energy and develop trust?
- How can the community balance the needs of various segments of members?
- How will members deal with conflict?
- How will newcomers be introduced into the community?
Questions to ask:
- What knowledge do we have to share, develop and document?
- What kinds of learning activities to organize?
- How should the knowledge repository be organized to reflect the practice of members and be easily accessible?
- When should processes be standardized and when are differences appropriate?
- What development project should the community undertake?
- Where are the sources of knowledge outside the community?