Software Ecosystem Evolution. It's complex!
Transcript of Software Ecosystem Evolution. It's complex!
Software Ecosystem Evolution. It’s complex!Tom Mens, COMPLEXYS Research Institute
University of Mons, Belgium
http://blog.christianposta.com/images/disorganized.png
Software Ecosystems
A software ecosystem is a collection of [inderdependent] software projects
that are developed and evolve together in the same environment. Mircea Lungu
(PhD, 2008)
Interdisciplinary research
“Many challenges we face are not solvable by people remaining in their single discipline silos”…
www.newscientist.com/article/mg20928002-100-open-your-mind-to-interdisciplinary-research/
Interdisciplinary research
Ecological Studies of Open Source Software Ecosystems• Use ideas from biological ecology to understand
and improve evolution of software ecosystems• Ongoing research project (2012-2017)
in collaboration with Prof. Philippe Grosjean
COMPLEXYS Research Institute of UMONS• Use ideas from complex systems research
across different scientific disciplines.
Software Ecosystems
Are huge !
https://www.montereybayaquarium.org/animal-guide/marine-mammals/blue-whale
CRAN
Andrie de Vrieshttp://blog.revolutionanalytics.com/2015/07/the-network-structure-of-cran.html
Package dependency graph
> 9K active packages> 21K dependenciesin April 2016
Kevin Gulliksonhttp://kgullikson88.github.io/blog/pypi-analysis.html
> 56K packages> 53K dependencies in February 2016
> 317K packages > 728K dependencies in June 2016
https://exploringdata.github.io/vis/npm-packages-dependencies/ (July 2013)
Software Ecosystems
Are inherently socio-technical– Thousands of interdependent
software parts– Thousands of interacting
contributors
T Mens. An ecosystemic and socio-technical view on software maintenance and evolution. ICSME 2016 keynote.
Software Ecosystems
Are difficult to manage– Unclear structure– Backward incompatible changes, breaking
dependencies– Unexpected removal of software components– Departure of key contributors– Cascading security problems– Nontransparent painful submission/update policies– Violations of policies (versioning, licensing, …)
Software Ecosystems
Are all different
Every software ecosystem– has specific habits, expectations, change policies– uses specific tools
Bogart et al. How to break an API: Cost negotiation and community values in three software ecosystems. FSE 2016
Software Ecosystems
Share similar topologies– Most non-isolated packages (~90%) belong to a
single weakly-connected component
Alexandre Decan, Tom Mens, Maelick Claes:- On the topology of package dependency networks: A comparison of programming language ecosystems, WEA 2016- An empirical comparison of dependency issues in OSS packaging ecosystems, SANER 2017
Mirroring hypothesis
Conway’s lawSoftware structure tends to mirror the organisational/social structure
A.k.a. socio-technical congruencealignment between technical dependencies and social coordination in a project
Mirroring hypothesis
Conway’s law• Evidence in favor: commercial “in-house” development
MacCormack et al. “Exploring the duality between product and organizational architectures: A test of the mirroring hypothesis.” Research Policy, 2012.
Mirroring hypothesis
Conway’s law• Evidence against: “community-based” development
Colfer et al. “The mirroring hypothesis: Theory, evidence and exceptions.” Harvard Business School, 2010.
More modular software with emergent structure? reminiscent of “complex systems”?
Syeed et al. “Socio-technical congruence in the Ruby ecosystem.” OpenSym, 2014.
Complex Systems
“A new approach to science that investigates how relationships between parts give rise to the collective behaviors of a system and how the system interacts
and forms relationships with its environment.”
Emergence: process whereby larger entities, patterns, and regularities arise through interactions among smaller or simpler entities that themselves do not exhibit such properties.
Complex Networks
Citation from Melanie Mitchell:
“network thinking is providing novel ways to think about difficult problems such as how to do efficient search on the Web, […] how to manage large organisations, how to preserve ecosystems, […] and, more generally, what kind of resilience and vulnerabilities are intrinsic to natural, social, and technological networks, and how to exploit and protect such systems.”
Complex Networks
Examples of complex technological networks – World-Wide Web– Software dependency graphs– Social networks (e.g. Facebook)– Socio-technical software ecosystems
Complex Networks
Typical characteristics of complex networks:
Small-world property (Milgram, 1967)Skewed distributions (power law, long tail)Scale-freeness
Complex Networks
Small-world property• Like random networks but …
• Low average path length between any two nodes– 6 degrees of separation
• High clustering coefficient• Clusters of components
linked through “hubs”
Complex Networks
Example of small-world property• Bugzilla collaboration networks in large OSS projects
M. Zanetti, E. Sarigol, I. Scholtes, C. Tessone, F. Schweitzer. A quantitative study of social organisation in open source software communities, 2012
Complex Networks
Skewed distributions (power law behaviour)• Few nodes with very high in (resp. out) degree• Many nodes with very small in (resp. out) degree
Complex Networks
Scale-freeness• Observed degree distribution is very similar
regardless of the scale of the observation
Scale-free networks are more resilient to changes– Robust to deletion of random (non-hub) nodes– Vulnerable to the deletion of hubs
Complex Networks
Possible applications for SECOs• Provide prediction/forecasting models
– of how SECOs emerge– of how SECOs grow
• Estimate SECO resilience after major disturbances• Assess risk of deleting hub nodes
(key components or key people) bus factor!
How do SECOs grow?
Popular model: preferential attachmentBarabasi et al. Emergence of Scaling in Random Networks. Science 286, 1999
How do SECOs grow?
Popular model: preferential attachment
Reasons for preferential attachment
• Popularity“the rich get richer”
• Quality“the good get better”
• Mixedthose reaching critical mass first will become stars
Barabasi et al. Emergence of Scaling in Random Networks. Science 286, 1999
How do SECOs grow?
Extension of preferential attachment model to simulate growth of complex software systems
By mimicking the principle of coupling & cohesion
Li et al. Multi-Level Formation of Complex Software Systems. Entropy 18(178), 2016
Simple growth modelsfor complex systems
• A complex system may have thousands of variables and degrees of freedom
• Yet, some of its dynamic behaviour can be explained surprisingly well by simple models like exponential, logistic, or Gompertz)– Due to emergent organisation and properties– Due to constraints limiting the degrees of freedom
Simple growth modelsfor complex systems
G. West, J. Brown. The origin of allometric scaling laws in biology from genoms to ecosystems: towards a quantitative unifying theory of biological
structure and organization. Journal of Experimental Biology, 2005
Allometric Scaling• Many fundamental phenomena in living systems
scale as a simple power law
Simple growth modelsfor complex systems
Allometric Scaling
Growth rate of a mammal’smass or size during its life time
Simple growth modelsfor complex systems
Allometric Scaling
Metabolic rate scalesas a ¾ power of mass
Simple growth modelsfor complex systems
Allometric Scaling• Expected lifespan of mammal increases
as a ¼ power of mass• Animal heart rate decreases
as a –¼ power of mass • Population density in ecosystems decreases
as – ¾ power of body size
How do SECOs grow?
Evidence of allometric scaling in software? – Growth rate as a function of artefact size?
(software components, individual software systems, software ecosystems)
– Lifetime as a function of artefact size? – …
Ongoing Work
What social factors affect growth, resilience of SECOs?• Temporary or permanent effect of joiners and
leavers?• Impact of competing SECOs
(e.g. Ruby on Rails vs. Node.js vs Django)• Impact of technological disruptions
(e.g. migration to git; new major release; …)Rely on complex network theory to study these…
Previous Work
• Challenges in software ecosystems research. A Serebrenik, T Mens. IWSECO-WEA 2015
• When GitHub meets CRAN: An analysis of inter-repository package dependency problems. A Decan et al. SANER 2016
• An ecosystemic and socio-technical view on software maintenance and evolution. T Mens. ICSME 2016 keynote
• On the topology of package dependency networks: A comparison of three programming language ecosystems. A Decan, T Mens, M Claes. WEA 2016
• Social and technical evolution of software ecosystems: A case study on Rails. E Constantinou, T Mens. WEA 2016
• An empirical comparison of dependency issues in OSS packaging ecosystems. A Decan, T Mens, M Claes. SANER 2017
• Socio-technical evolution of the Ruby ecosystem in GitHub. E Constantinou, T Mens. SANER 2017