Software Ecosystems: A Quick IntroductionSlinger Jansen, Michael Cusumano (2012). Defining Software Ecosystems: A Survey of SoftwarePlatforms and Business Network Governance. Proceedings of the international Workshop onSoftware Ecosystems 2012
Examples of Software Ecosystems• Standards - XML, BPM, OSGi, J2EE, Corba, SEPA, etc.• Products - OpenOffice, Microsoft Word, SAP BusinessOne, Grand Theft Auto, etc.• Hardware - Playstation 3, HTC Diamond, PDAs, BMW 5 series, etc.• Platforms - .Net, Facebook, Android, OS X, etc.
X, Y, Z Ecosystem• Natural Ecosystem - An ecosystem consists of an ecological community together with its abiotic environment, interacting as a system.• Business Ecosystem - an economic community supported by a foundation of interacting organizations and individuals.• Digital Ecosystem - a distributed adaptive open socio-technical system with properties of self- organization, scalability and sustainability.
Collection of Organizations View• Software ecosystems are collections of organizations that are related through software or a software related concept• Software ecosystems are subsets of business ecosystems.
Definitions• Kittlaus and Clough  define a software ecosystem as an informal network of (legally independent) units that have a positive influence on the economic success of a software product and benefit from it".• Bosch  defines a software ecosystem as consisting of the set of software solutions that enable, support, and automate the activities and transactions by the actors in the associated social or business ecosystems and the organizations that provide these solutions• Three shared concepts stand out in these definitions: – (1) actors, organizations and businesses, – (2) networks and social or business ecosystems, and – (3) software.A software ecosystem is a set of actors functioning as a unit and interactingwith a shared market for software and services, together with therelationships among them.These relationships are frequently underpinned by a common technologicalplatform or market and operate through the exchange of information,resources and artifacts.
For Example: Solr Components for the Ruby Language • Developers and components in the Solr cluster of the Ruby ecosystem • Developers are light-blue • Components are purplish • There are many connections among authors (not typical) • Used Ruby-gems.org to record author names and component names and dependencies
Example 2: Manual CollectionEcoSysNetworks: A Method for Visualizing Software Ecosystems, Bala Iyer, Proceedings of theInternational Workshop on Software Ecosystems 2012, pages 1 - 5
SECO Scope Levels Different scope levels for different entities of interest: a. Software Supply Network (SSN): actors and their relationships b. SECO: SSNs and their relationships c. SECOs: SECOs and their relationshipsJansen, S., Brinkkemper, S., Finkelstein, A. (2009). A Sense of Community: A Research Agendafor Software Ecosystems. 31st International Conference on Software Engineering, New andEmerging Research Track.
Software Production Decoupling Points • Software lifecycle artifact scan be sold at different decoupling points: – Requirements specifications (requirements documents, etc) – Product Design (Design specifications, feature requests, etc) – Software component (libraries, etc) – Component configuration (joomla+osCommerce, etc) – Product (Oracle, Windows, etc) – Hardware + product (iPod, Phone, etc) – Service (Webservice, Gmail, etc) Assembly Product Product ServiceRequirements Design Development (including COTS) Publication Deployment Provision g f e d c b a xLegend: Customer order Operation Decoupling point
How to Classify your Ecosystems?• Base technology• Coordinators• Extension market• Accessibility
Classifying Sentence• The [NAME] software ecosystem is based on a – software platform, – software service platform, – software standard• and is coordinated by a – privately owned entity – community• With – no extension market, – a list of extensions, – an extension market, – a commercial extension market, – multiple extension markets• to which participants can submit extensions – for free, – after a screening, – after making a payment.
For example: Apple• The Apple iOS software ecosystem is based on a software platform and coordinated by a privately owned entity with a commercial extension market to which participants can submit extensions after making a payment .
Ecosystem Health: Productivity, Robustness, and Niche Creation• Productivity - A networks ability to consistently transform technology and other raw materials of innovation into lower costs and new products. Simple to measure: return on invested capital.• Robustness - Should be capable of surviving disruptions such as unforeseen technological change.• Niche creation - the ecosystems capacity to increase meaningful diversity through the creation of valuable new functions or niches. Strategy as Ecology, Marco Iansiti and Roy Levien. Harvard Business Review, March 2004.
Typical Research Directions• Let’s take the definition and work from there• A set of actors functioning as a unit and interacting with a shared market for software and services, together with the relationships among them.
A set of actors functioning as a unit and interacting with a shared market for software and services, together with the relationships among them• Who are these organizations and people?• What are the constituents in a software ecosystem or development community?• Types of research – Economical research – Statistical analysis / surveys – Case studies• Sources of information – Source repositories – The web (programmableweb.com) – Statistics bureaus – Partner lists (example: see ODA web site) – Etc.
A set of actors functioning as a unit and interacting with a shared market for software and services, together with the relationships among them• What are these ecosystems?• What defines their boundaries?• What makes them collaborative?• How does the unit function?• Types of research – Economical research – Case studies• Sources of information – Mostly inside information, interviews, news, etc. – Market intelligence (for example, distimo)• Example – The work of Bala Iyer or that of den Hartigh
A set of actors functioning as a unit and interacting with a shared market for software and services, together with the relationships among them• What are the underlying technical platforms?• How do they work?• How do they enable the software ecosystem?• Types of research – Economical research – Case studies (with a technical component)• Sources of information – Software architecture – APIs – Development toolkits• Example – How to write the perfect API?
A set of actors functioning as a unit and interacting with a shared market for software and services, together with the relationships among them• How do parties in the ecosystems communicate?• How are they interrelated?• What are the economical effects (and benefits) from those relationships?• Types of research – Economical research – Case studies• Sources of information – Any information you can find about the relationship• Example research – Joey’s work on partnership models
Typical Topics• Strategic advice for software vendors • Software product management• A software ecosystem analysis method • Software product lines• Software ecosystem models • Software development communities• API related topics: design, development, • Software ecosystem orchestration marketing • Market-specific domain engineering• Software ecosystem modeling • Open source software ecosystems• Software ecosystem practices and experience • Virtualized software enterprises• Software business models • API compatibility over subsequent releases• Product software and software licensing • Platform powers• Communities of practice and software reuse• Economic impact of software ecosystems• Software ecosystem creation• Keystone and niche player survival strategy• Architectural implications of reusability• Formal modeling of business models• API development• Publishing APIs
For Inspiration• Use the software ecosystem book from Messerschmidt and Szyperski, with its list of research questions at the end of each chapter