It has become an increasingly common practice for software companies to collaborate with external... more It has become an increasingly common practice for software companies to collaborate with external developers in order to develop software platforms for a shared market, constituting software ecosystems. Creating and sustaining a software ecosystem is a challenging problem that involves numerous technical, organizational, and business concerns. To support the systematic design of software ecosystems, modeling is a crucial tool. In this paper, we (a) identify a set of descriptive and analytical requirements raised in the design of software ecosystems; (b) review several modeling techniques used for describing and examining software ecosystems; and (c) assess the support of the reviewed techniques towards addressing the identified requirements. The results provide insight into the gaps between the issues raised in the design of software ecosystems, and the coverage of the studied techniques, suggesting an agenda for future research.
It has become an increasingly common practice that software companies collaborate with external d... more It has become an increasingly common practice that software companies collaborate with external developers to develop a software platform for a shared market, constituting software ecosystems. One main concern in adopting the practice of software ecosystem is how to attract external developers to a platform, and how to establish sustainable collaborative relationships with them. We discuss that explicating and in-depth analysis of developers’ objectives and decision criteria can facilitate the design of sustainable collaborations in software ecosystems. Scenarios from Apple iOS and Google Android ecosystems are used for illustration.
As a software organization matures and expands, it often evolves through different styles of orga... more As a software organization matures and expands, it often evolves through different styles of organization, for example, beginning with creative chaos as a start-up, then introducing disciplined processes to raise quality, and later regaining agility through light-weight practices. Recently, many firms join collaborative networks to develop software products and platforms for a shared market, constituting “Software Ecosystems”. At each stage of evolution, the software organization aims to overcome critical challenges faced in its earlier stages, while balancing business, organizational, social, and technical forces of change. To illustrate how the evolutionary trajectory of a software development firm is shaped by various interacting forces, we draw upon a longitudinal case study taken from the literature. We use the i* strategic actors modeling framework to help analyze the forces that trigger the transition from one organizational configuration to another.
2010 Asia Pacific Software Engineering Conference, 2010
Various agile software development methodologies, practices, and techniques have been proposed in... more Various agile software development methodologies, practices, and techniques have been proposed in the last decade; some present novel ideas, while many are simply made up of tasks and techniques borrowed from prominent agile methodologies. Each of these methodologies prescribes a set of practices and techniques which are deemed appropriate for application in a specific context. However, there exists no single method which fits all project situations. This has resulted in the advent of Situational Method Engineering (SME) approaches, which are used for developing software methodologies that are tailored to fit the specific circumstances of the project situation at hand. Since tool support has become an essential prerequisite for widespread adoption of software engineering methods, provision of Computer-Aided Method Engineering (CAME) tools has become a priority. We provide a basis for the application of assembly-based situational method engineering to the development of bespoke agile methodologies. To this aim, a comprehensive set of relevant methodology features has first been identified, spanning the range of possible requirements that a method engineer may define for the agile methodology under development. Based on this set of requirements, a method base has been proposed that contains the method chunks necessary for satisfying these requirements. The proposed method base conforms to the Software Process Engineering Metamodel (SPEM 2.0), and can be immediately plugged into CAME tools which implement this metamodel, including the Eclipse Process Framework Composer (EPFC).
... Mahsa Hasani Sadi and Raman Ramsin ... Efforts conducted so far in different strands of metho... more ... Mahsa Hasani Sadi and Raman Ramsin ... Efforts conducted so far in different strands of method engineering though contributing much to the definition of a framework for agile development are restricted to the ex-traction and reuse of method-chunks and patterns from ...
It has become an increasingly common practice for software companies to collaborate with external... more It has become an increasingly common practice for software companies to collaborate with external developers in order to develop software platforms for a shared market, constituting software ecosystems. Creating and sustaining a software ecosystem is a challenging problem that involves numerous technical, organizational, and business concerns. To support the systematic design of software ecosystems, modeling is a crucial tool. In this paper, we (a) identify a set of descriptive and analytical requirements raised in the design of software ecosystems; (b) review several modeling techniques used for describing and examining software ecosystems; and (c) assess the support of the reviewed techniques towards addressing the identified requirements. The results provide insight into the gaps between the issues raised in the design of software ecosystems, and the coverage of the studied techniques, suggesting an agenda for future research.
It has become an increasingly common practice that software companies collaborate with external d... more It has become an increasingly common practice that software companies collaborate with external developers to develop a software platform for a shared market, constituting software ecosystems. One main concern in adopting the practice of software ecosystem is how to attract external developers to a platform, and how to establish sustainable collaborative relationships with them. We discuss that explicating and in-depth analysis of developers’ objectives and decision criteria can facilitate the design of sustainable collaborations in software ecosystems. Scenarios from Apple iOS and Google Android ecosystems are used for illustration.
As a software organization matures and expands, it often evolves through different styles of orga... more As a software organization matures and expands, it often evolves through different styles of organization, for example, beginning with creative chaos as a start-up, then introducing disciplined processes to raise quality, and later regaining agility through light-weight practices. Recently, many firms join collaborative networks to develop software products and platforms for a shared market, constituting “Software Ecosystems”. At each stage of evolution, the software organization aims to overcome critical challenges faced in its earlier stages, while balancing business, organizational, social, and technical forces of change. To illustrate how the evolutionary trajectory of a software development firm is shaped by various interacting forces, we draw upon a longitudinal case study taken from the literature. We use the i* strategic actors modeling framework to help analyze the forces that trigger the transition from one organizational configuration to another.
2010 Asia Pacific Software Engineering Conference, 2010
Various agile software development methodologies, practices, and techniques have been proposed in... more Various agile software development methodologies, practices, and techniques have been proposed in the last decade; some present novel ideas, while many are simply made up of tasks and techniques borrowed from prominent agile methodologies. Each of these methodologies prescribes a set of practices and techniques which are deemed appropriate for application in a specific context. However, there exists no single method which fits all project situations. This has resulted in the advent of Situational Method Engineering (SME) approaches, which are used for developing software methodologies that are tailored to fit the specific circumstances of the project situation at hand. Since tool support has become an essential prerequisite for widespread adoption of software engineering methods, provision of Computer-Aided Method Engineering (CAME) tools has become a priority. We provide a basis for the application of assembly-based situational method engineering to the development of bespoke agile methodologies. To this aim, a comprehensive set of relevant methodology features has first been identified, spanning the range of possible requirements that a method engineer may define for the agile methodology under development. Based on this set of requirements, a method base has been proposed that contains the method chunks necessary for satisfying these requirements. The proposed method base conforms to the Software Process Engineering Metamodel (SPEM 2.0), and can be immediately plugged into CAME tools which implement this metamodel, including the Eclipse Process Framework Composer (EPFC).
... Mahsa Hasani Sadi and Raman Ramsin ... Efforts conducted so far in different strands of metho... more ... Mahsa Hasani Sadi and Raman Ramsin ... Efforts conducted so far in different strands of method engineering though contributing much to the definition of a framework for agile development are restricted to the ex-traction and reuse of method-chunks and patterns from ...
Uploads
Papers by Mahsa Sadi