Many open source projects stagnate after an initial push and end-up fading away. In this talk, we will argue that, most of the time, the reason has nothing to do with the quality of the software itself but with the project's inability to attract and support a healthy community around it. A community of contributors but also a community of users that must take an active role in the project as well.
We will review several actions and strategies that OSS project managers could put into practice to reverse this situation, mostly taken from atypical disciplines (for a software talk) like social science, economy and political science. As an example, we will talk about transparency and democracy in OSS, matching market design and software ecosystems.
4. Our mission
We are interested in the broad
area of systems and software
engineering, especially
promoting the rigorous use of
software models and
engineering principles in all
software engineering tasks
while keeping an eye on the
most unpredictable element in
any project: the people
involved in it.
Flickr/clement127
5.
6. Been there, done that since 2003
<<metaclass >>
GeneralizableElement
<<stereotype>>
<<stereotype>>
Temporal
Tags
Durability: DurabilityKind
Frequency: FrequencyKind
Constraints
{ Durability=constant or
Durability=permanent implies
Frequency=single}
<<enumeration>>
DurabilityKind
constant
permanent
durable
instantaneous
<<enumeration>>
FrequencyKind
single
intermittent
Fig. 4.1 –The <<temporal>> stereotype
10. Industrialization of research tools
BUT:
-Relies too much on SMEs
that may change their focus
- Naïve view of open source
(people will magically show
up and help)
11. Remember when...
Many projects fail and get abandoned in the
very early stages unable to get any traction (or
because they lose it!)
27. Bus Factor
“Number of key developers who would need to be
incapacitated (hit by a bus), to send the project into
disarray that it would not be able to proceed”
47. If you don’t like it, just fork it
Option only available for
technical users
End-users are not technical experts, can’t give
valid opinions
No need to ALL vote on EVERYTHING. Or not
with the same weight (dangerous road)
The open source definition does not
mention democracy
True
48. It would be impossible to make
decisions
Many types of democracy (liquid, direct,
representative,...)
I am a volunteer, I want to work on what
interests me
Sure. You can always do that (but less impact)
Proprietary software is much worse
Agreed
51. Project myProject {
Roles: Committers
Deadlines:
myDeadline : 7 days
Rules:
myMajorityRule :
Majority {
applied to Task
when TaskReview
people Committers
range Present
minVotes 3
deadline myDeadline
}
}
All the proposals for new development tasks will be
accepted or rejected in 7 days by the committers of the
project.
Verbalization
55. • Problem is getting
worse
– Complexity of SW
– New channels (e.g.
Slack)
– Team distribution
• Need of studies
targeting MDE projects
• Multi-disciplinary
solution
I’m part of your tribe, even if today we are going to talk about open source communities. Let’s see how we got involved on that
But today we’re going to talk about another thing . How did we get involved on this?
Even if many of my academic colleagues don’t believe so there is life beyond papers so we got interested in understanding how we could have a greater impact
To be used, tools must be of high quality : documentation, support, user interface,.... <- We couldn´t do this alone, we had to industrialize them
We got some success
Software Analysis is the tool we are going to use to understand what makes a project succeed. Key is to have the project itself as our target of study to learn about what it works and what it doesn’t <- New research field of software mining thanks to GitHub and its over > 30 M projects
And we have learnt a lot about this, for instance we just finished conducting a metastudy on all the papers that have analyzed data from GitHub to extract some patterns on software development practices. Valerio Cosentino, Javier Luis Cánovas Izquierdo, Jordi Cabot:Findings from GitHub: methods, datasets and limitations. MSR 2016: 137-141
But if we only focus on the code we’re missing the most important aspect: the people building AND using that code - > the Community
Important: the community is more than developers
Still, looking at raw community data is a mess. A good community analysis is not trivial to do.
The three aspects are interrelated and just a way to try to decompose the problem
But we cannot do it alone, we need powerful friends from political science, social science and ecology / complex systems.
Complex systems study how parts of a system give rise to the collective behaviors of the system, and how the system interacts with its environment
Community is not only the developers but also the users that have the right to have an active involvement in the project
Us posaré alguns exemples.
They can be collapsed for simpler analysis
a bipartite graph (or bigraph) is a graph whose vertices can be divided into two disjoint sets {\displaystyle U} and {\displaystyle V} (that is, {\displaystyle U} and {\displaystyle V} are each independent sets) such that every edge connects a vertex in {\displaystyle U} to one in {\displaystyle V}. Vertex sets {\displaystyle U} and {\displaystyle V} are usually called the parts of the graph
Comment the meaning of the size of
Importància no només del codi sinó de la discussió al voltant del projecte, per exemple quines etiquetes es fan servir més
I qui s’encarrega de comentar-les / tancar-les (tipus “bus factor” però de la interacció amb els usuaris).
I will now show you three metrics that can be calculated on top of these graphs of data.
1- Bus facotr
Helps to assess the employee turnover risk
Identify the key developers
Measure the concentration of information
Positive evolution of WordPress vs Papyrus bus factor
Number of shortest paths that passes through a node. The more the higher betweenness centrality. It says if we lose nodes with high betweenness we fragment (or “delay”) the community
Related to clustering / subcommunities / modular classes algorithms
https://wiki.cs.umd.edu/cmsc734_09/index.php?title=Music_Artist_Collaborations_from_MusicBrainz
Only core people tackle the files nobody wants. Drive people to the files that nobody wants to modify
Gitana https://github.com/SOM-Research/Gitana
You need to monitor how well are you doing in attracting new contributors.
Retention:past contributions as a predictor of future contributions are pretty consistent across releases.
if a project doesn’t make a good first impression, newcomers may wait a long time before giving it a second chance. Importance of good impression!
Up-for-grabs and good-first-bugs are curated tasks specifically for new contributors
What are other more far-fetched strategies to attrac people?
This is not a problem of only software engineering
Chains of collaborations across projects
Time-based currency
The typical reaction when I say this
Democracy is not perfect but I don’t see how the lack of democracy is better.
In any case, it’s worth that projects have this internal discussion
Typical comments against the idea
As a volunteer, you can go out in the neighbourhood and do whatever you want (But is this the most efficient way to do things?)
So what are we proposing?
2 things. First, to address transparency -> add to each project a governance.md file expliciting the governance rules of the project
Our DSL for the governance Javier Luis Cánovas Izquierdo, Jordi Cabot:Enabling the Definition and Enforcement of Governance Rules in Open Source Systems. ICSE (2) 2015: 505-514
Si és així es podria fins i tot automatitzar / assistir en la gestió del projecte. De fet tenim un plugin de Eclipse que via una eina que es diu Mylin es connecta a diversos issue and bug trackers per extreure aquesta informació, aplica les regles i actualitzar les issues.
And our second proposal is to have a closer look at the democracy models and see which ones could work best for open source. We have over 500 variants of democracy
Of course, once you choose one, you’ll need tool support to implement your democratic model
We’re always looking for collaborations.
So get involved in our research or stop complaining about useless research done in academia!!!!
We’re always looking for collaborations.
So get involved in our research or stop complaining about useless research done in academia!!!!
I que la gent creu possible que s’expliciti millor i fins i tot que s’automatitzi. I que fer-ho faria que hi hagués més contribuïdors.
Tant de forma “formal” com en llenguatge natural
Això no és un invent nostre, fixeu-vos que vam fer una enquesta anònima i els resultats confirmen que el problema de la manca de transparència és real