Communities of practice (CoP)
Communities of Practice (CoP) are groups of people motivated by a common set of problems or topics, who collectively develop accepted practices, often aimed at the advancement of knowledge in a specific professional domain \cite{wenger1998}. A central element of CoP is therefore the ability to fluidly share knowledge, and in particular, to share it in ways that enable others to reuse the shared work and build upon it. Jupyter has become an enabling technology for CoP that operate in technical spaces where computing, data analysis, and programming are central.
Several elements in the Jupyter ecosystem play complementary roles in support of CoP. Most prominently, the computational narratives of Jupyter notebooks support both individual exploration of ideas and sharing of the resulting knowledge in a reusable, reproducible manner that encourages feedback and collaboration. In turn, a body of knowledge encoded in such narratives fuels the cycle of collaboration that builds the CoP. These narratives are particularly valuable in research and education, fields where exploration, discovery, reproducibility, and shared understanding of complex problems are key objectives.
Furthermore, other aspects of Jupyter beyond Notebooks support the growth of CoP, as we illustrate now.
Notebook sharing: when the IPython Notebook was released in 2011, sharing work in notebooks would require the recipient to also have the software installed to view it, or to ask the author to convert the notebook to a widely used format like HTML or PDF. The nbviewer service made this conversion a one-click action. Originally prototyped by M. Bussonnier in 2012, it enabled anyone to easily share the rendered HTML version of any publicly available notebook as a link that readers could access with a web browser. We observed a rapid rise of notebook sharing via blogs and social media, as people would publish their work in this format. This pattern of sharing has continued and expanded as other platforms, such as GitHub, have added builtin notebook rendering. Today, Jupyter Book facilitates sharing entire collections of notebooks that form complete interactive “textbooks”. These can be hosted online as static HTML websites at no cost via tools like GitHub Pages, and as live, executable notebooks via Binder.