Communities of Practice

groups of people who share a passion for something that they know how to do, and who interact regularly in order to learn how to do it betterEtienne Wenger

rOpenSci

we are a group of people who passion is open and reproducible research to everyone, buid it by everyone. And we know how to do it by creating technical and social infrastructure.

  • Creating a suite of carefully vetted, federated R software tools.
  • Making the right data, tools and best practices more discoverable.
  • Welcoming and diverse community.
  • Building capacity of software users and developers and fostering a sense of pride in their work.
  • Promoting advocacy for a culture of data sharing and reusable software.

Community Manager

Facilitates the activities of a community and the interactions between community members. Community management may be considered as “in-reach” rather than “outreach” or public engagement. - CSCCE

Let’s analyze rOpenSci community

Why analyze our community?

Communities are built on connections.

We need to know our community connectivity to plan targeted and effective interventions to:

  • improve collaborations.
  • improve information flow.
  • improve knowledge reuse.
  • effective knowledge (co)creation.
  • effective knowledge transfer.

At a given moment in time

  • Who is connected to whom? Who is not connected?
  • Where, and who, are the hubs?
  • Where and about what are the clusters? Are there silos?

Changes over time

  • Are new connection forming?
  • Are new patterns of connectivity forming?
  • How was our network before and after the introduction of an activity?

How we can analyze our community connectivity?

Social Networks Analysis

Group of individuals who relate to others for a specific purpose, characterized by the existence of information flows.

Social Networks Analysis - Basic elements

Social Networks Analysis - Basic elements

Social Networks Analysis - Basic elements

Social Networks Analysis - Basic elements

Social Networks Analysis - Basic elements

Social Networks Analysis - Basic elements

Social Networks Analysis - Basic elements

Social Networks Analysis - Basic elements

Social Networks Analysis - Basic elements

How we can collect the data?

Path to contribute at rOpenSci

Write a blog post

Review a package

Maintain a package

Speak at a Comm Call

Become a champion

Host a coworking session

Contributions in a network

N:author. E:coauthorship

N:author, editor, reviewer. E:peer-review

N:developer. E:codevelopment.

N:speaker. E:cospeaking, coorganization

N:mentor, mentee. E:mentorship

N:participants. E: coorganization, coattendence

Data for the network

Webpage

GitHub, database

GitHub,r-universe

Webpage

Webpage, database

Webpage

Let’s see an example with the Blog

Let’s see an example with the Blog

file_list <- fs::dir_ls(path = "content/blog/", 
                        recurse = TRUE, 
                        type = "file", 
                        glob = "*.md") 

datos <- tibble(fecha = character(), 
                titulo = character(),
                autor = character(), 
                year = character(), 
                contribution_type = character())
                
for (documento in file_list){ 
  doc <- rmarkdown::yaml_front_matter(input = file.path(documento)) 
  datos <- tibble::add_row(datos, 
                           fecha = doc$date, 
                           titulo = doc$title, 
                           autor = doc$author, 
                           year = as.character(year(date(doc$date))), 
                           contribution_type = 'blog post' 
                           )  
}

write_csv(datos, "blog_post_authors_2023.csv") # ;-)                

Let’s see an example with the Blog

results <- datos |> 
  group_by(titulo, year) |>
  filter(n() > 1) |> 
  summarise(as.data.frame(t(combn(autor, 2)))) |>
  select(titulo, year, from=V1, to=V2)

Blog-Post full network 2013-2023

We can analyze it annually

All contribution together

Champions first co-hort

R-universe Stars Interview Team

What if you wanted to do the same for your community?

My tips

  • Define the nodes in your network (people, countries, organizations, …)
  • Define the type(s) of connection you have in your network.
    • Start with your paths for contributions.
    • Identify which contributions can be done in teams.
  • Probably you are alredy registering information about those type of connection.

My tips

  • You can automatize a portion of the data collection.
    • Formalize the workflow (code ;-)) so you can repeat & reproduce.
  • It is hard to capture all type of interactions.
    • Take into account open/close/privacy of the data.
  • Knowing the nodes help to undertand the clusters and the interactions.
    • Lean on the people who have been in the network for the longest time.

My tips

  • You can take snapshot of the network model …
  • … so you can compare it at different times.
  • … so you can use it for evaluating the impact of interventions and programs.
  • Share what you find with your community
  • … and other community managers.

¡Gracias, Thank you, Obrigada!