Software quality is an essential competitive factor for the success of software companies today. Recent technological breakthroughs, such as cloud technologies, the emergence of IoT and technologies such as 5G, pose new quality challenges in software development. These challenges include quality aspects such as availability, reliability, security, performance, and scalability, which significantly impact the success of current and future software products and services.
Optimal management of software quality demands the appropriate integration of quality requirements (QRs) in the software life-cycle. However, despite the competitive advantage of ensuring and maintaining high quality levels, software development methodologies still provide limited support to QR management which is essential in rapid software development processes; faster and more frequent release cycles should not compromise software quality.
In response to this challenge, Q-Rapids defines an evidence-based, data-driven quality-aware rapid software development methodology. QRs are incrementally elicited, refined and improved based on data gathered from software repositories, project management tools, system usage and quality of service. This data is analysed and aggregated into quality-related key strategic indicators (e.g. time-to-market delay related to not including the implementation of a given QR in the next development cycle) which are presented to decision makers using a highly informative dashboard. QRs scheduled for the next cycle are integrated with functional requirements for their uniform treatment in the rapid software development project.
The scientific objectives of the project are:
- SO1. To provide methods to systematically collect and analyse runtime and development time data to improve software quality.
- SO2. To define a rapid software life cycle process that integrates quality requirements and functional requirements into a holistic method.
- SO3. To provide quality-related key strategic indicators to support decision makers in managing the development process from a quality-aware perspective.
- SO4. To implement adequate tool support to a quality-aware software life cycle.
The outcome of the project has been a validated Q-Rapids framework: a quality-aware rapid software development process supported by advanced tools and methods. It consists basically of three main elements:
- A strategic dashboard presenting graphically the values of some indicators and offering several techniques (simulation, prediction, ...) to support decision-making.
- A collection of data collectors that gather data from repositories and elaborate and aggregate into those indicators.
- A portfolio of processes involved in the adoption of Q-Rapids.
As a conclusion of the project, we have deployed a general solution fulfiling the objectives above that has been adopted up to TRL 7 by the four participating companies. We have identified some challenges like the need to tailor the solution to the particularities of every company and the complexity to deploy the solution in an adopting company. Also some lessons learned have naturally emerged at the end of the project: the convenience to follow an incremental approach to the adoption of Q-Rapids; the importance of push transparency as a business value in the company; the usefulness of strategic indicators for monitoring project progress.