Software ecosystems is a recent paradigm within the domain of software engineering, referring to a networked community of organizations or actors, which base their relations to each other on a common interest in the development and use of a central software technology. Some other definitions of this emerging concept have been proposed, for example by Jansen et al. (2009): “a set of businesses functioning as a unit and interacting with a shared market for software and services, together with the relationships among them” (p. 2). Another definition by Bosch (2009), focusing more on the common interest in the software and its use, is: “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” (p. 2).
Well known examples of communities that may be seen as software ecosystems are Apples iPhone/Appstore platform and the open-source development environment Eclipse. The first is an example of a partially closed and controlled ecosystem, and the latter is an example of an open ecosystem allowing more flexibility in use and development. This simply illustrates that the ecosystem concept may refer to a wide range of configurations. Yet, they all involve two fundamental aspects; a network of organizations or actors, and a common interest in the development and use of a central software technology. These organizations may have different relations to the central software technology, and for this reason, different roles in the ecosystem. In our definition of the concept, there are at least three key roles. First, one organization (or a small group) acts as the keystone organization, and is in some way leading the development of the central software technology. The second key role is the end-users of the central technology, who need it as a tool to carry out their business, whatever that might be. The third key role is third party organizations that use the central technology as a platform for developing related solutions or services. In addition to these key roles, various other related roles might be part of the ecosystem, for example standardization organizations, resellers, operators, and others.
The emergence of software ecosystems relates to the inherent potential for open innovation, increased involvement of users, wider and faster market impact, and increased profit. Interaction in open and cross-organizational networks may create increased value in the intersection between roles. For example, being a third-party provider of solutions or services based on a central platform means efficient access to both an enabling technology and an already established, known, and accessible user group. For a keystone organization, this in turn may lead to increased market shares and respective sales, increased feedback, and a more dedicated focus on the core technology as external actors focus on value adding services.