Reactive Plan: A Tool for Continuous Software Release Planning
Responsible Scientist: Carles Farré
Entrepreneur Scientist: David Ameller
Software engineering has always aimed to identify separate engineering activities and assign different responsibilities to each of them as a way to produce a clear path to produce or maintain software products. An extreme example is the (deprecated) waterfall development process that required the current activity to be completely finished in order to start the following one. However, this process has been proved inadequate in most cases due to the instability of the software requirements. To tackle this problem, several iterative software development processes emerged in the last fifteen years (e.g., Agile, XP, etc.), which still keep the activities apart but is organized into smaller iterations that facilitate the incorporation of changes in the initial activities.
Continuous software engineering is going one step beyond by establishing strong connections between software engineering activities. The objective of this continuity is to accelerate and increase the efficiency of the software engineering process; for example, continuous integration is one of the best established continuous approaches in which the development and deployment activities are keep linked and synchronized. In this sense, continuous engineering can be also related to DevOps, a movement that encourages the collaboration between development, operations and testing. Given its complexity, continuous software engineering requires advanced tool support that help to maintain the link between the connected activities. For instance, Jenkins is a very popular tool that supports continuous integration. The need for such tool is the main motivation of the Reactive Plan tool.
Our solution, Reactive Plan, focuses on the reinforcement of the connection between software development and release planning activities. Software development is the task of producing the implementation of the software (e.g., writing the source code) while release planning is deciding what is to be implemented, when and by whom. In order to fully support the continuous planning of releases, the Reactive Plan tool will: 1) monitor the real progress of the ongoing release (by connecting with developer tools like JIRA or Slack); and 2) re-plan the current release when necessary (e.g., some activity is delayed or a developer takes a sick leave).
We are in TRL 1, basic principles observed, because we currently have the preliminary idea of the product and the release planning algorithm, but it is worth noting that this algorithm is not yet ready to be used with the continuous engineering ideas. In fact, the grant will be dedicated to the design and implementation of a prototype of the Reactive Plan tool. In particular, the developer will have to adapt our algorithm and integrate it with at least one of the commonly used developer tools (i.e., JIRA, Slack, etc.). Therefore, with this grant we expect to move from TRL 1 to TRL 3, experimental proof of concept. The money of the grant will be mainly allocated to hiring technical staff for the TRL transition and to subcontracting a market analysis to help in the marketization of the solution.
Open Source Software Ecosystems: A Systematic Mapping
Oscar Franco-Bedoya, David Ameller, Dolors Costal, Xavier Franch
Context: Open source software (OSS) and software ecosystems (SECOs) are two consolidated research areas in software engineering. OSS influences the way organizations develop, acquire, use and commercialize software. SECOs have emerged as a paradigm to understand dynamics and heterogeneity in collaborative software development. For this reason, SECOs appear as a valid instrument to analyze OSS systems. However, there are few studies that blend both topics together.
Objective: The purpose of this study is to evaluate the current state of the art in OSS ecosystems (OSSECOs) research, specifically: (a) what the most relevant definitions related to OSSECOs are; (b) what the particularities of this type of SECO are; and (c) how the knowledge about OSSECO is represented.
Method: We conducted a systematic mapping following recommended practices. We applied automatic and manual searches on different sources and used a rigorous method to elicit the keywords from the research questions and selection criteria to retrieve the final papers. As a result, 82 papers were selected and evaluated. Threats to validity were identified and mitigated whenever possible.
Results: The analysis allowed us to answer the research questions. Most notably, we did the following: (a) identified 64 terms related to the OSSECO and arranged them into a taxonomy; (b) built a genealogical tree to understand the genesis of the OSSECO term from related definitions; (c) analyzed the available definitions of SECO in the context of OSS; and (d) classified the existing modelling and analysis techniques of OSSECOs.
Conclusion: As a summary of the systematic mapping, we conclude that existing research on several topics related to OSSECOs is still scarce (e.g., modelling and analysis techniques, quality models, standard definitions, etc.). This situation calls for further investigation efforts on how organizations and OSS communities actually understand OSSECOs.
SUPERSEDE – SUpporting Evolution and Adaptation of PERsonalized Software by Exploiting Contextual Data and End-user Feedback
Jovan Varga, Sergi Nadal, Alberto Abelló, Oscar Romero, Xavier Franch, David Ameller, Marc Oriol, Anna Perini, and Norbert Seyff
SUPERSEDE is an H2020 project that aims at providing methods and tools to enhance decision-making for the evolution and adaptation of software applications and services. This is performed by analyzing end-user feedback and monitoring data with an ultimate goal of improving end-users’ Quality of Experience (QoE). Software products and services need to constantly improve in order to provide a high end-user QoE. Software should evolve and adapt according to the end-user needs. Making this possible entails bridging the gap between the end-users and software developers.
Towards Continuous Software Release Planning
David Ameller, Carles Farré, Xavier Franch, Danilo Valerio, Antonino Cassarino
Continuous software engineering is a new trend that is gaining increasing attention of the research community in the last years. The main idea behind this trend is to tighten the connection between the software engineering lifecycle activities (e.g., development, planning, integration, testing, etc.). While the connection between development and integration (i.e., continuous integration) has been subject of research and is applied in industrial settings, the connection between other activities is still in a very early stage. We are contributing to this research topic by proposing our ideas towards connecting the software development and software release planning activities (i.e., continuous software release planning). In this paper we present our initial findings on this topic, how we envision to address the continuous software release planning, and a research agenda to fulfil our objectives.
Replan: a Release Planning Tool
David Ameller, Carles Farré, Xavier Franch, Antonino Cassarino, Danilo Valerio, Valentin Elvassore
Software release planning is the activity of deciding what is to be implemented, when and by who. It can be divided into two tasks: strategic planning (i.e., the what) and operational (i.e., the when and the who). Replan, the tool that we present in this demo, handles both tasks in an integrated and flexible way, allowing its users (typically software product managers and developer team leaders) to (re)plan the releases dynamically by assigning new features and/or modifying the available resources allocated at each release. A recorded video demo of Replan is available at https://youtu.be/PNK5EUTdqEg.