1 Software & Systems, The Department2 Software Development Group, Theoretical Computer Science, The Department3 Interaction Design, Software & Systems, The Department4 Software Engineering, Software & Systems, The Department5 Computer Science, IT University of Copenhagen
Sustaining software ecosystems
Context The main part of software engineering methods, tools and technologies has developed around projects as the central organisational form of software development. A project organisation depends on clear bounds regarding scope, participants, development effort and lead-time. What happens when these conditions are not given? The article claims that this is the case for software product specific ecosystems. As software is increasingly developed, adopted and deployed in the form of customisable and configurable products, software engineering as a discipline needs to take on the challenge to support software ecosystems. Objective The article provides a holistic understanding of the observed and reported practices as a starting point to device specific support for the development in software ecosystems. Method A qualitative interview study was designed based on previous long-term ethnographical inspired research. Results The analysis results in a set of common features of product development and evolution despite differences in size, kind of software and business models. Design is distributed and needs to be coordinated across heterogeneous design constituencies that, together with the software, build a product specific socio-technical ecosystem. The technical design has to support the deference of part of the development not only to 3rd-party developers but also to local designers tailoring the software in the use organisation. The technical interfaces that separate the work of different design constituencies are contested and need to be maintained permanently. Development takes place as cycles within cycles – overlaying development cycles with different rhythms to accommodate different evolution drivers. Conclusion The reported practices challenge some of the very core assumptions of traditional software engineering, but makes perfect sense, considering that the frame of reference for product development is not a project but continuous innovation across the respective ecosystem. The article provides a number of concrete points for further research.
Information and Software Technology, 2014, Vol 56, Issue 11, p. 1436-1456