Software Ecosystems: A Quick Introduction Slinger Jansen, Michael Cusumano (2012). Defining Software Ecosystems: A Survey of Software Platforms and Business Network Governance. Proceedings of the international Workshop on Software 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 selforganization, 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 [29] 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 [7] 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 interacting with a shared market for software and services, together with the relationships among them. These relationships are frequently underpinned by a common technological platform 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 Collection EcoSysNetworks: A Method for Visualizing Software Ecosystems, Bala Iyer, Proceedings of the International 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 relationships Jansen, S., Brinkkemper, S., Finkelstein, A. (2009). A Sense of Community: A Research Agenda for Software Ecosystems. 31st International Conference on Software Engineering, New and Emerging Research Track. Software Production Decoupling Points • Software lifecycle artifact scan be sold at different decoupling points: – – – – – – – Requirements Requirements specifications Product Design etc) Software component Component configuration Product Hardware + product Service Design (requirements documents, etc) (Design specifications, feature requests, (libraries, etc) (joomla+osCommerce, etc) (Oracle, Windows, etc) (iPod, Phone, etc) (Webservice, Gmail, etc) Assembly (including COTS) Development Product Deployment Product Publication Service Provision g f e d c b a Legend: Customer order Operation Decoupling point x 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 network's 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 ecosystem's 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. Research Methods in Software Ecosystems 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 A software ecosystem analysis method Software ecosystem models API related topics: design, development, marketing Software ecosystem modeling Software ecosystem practices and experience Software business models Product software and software licensing 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 • • • • • • • • • Software product management Software product lines Software development communities Software ecosystem orchestration Market-specific domain engineering Open source software ecosystems Virtualized software enterprises API compatibility over subsequent releases Platform powers For Inspiration • Use the software ecosystem book from Messerschmidt and Szyperski, with its list of research questions at the end of each chapter