Definition

The emergence of Ecosystems are one of the web is one of the most exciting developments for software companies in the Web 2.0 space. Ecosystems take various forms, e.g. software ecosystems of external developers contributing to the platform of a company or, so called, social ecosystems where users either actively or passively  contribute knowledge, content, goods and services, connections or behavior to the community.


Although social and software ecosystems can can be viewed as very distinct, in practice there often is a very strong relation between the two. Social ecosystems use the contributions of users to create more value to each individual user as the person provided in the first place. This can, among others, be achieved through aggregation and consequent presentation of data uniquely relevant to the user and through advanced customization or even compositionality of the solution used by each user.


The notion of ecosystems originates from ecology. One definition in Wikipedia defines is an ecosystem as a natural unit consisting of all plants, animals and micro-organisms (biotic factors) in an area functioning together with all of the non-living physical (abiotic) factors of the environment.


Although the above is an excellent definition, it is less suitable here and therefore we start from the notion of human ecosystems.  A human ecosystem consists of actors, the connections between the actors, the activities by these actors and the transactions along these connections concerning physical or non-physical factors. We further distinguish between commercial and social ecosystems. In a commercial ecosystem the actors are businesses, suppliers and customers, the factors are goods and services and the transactions include financial transactions, but also information and knowledge sharing, inquiries, pre- and post-sales contacts, etc. Social ecosystems consist of users, their social connections and the exchanges of various forms of information.


A Software Ecosystem consists of the set of software solutions that enable, support and automate the activities and transactions by the actors in the associated social or business ecosystem and the organizations that provide these solutions (Bosch, 2009). Of course, a software ecosystem is also an ecosystem, specifically a commercial ecosystem, and hence the goods and services are the software solutions and software services that enable, provide support for or automate activities and transactions.


For example, an activity for a small business is time tracking of employees, needed for payroll data. An example transaction is a payment from one business to an other business. These activities and transactions can be supported, i.e. the task is simplified and made less effort intensive, or automated, i.e. the task is performed by software solutions without any human interaction. A third category is the enablement of tasks that either are impossible or prohibitively expensive without (networked) software solutions. The emergence of online social networks is an illustrative example of the enablement of new possibilities.


Although software ecosystems receive significant attention in the Web 2.0 context, this category of ecosystems has been around for decades. Especially illustrative is the early 1990s when different companies jockeyed for dominance of desktop operating systems, gaining the support of the most influential and largest number of 3rd party developers was recognized as crucial and companies like IBM and Microsoft explicitly managed to this dimension.


The above example illustrates an operating system centric operating system. However, software ecosystems exist in multiple areas and in the figure below a taxonomy is presented that aims to organize these ecosystems in a two dimensional space. The first dimension is best described as the abstraction level at which the software ecosystem exists, defined at three levels, i.e. operating system, application and end-user programming. The second dimension captures the evolution of the computing industry in terms of the dominant hardware platform, i.e. desktop, web and mobile. Although one might argue that before the desktop, mainframes and mini-computers existed and that, in the era of ubiquitous computing, one can define other platforms besides mobile, the lion's share of software development takes place in the scope defined in this taxonomy.




Figure. Software Ecosystem Taxonomy (Bosch, 2009)


When exploring the full scale of solutions required to satisfy the needs of all customers, it is clear that both the time required and the size of R&D investments by the company itself is unfeasible. As a consequence, a company may look to build a software ecosystem where external developers can materially extend the initial offering to better serve the needs to small customer segments or even, in the case of enterprise solutions, individual customers. In addition, external developers may build data analysis solutions that serve a small segment of customers, but use the much larger data set provided by the social ecosystem as a whole.


As a company that has enjoyed significant success in creating social and software ecosystems on the desktop, Intuit is progressing aggressively to repeat its success in the cloud. As part of the process towards realizing that ambition, Intuit organizes a series of ecosystems summits. The first, the Software Ecosystem Summit was organized in Mountain View in January 2009 where more than 300 local and remote participants enjoyed presentations from a variety of companies that have successfully employed software ecosystems as part of their strategy.


The second summit, the social ecosystem summit, was organized in June 2009, again in Mountain View. More than 400 local and remote participants (as well as hundreds of Intuit employees watching the summit from their desks) benefited from very insightful presentations by a variety of authors with diverse backgrounds and experiences to share.


In October 2009, we organized the mobile ecosystems summit.


The presentations from the summits can be found under the respective Summit tabs.


References:

  1. Bosch, Jan (2009). From Software Product Lines to Software Ecosystems. Accepted for SPLC 2009 (13th International Software Product Line Conference), August 2009

  2. Bosch, J. & P.M. Bosch-Sijtsema (2009). From Integration to Composition: On the Impact of Software Product Lines, Global Development and Ecosystems. Accepted for publication in the Journal of Systems and Software.

  3. Bosch, J. & P.M. Bosch-Sijtsema (2009). Software Product Lines, Global Development and Ecosystems: Collaboration in Software Engineering. Chapter to appear in Collaborative Software Engineering, I. Mistrik (Ed.), Springer Verlag.