Agile and ASPICE: Shaping the Future of Automotive Development

Introduction

Why the current pace of development is not suitable for next-generation vehicles? Before we discuss solving the agility challenge for next-generation vehicle development, let's briefly recap the problem statement: for the next-generation vehicle, consumers expect that innovative features and new capabilities be introduced much more quickly than what traditional automotive development cycles have historically allowed. And for the vehicles that have already been sold, consumers want the ability to add new features and improve existing functionality in an agile manner.

Modern vehicle manufacturers face significant challenges in meeting these consumer expectations for swift innovation due to the constraints imposed by traditional development models. Indeed, most use the ASPICE framework, which is based on the V-Model, in conjunction with the Waterfall approach. Such process presents a significant challenge in the realm of automotive software development due to its phase-dependent nature, rigid requirement engineering, and late testing. All this leads to the process becoming rigid and inflexible to changing market demands.

Agile methodology, on the other hand, promotes rapid iterations, integrated testing, and early and incremental release cycles, which are in stark contrast to the Waterfall model. Agile's emphasis on collaboration, flexibility, and rapid prototyping allows automotive software development to be more responsive to changing market demands and technological advancements. Agile teams operate in sprints, delivering production-ready code in weeks rather than months or years, significantly shortening the time to market for new features and updates.

However, we cannot simply replace existing development processes with Agile methodology, merely inspired by the successes of cloud projects. The automotive industry is heavily regulated and requires stringent quality assurance practices to ensure the safety and reliability of vehicles. The ASPICE framework, based on the V-model, requires a sequential process with a specific corresponding test phase for each development phase. This structured approach is necessary for ensuring the reliability and safety of automotive software, critical factors in vehicle development.

We need to ask ourselves - Can Agile methodology work in the automotive domain where stability and reliability are essential? To anticipate, I'll say that such a hybrid approach, combining the formal rigor of ASPICE compliance with the dynamism of Agile, is possible and beneficial. After all, the ASPICE framework doesn't impose a specific way of conducting development processes. Instead, it focuses on what outcomes should be achieved, offering room to integrate Agile methodologies.

How does Agile work?

I think for those who are familiar with the subject, this section can be skipped to move on to more interesting matters. So, what exactly is Agile? The Agile approach facilitates a shift from the traditional linear waterfall approach to software development, emphasizing flexibility, rapid iteration, and continuous feedback. This approach is implemented through various methodologies such as Kanban, Scrum, and Scaled Agile Framework (SAFe) with the objectives of creating better products, reducing risk, achieving faster time-to-market, and realizing cost-savings.

In Agile, development is organized into small cross-functional teams, known as scrum teams which address high-priority business requirements in short development cycles called sprints. Cross-functional teams can manage the complexity of developed features, which incorporate diverse technologies. This model enhances communication and coordination, accelerating development cycles and leading to innovative solutions. Sprints are characterized by writing code, testing it, receiving feedback, and making necessary adjustments—all within a few weeks, allowing for the delivery of production-ready software much faster.

Through customer collaboration and feedback loops, Agile allows automotive companies to better understand and meet consumer expectations, leading to higher quality products. Early feedback and the use of prototypes and MVPs validate product assumptions and ensure they meet customer needs. Agile methodology widely uses continuous integration and deployment (CI/CD), ensuring a more dynamic and flexible software development process compared to the periodic updates typical of the waterfall model.

Deep Dive into ASPICE

ASPICE (Automotive Software Process Improvement and Capability dEtermination) is an international standard tailored for the automotive industry, enhancing software development processes to ensure quality and innovation. As a specialized application of the SPICE framework, it aligns with ISO 33061 standards to establish best practices for developing automotive software and system components. The framework's focus on mature, systematic, and thoroughly documented processes aims to achieve repeatable and predictive results with minimal error risk.

The V-model represents a structured development and testing methodology, closely aligned with the Waterfall approach, and it emphasizes a sequential, step-by-step process across distinct project phases. This model is particularly effective in automotive software development, where it begins with detailed system requirements specification on one side of the "V" and progresses through design and evaluation, before moving into testing and validation against those specifications on the other side. Each development phase in the V-model has a corresponding testing phase, ensuring thorough verification and validation of the software against predefined requirements. Moreover, the V-model's emphasis on clear, upfront requirements and its structured testing methodology is reinforced by its implicit suggestion in functional safety standards like ISO 26262, highlighting its importance in achieving high quality and compliance within automotive software projects.

ASPICE and the V-model are intrinsically linked in the automotive software development process. ASPICE, being a quality framework, does not mandate the use of a specific development lifecycle but is often implemented in conjunction with the V-model due to its structured approach to development and testing. This synergy ensures that automotive software is developed and tested rigorously, in line with the high safety, functionality, and quality standards required in the industry. The V-model's structured nature complements ASPICE's objectives by facilitating the detailed planning, execution, and validation of software against predetermined requirements and standards.

Feature Driven Development

We've already asked ourselves the question - is there a way to combine the two practices, Agile and ASPICE, for automotive development? In short, yes, it is possible. Because ASPICE and Agile can be harmoniously integrated by focusing on their shared objectives rather than their procedural differences. The key to this integration lies in the flexibility of Agile methodologies to adapt within the structured, goal-oriented framework of ASPICE. Because, if we think about it, ASPICE does not determine a particular development lifecycle, only the correct goals. And if strict sequences are put aside, the V-model of corresponding developments and tests can actually integrate quite well with Agile processes. Such hybrid methodology could leverage the rapid iteration and adaptability of Agile practices, such as sprints, scrum-teams and continuous integration and delivery, within the context of ASPICE’s comprehensive quality and safety requirements.

Additionally, ASPICE does not specify any particular tools that need to be used but rather lays out the intended outcomes. In Agile methodology, similarly, tools are a secondary concern, with the focus rather on effective working practices and relationships. What this means is that the overall goals set out in ASPICE can still be adhered to, but without prescribing rigidly how and when every development process should occur.

Our company has extensive experience in developing automotive features, as evidenced by our large library of such features - SODA Feature Library. Based on this experience, we have come, in our opinion, to the optimal management of processes for developing automotive embedded software. SODA has crafted an innovative approach that merges the strengths of ASPICE and Agile methodologies. This hybrid methodology enables the development of automotive software to adhere to ISO standards' strict requirements while maintaining the flexibility and efficiency of Agile projects. Achieving this balance involved analyzing the advantages and limitations of both practices, identifying areas of convergence, and tackling the unique challenges presented by their integration.

We call it Feature Driven Development (FDD), it is an agile software development methodology focused on designing and building features. First and foremost, a feature is a client-valued piece of functionality, which is delivered tangibly, workably, and in a timely manner. From the perspective of vehicle architecture, a feature is a set of integration scenarios that combine various functional domains or electric/electronic systems inside the developing vehicle. This approach is ideally suited for the development of Software-Defined Vehicles, whose embedded software is developed in accordance with a Service-Oriented Architecture. That is, features being developed in parallel organically reuse services from different domains, combining them into the complete functionality required by the client. Also, the approach allows to breaks feature sets into smaller chunks and regular iterative releases, it enables a reduction in the time span between the acceptance of new customer requirements and the delivery of the requested functionality. This approach, from an architectural design perspective, is fully supported by the SODA Create, which serves as a comprehensive Model-Based Systems Engineering (MBSE) tool. That means you can design future functionality using a feature-driven approach, developing software-defined vehicles in accordance with SOA. Alternatively, you can stick to the classic approach with SODA Create - designing systems and then integrating them within the developing vehicle.

The next distinctive feature of FDD is the creation of feature-teams, analogous to Scrum-teams. Each feature-team includes architects and engineers from various automotive domains. The collaborative nature of work and multidisciplinary expertise within these teams enables rapid information exchange and facilitates more accurate design decisions, enhancing the development process's efficiency and precision. Also, this team structure is very scalable and can grow as your company and the project grows. Only what you need is to scale-up or scale-down number of feature teams. In FDD, the management effort should increase linearly as both the load and the amount of resources increase. However, in a classic waterfall approach where each group of architect and engineers is responsible for a specific electric/electronic system, the management effort could escalate exponentially when a requested functionality impacts a large number of developing systems.

Certainly, our FDD process would not be as effective without the full support of a completely automated CI/CD pipeline, an integral part of the SODA SDV Kit. This is essential, as our approach aims to overcome the limitations imposed by the sequential progression through all phases of the V-model, where testing and feedback arrive later in the process and then necessitate a return to an earlier stage. In contrast, Agile permits adjustments at any phase, and with the application of continuous testing methods, validation can proceed without delay to later stages.

Every change to the software is tracked via an embedded version control system, enabling easy rollbacks when necessary and concurrent work by multiple developers. Artifactory manages and stores all assembled artifacts within integration builds, facilitating the promotion of builds through various validation stages simultaneously. Developers frequently merge their changes into a shared mainline, such as a master branch in a version control system. Each merge is validated by automated builds and tests to swiftly identify integration errors. SODA Validate fully supports automated testing at every validation stage of V-model. This is an essential part of the CI/CD pipeline, helping to detect and rectify bugs earlier and more effectively, thus reducing defects at later stages. Additionally, our pipeline includes a monitoring system. Once deployed in different testing environments, the software undergoes continuous monitoring to promptly detect and resolve any issues. Feedback from the monitoring systems informs future enhancements and corrections.

Conclusion

We've found that Agile and ASPICE can be effectively combined for automotive software development. This is precisely the approach that SODA Enable employs in developing embedded automotive software, ensuring competitive advantages without sacrificing compliance with regulatory requirements. After all, developing automotive features is one of our core competencies. Our specialists guarantee adherence to all ASPICE standards throughout the entire process – from requirements analysis to qualification testing.

You can also implement the FDD approach in your company, which allows you to gain a competitive edge while still maintaining full compliance with regulatory standards. In other words, you can release working products faster, without worrying about software quality. Our tools - SODA Create & SODA Validate fully support this Agile methodology with a high degree of automation, further reducing development time and enhancing product quality.