40
Software Ecosystem Evolution. It’s complex! Tom Mens, COMPLEXYS Research Institute University of Mons, Belgium http:// blog.christianposta.com/ images/disorganized.png

Software Ecosystem Evolution. It's complex!

Embed Size (px)

Citation preview

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)

3

Software Ecosystems

Gnome

CRAN

Debian Ubuntu KDE

JavaScript Ruby Python

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.

ECOSResearch

Team

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

Software Ecosystems

Are growing superlinearly over time

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.

Complexity Sciences

Complexity Theory

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