Software Ecosystems
The emergence of software ecosystems is perhaps one of the most exciting developments in software engineering, especially in the Web 2.0 space, but certainly also beyond. Software ecosystems take various forms but typically consist of a company providing a software platform and a community of external developers providing functionality that extends the basic platform. Although originally software ecosystems were the domain of operating systems, we now see that a variety of companies on the Internet as well as in the mobile space are increasingly looking to develop and exploit a software ecosystem around their core application domain in order to gain dominance. Examples include SalesForce, Facebook and Amazon on the internet and Apple AppStore and Nokia's Ovi.
A software ecosystem is often complemented with a social ecosystem where users either actively or passively contribute knowledge, content, goods and services, connections or behavior to the community and, consequently, the company providing the social ecosystem platform. Successful 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 releavnt to the user and through advanced customization or even compositionality of the solution used by each user.
For many companies, 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 investment is unfeasible for the company by itself. As a consequence, one can build a software ecosystem where external developers can materially extend the initial application to better serve the needs of small customer segments or even, in the case of enterprise customers, individual users. Also, external developers may build data analysis solutions that serve a small segment of customers, while using the much larger data set provided by the social ecosystems as a whole.
See www.software-ecosystems.com for more details on software ecosystems.