Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Software Ecosystem Evolution. It's complex!

875 views

Published on

Presentation by Tom Mens at the BENEVOL 2016 Software Evolution Research Seminar in Utrecht University, The Netherlands.

Published in: Science
  • Be the first to comment

Software Ecosystem Evolution. It's complex!

  1. 1. Software Ecosystem Evolution. It’s complex! Tom Mens, COMPLEXYS Research Institute University of Mons, Belgium http://blog.christianposta.com/images/disorg anized.png
  2. 2. 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. 3. 3 Software Ecosystems Gnom e CRAN Debian Ubuntu KDE JavaScript Ruby Python
  4. 4. 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/
  5. 5. 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.
  6. 6. ECOS Research Team
  7. 7. Software Ecosystems Are huge ! https://www.montereybayaquarium.org/animal-guide/marine-mammals/blue-whale
  8. 8. CRAN Andrie de Vries http://blog.revolutionanalytics.com/2015/07/the-network-structure-of-cran.html Package dependency graph > 9K active packages > 21K dependencies in April 2016
  9. 9. Kevin Gullikson http://kgullikson88.github.io/blog/pypi-analysis.html > 56K packages > 53K dependencies in February 2016
  10. 10. > 317K packages > 728K dependencies in June 2016 https://exploringdata.github.io/vis/npm-packages-dependencies/ (July 2013)
  11. 11. 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.
  12. 12. 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, …)
  13. 13. 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
  14. 14. 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
  15. 15. Software Ecosystems Are growing superlinearly over time
  16. 16. Mirroring hypothesis Conway’s law Software structure tends to mirror the organisational/social structure A.k.a. socio-technical congruence alignment between technical dependencies and social coordination in a project
  17. 17. 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.
  18. 18. 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.
  19. 19. 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.
  20. 20. Complexity Sciences
  21. 21. Complexity Theory
  22. 22. 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.”
  23. 23. Complex Networks Examples of complex technological networks – World-Wide Web – Software dependency graphs – Social networks (e.g. Facebook) – Socio-technical software ecosystems
  24. 24. Complex Networks Typical characteristics of complex networks: Small-world property (Milgram, 1967) Skewed distributions (power law, long tail) Scale-freeness
  25. 25. 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”
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. 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!
  30. 30. How do SECOs grow? Popular model: preferential attachment Barabasi et al. Emergence of Scaling in Random Networks. Science 286, 1999
  31. 31. How do SECOs grow? Popular model: preferential attachment Reasons for preferential attachment • Popularity “the rich get richer” • Quality “the good get better” • Mixed those reaching critical mass first will become stars Barabasi et al. Emergence of Scaling in Random Networks. Science 286, 1999
  32. 32. 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
  33. 33. Simple growth models for 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
  34. 34. Simple growth models for 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
  35. 35. Simple growth models for complex systems Allometric Scaling Growth rate of a mammal’s mass or size during its life time
  36. 36. Simple growth models for complex systems Allometric Scaling Metabolic rate scales as a ¾ power of mass
  37. 37. Simple growth models for 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
  38. 38. 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? – …
  39. 39. 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…
  40. 40. 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

×