Architecture challenges for software ecosystems

Successful software products and product lines exhibit a force of gravity that attracts external developers. The organization developing the product actively seeks to involve external developers to add functionality to the system. On the other hand, external developers flock to a successful product as it provides an established market where underserved niches provide a business opportunity for these players. The product or product line evolves into a platform for external developers. This causes several software architecture challenges for a software ecosystem, including interface stability, evolution management, guaranteeing security and reliability and composition of independently developed functionality. The paper describes these challenges, discusses practical solutions and identifies research challenges.