Steering Insight: an Exploration of the Ruby Ecosysystem Jaap Kabbedijk, Slinger Jansen Utrecht University, the Netherlands
Introduction: Software Ecosystems A software ecosystem is a set of software products working together as a unit on a shared software platform (Jansen, Finkelstein & Brinkkemper, 2009) Profit is not generated by one product, but by the entire ecosystem (Popp & Meyer, 2010) Dynamics and position within the ecosystem are of importance (Iansiti & Levien, 2005)
Open Source projects are ideal for analysis (Tom Mens, IWSECO keynote)
Case Description Ruby Programming Language
Consists of thousands of Gems
What are the defining characteristics of a large scale open source software ecosystem?
Research Questions What are the defining characteristics of a large scale open source software ecosystem? What elements can be identified within a SECO? What are the characteristics of the identified elements? What are the descriptives of a SECO?
What roles can be identified within a SECO?
SECO Descriptives One interconnected ‘stem’
A lot of independent projects
Several smaller projects related
SECO Descriptives ‘ Chain’ of small projects
Small sub-community of projects
All part of the ecosystem
SECO Descriptives Most active developers (Top 30)
SECO Descriptives Most important gems (Top 30)
SECO Roles Lone Wolf - a developer who has developed gems that are of importance within the Ruby ecosystem, but has almost no connections with other developers. Networker - someone who has a lot of developers he works with and also plays a large role in the SECO in terms of gem downloads.
One Day Fly – a developer who has made one popular gem, but never made anything else.
Conclusion The Ruby SECO consists of devel opers , gems and relationships Developers within the SECO full several distinctive roles , each of different value to the ecosystem
Within the SECO most activity is caused only by a small part of the ecosystem. The top 90% of the open source components used in Ruby development has been developed by only 10% of the total number of open source contributors. Pareto principle.
Discussion Trying to lure additional developers to your ecosystem in order to expand your ecosystem may not be the best way of managing a SECO Stimulation of cooperation between developers is important to create the active ‘core’ More characteristics and relationships have to be examined to get a deeper insight in SECO dynamics
More software ecosystems have to be examined in order to improve the generalizability