*Author: Peter Li Chengxian
Preface:
In the trend of software-defined cars, “rapid delivery” and “OTA” have become the industry consensus, while the “delivery quality” should still have a bottom line although it can be moderately reduced. The conflict between the two has exceeded the ability range of the traditional ASPICE R&D process system. Can “agile development” solve all of these? Can these two be combined, or how should they be combined?
Challenges and Considerations of Software Development System
- Challenges and Pain Points
Recently, a small survey was conducted within the company, and there are still many pain points for the software development process. Here are some “pain points” from the perspective of “management”, as well as the corresponding reasons.
Poor implementation of R&D
-
A was defined, but it turned into B when implemented: Lack of communication between product definition and implementation, and the deliverables are only visible in the final stage. It’s too late to provide feedback.
-
Milestones are approaching, but there are still many problems: The software development process is not transparent and difficult to control.
-
After going online, after-sales problems are urgent: The compression of the project timeline has an impact on non-essential links, which seriously affects quality.
Market changes too quickly
-
A was defined, but halfway through it was changed to B, which is basically impossible: With the traditional waterfall development, the later the process goes, the higher the change cost.
-
It was planned to be launched in a year, but suddenly wanted to change it to 8 months, and it was very difficult: If the waterfall development is not completely completed, there will be a lot of quality problems, which cannot be delivered.
Demands take too long to deliver
- It takes too long to deliver demands from proposal to delivery: Each single function involves many specialized departments, and stakeholders are complicated, making the communication cost too high; the development process of the function chain is long, often involving more than 10 links from planning to delivery.
- How does Tesla and the industry do it?
First, Tesla did not adopt ASPICE. Below is the job description of Tesla’s Software QA Engineer, which is for testing. If ASPICE were adopted, there would be specialized personnel to ensure the process and optimize the process.
So how does Tesla do it? From the evidence from various channels, it is all solved through “agile”. Tesla’s executive team comes mostly from Silicon Valley, and the software culture in Silicon Valley-agile is needless to say. Therefore, Tesla’s design, development, production, and organizational structure are all in agile form.
For example, Tesla’s adaptive air suspension, from proposal to delivery, only used one iteration [1]. Judging from Tesla’s monthly small iterations, it is estimated that it will be launched in 1-2 months.
For example, Tesla’s organizational structure was abolished after Musk sent an email stating that “Communication should be done through the shortest path, not through the ‘chain of command.’ Any manager who tries to communicate through the chain of command will soon find that they have to work somewhere else.”
So, since Tesla is sometimes like an “alien,” we may not be able to learn from them. How do other “normal” companies do it?
First, let’s talk about internet companies:
- It is almost certain that Tesla, Apple, and Google use Agile. Apple’s organizational structure was already “Agile” in 2012[2], and Google successfully introduced “Agile” into the development of Adwords in 2006, and published related papers, which were included by IEEE [3].
Next are the major automotive parts suppliers:
- At least since 2020, Aptiv has been promoting “Agile” globally, and has hired consulting companies to tailor the Agile framework specifically for AutoScrum. The company’s official website shows that it has applied Agile methods in areas such as “active safety,” “autonomous driving,” and “vehicle connectivity.” [4]
-
Bosch announced in 2015 that it was transforming into an Agile organization, and management began working in an “Agile” way. [5][6]
-
In 2020, Continental also announced a comprehensive shift to Agile methods and culture, with its VNI department leading the global pilot program [7].
Even automakers are no exception:
- Mercedes-Benz has already incorporated “Agile organizational culture” into its company strategy [8], and its subsidiary Mbition is also producing entire vehicles in an Agile way, and requires its suppliers to use Agile methods as well. The Mbition homepage http://mbtion.io has the following statement:
“The essence of our Way-of-Working (WoW) is being agile when it comes to applied values and principles.”
-
Since 2017, Volvo’s global vehicle development has shifted to agile development [9]. Starting from 2020, they use a completely agile approach to create new mass-produced models.
-
BMW’s intelligent cockpit and IT department also use agile methods, with the IT department achieving 100% agility in 2019 [10].
- Our thinking and direction
Based on industry practices and our understanding of agile and ASPICE, we believe that shifting to agile development and establishing a software development system based on DevOps and engineering culture is the way and method to solve the above pain points.
Agile Research
Since we mentioned “agile,” although there are many introductions to “agile” on the Internet, I will briefly talk about my understanding.
- Agile Overview
-
It is a concept derived from “Lean,” began in 2001, initially only used in software development, and now applied to production, retail, human resources, budgeting, auditing, enterprise organizational forms, and other fields.
-
Sweeping the world in the 21st century, the five largest Internet companies, Amazon, Apple, Facebook, Google, and Microsoft, are all using it.
-
Many non-profit organizations worldwide provide related training and certification services, such as the Scrum Alliance, Agile Alliance, and PMI (Project Management Institute).
-
Mainstream problem management tools natively support agile development: such as Jira, Teambition (Alibaba), TAPD (Tencent).
The core “concept” of agility is as follows:
It is especially emphasized here that the last sentence, “Although there is value on the right, we value the value on the left more,” does not mean that there is no value on the right, but rather that if you agree with the value on the right, The value on the left is even more important.
- Agile Development Process Characteristics
-
Key roles: Product Owner, Scrum Master.
-
Cross-functional team: A team should possess all necessary roles within it.
-
Rapid iteration: Deliverables are broken down into smaller pieces and can be completed within 2 to 6 weeks.
Agile has the following advantages (according to the 2020 Global Agile Report):
Here are some specific points to consider:
- Advantages of Agile
1) Agile engineering practices can significantly improve code quality. After 1.5 years of implementation in a financial technology group, the number of defects/stories decreased from 0.4 to 0.16.
- Test-driven development (TDD): Write corresponding test cases before writing any codes, and the test cases need to be able to run automatically. According to research from IBM and Microsoft, bugs can be reduced by 40%-50% [11].
- Pair programming: Two programmers work together at the same computer. One writes the code, and the other reviews it in real-time. The roles of the two programmers are rotated regularly. Although productivity is reduced by 15%, bugs are reduced by 15%. With consideration that fixing a bug requires several times more effort than writing code, the overall efficiency is improved.
2) Agile development can shorten delivery time. After 1.5 years of implementation in a financial technology group, the delivery cycle reduced from 75 days to 42 days.
3) Agile development, through using visualized project management, can improve software development transparency, enhance management efficiency, and promote overall efficiency. After 1.5 years of implementation in a financial technology group, the average number of user stories per person increased from 2.6 to 4.3.
4) Agile and Objectives and Key Results (OKR): The two have a natural connection. Some companies directly call OKR “Agile” target management. The team cultures of the two emphasize:
- Self-organization: After completing the necessary work, the team decides what to do next.
- Self-motivation: Communication is mainly bottom-up, allowing team members to fully exercise their initiative and proactivity.# Agile Transformation: Key Challenges and Common Problems
Agile is great, but there are challenges to a successful transformation. According to the Annual Agile Report, the challenges of Agile transformation are as follows:
Here are two key points to consider:
-
Lack of support from leadership: Implementing Agile requires adjustments to organizational structure, and this requires support from leadership. In a SCRUM team, for example, members from various functional teams (e.g. product, development, testing, integration) must work together. What is the basis of their cooperation? Strong leadership and accountable SCRUM Masters are critical.
-
Resistance to change: Resistance to change comes from several sources: (1) it’s difficult for many to accept new concepts and processes; (2) Agile emphasizes the importance of quantitative data, exposing underperformers who may resist the transition; (3) Agile transformation can lead to a reduction in management roles, creating internal resistance.
Common issues encountered during Agile transformation include:
-
Temporary decrease in productivity during the first 2-3 Sprints: As new processes and habits are established, temporary setbacks are inevitable. After a few Sprint iterations, however, efficiency usually improves.
-
Degradation in Agile performance: Some organizations begin to slack off after implementing Agile practices. Agile is a value system, not just a method. The phrase, “Don’t do agile, be agile,” emphasizes the need to internalize Agile values. The key to maintaining Agile values is adopting an “engineer culture,” which will be discussed in more detail later.
Agile vs ASPICE
While Agile has many benefits, ASPICE dominates the automotive industry. Can Agile and ASPICE be combined?
The answer is yes. Many companies, such as Aptiv, combine the two. However, one should ask, “Why combine them?”# Translation
Firstly, let’s talk about why do we need to use “ASPICE”? The answer is clear, because clients require it. If a company is not ASPICE certified, many OEMs won’t even consider giving them a project.
Next, let’s talk about why we need to use “Agile”. The answer is clear too, because clients force us to. They keep changing their requirements, compressing delivery cycles, wanting to launch tomorrow and so on. Without being “Agile”, how can we survive?
So, what is the result of combining ASPICE and Agile? In the industry, Agile often dominates the entire development process, while ASPICE is just a formality. This is because the two are conflicting in terms of “values”.
People who understand ASPICE should know that:
-
ASPICE pays more attention to documentation: here, documentation refers to evidence that can be checked by third parties. ASPICE Level 1 certification is based on your documented evidence (outcome) to trace whether you have been following the base practices. If you don’t have these, Level 1 certification cannot be achieved.
-
ASPICE emphasizes more on processes and plans. GP (Generic Practice) 2.1.1~2.1.6 basically talks about process and planning. For example, GP2.1.6 clearly states that you must identify, prepare, and arrange appropriate resources to ensure that the process runs according to plan. You should know that if you want to pass ASPICE Level 2 certification, GP2.1.1~2.1.6 is a necessary condition.
In addition, implementing “Agile” has a major benefit of “improving customer satisfaction”. You just need to deliver something to the client and ask for their feedback, then make improvements according to their feedback. How can the customer be dissatisfied? After the customer is satisfied, what else do we need ASPICE for?
- The disadvantages of ASPICE
ASPICE has been in the automotive industry for many years, and its benefits should be well known to everyone: it comprehensively covers engineering processes, can help and guide software development, and improve the quality of deliveries. Here, I will mainly talk about the disadvantages of ASPICE. But before that, let me tell you a joke and my personal experience.
There was a software engineer who met God one day, and God said to him, “I can grant you one wish”. The engineer thought for a moment and said, “I want to do a good project”. God thought for a moment and then granted him “eternal life”.As a “software engineer”, it’s really difficult to make a good project, but I was fortunate enough to encounter one. Around 2013, I worked with 5 other colleagues on a TBOX project. We worked on it for about 3 months and delivered it to testing. The quality was surprisingly good, with only a few bugs. QA even came over and questioned why our project’s data was flawless, as there were no issues with the ramp-up curve. However, the project did not pass ASPICE and was subject to a lot of issues.
That’s my personal impression of ASPICE. Now let’s talk about the downsides of ASPICE.
Downside 1: Outdated management concept
“Agile” is a consensus on “values” achieved by a group of excellent software engineers that stimulates individuals’ proactivity. “ASPICE” is developed jointly by over 20 European OEMs to guide component suppliers. Due to an inherent mistrust of suppliers, it emphasizes “management and constraint of human laziness.” The advantages and disadvantages are easily apparent.
Downside 2: Heavy and inflexible
-
3-5 times more work: A project that strictly follows ASPICE requires 3-5 times the work of a regular project in many Tier 1 practices; that’s why you can try it yourself if you don’t believe it.
-
Traceability–a seemingly perfect reality: ASPICE practically talks about bidirectional traceability for each process, and most projects either link all requirements to one module or use a small one to do this. In engineering practice, traceability can indeed help identify problems, but its cost-effectiveness is extremely low. Do architects only read requirements once when designing architecture?
-
What to do when changing requirements or refactoring: In my previous company, I worked on a large module for 2 months, with about 40,000 lines of code, including a few thousand lines of code used for code generation. During those 2 months, I designed and wrote code, refactored the design when it didn’t work, and repeated this process three times. But as per ASPICE, what should I have done?
Downside 3: Driving away outstanding talent
In this “software-defined car” era, outstanding software talent is scarce, so attracting them is a must. However, if they are driven away, the consequences could be disastrous.“`markdown
The above picture is of Alibaba’s “Duo Long”, who from 2003-2007 single-handedly maintained Taobao’s search engine, the ultimate goal of programmers. Engineers like “Duo Long” have the following values:
- Sense of accomplishment: completed complex tasks, solved difficult problems
- Pride in the robustness, maintainability, and scalability of their code
- Boasting: The code I wrote 10 years ago is still in use today.
After ASPICE, the values expected of excellent engineers are:
- Sense of accomplishment: all of my documents (in a broad sense) are complete
- Pride in strictly adhering to processes and not causing trouble for QA
- Boasting: (can’t think of anything)
The result: “Sorry, I think I’ll leave this company.”
ASPICE vs Agile summary
In the face of the “pain points” in Chapter 1, ASPICE can indeed solve quality problems, but it has no contribution to market changes “quickly” and may even prolong delivery cycles. In contrast, “Agile” can solve all the “pain points.”
Engineering Culture and DevOps
Engineering culture
Establishing the “engineering culture” within the company is the fundamental guarantee for “Agile” to not degenerate. The cornerstone of “engineering culture” is the culture centered around “engineers”.
My understanding is as follows:
-
Quality-oriented: Fully trust the engineers; do not release the product if it does not meet delivery standards, and do not hold engineers accountable. Excellent engineers have high self-requirements, and they are usually unwilling to release products if they do not meet their own standards. At this point, we should respect the engineer’s wishes and not hold them accountable, as they have likely done their best.
-
Pursuit of new technology: Use and pay attention to the latest technology and tools and allow for time costs due to trying new technology. Trying new technology carries the risk of failure, and only seeking to improve efficiency without bearing the possible consequences is playing rogue.
-
Focused time: Try to minimize unnecessary meetings and other interruptions; otherwise, the engineer’s “inspiration” may be interrupted. Here’s a tip: leave a message when it’s not necessary; don’t call or go directly when it’s not necessary.
“`- Internal Technical Forum: A platform for sufficient communication and exchange of technology. Here, there is a simple and crude way to judge whether a company has a technical atmosphere, which is to see what the hundreds of people in the group are talking about. Is there frequent technical communication and sharing, or are they all administrative notices?
- DevOps
The agile and rapid iteration technology of DevOps itself is also a big topic, which will not be discussed here in detail. There are several points as follows:
-
Committing code triggers directly: eliminates waiting time and provides fast feedback
-
Each change corresponds to a delivery pipeline: makes problem location and debugging simple
-
High efficiency automation throughout the entire development process: stable, fast, and the delivery result is predictable
-
Continuous automation regression testing: improves delivery quality
-
Facility sharing and on-demand provision: maximizes resource utilization
Conclusion
Agility is eating the world, and perhaps you don’t know that the automotive industry is no exception!
Reference
- ^1 https://www.36kr.com/p/847294138930688
- ^2 https://www.forbes.com/sites/stevedenning/2012/02/03/is-apple-truly-agile/?sh=d209df6641e6
- ^3 https://www.agilearena.net/google-case-study-agile-software-development/
- ^https://www.aptiv.com/en/careers/competencies/join-our-agile-revolution
- ^4 https://flyntrok.com/2020/07/07/agile-owl-edition-3/
- ^5 https://hbr.org/2018/05/agile-at-scale
- ^6https://www.continental.com/en/press/press-releases/2020-10-21-new-project-organisation-vni-2383928. ^7 https://www.daimler.com/company/strategy/
- ^https://www.forbes.com/sites/stevedenning/2020/01/26/how-volvo-embraces-agile-at-scale/?sh=50690f454cf0
- ^https://www.itpro.co.uk/agile-development/31552/how-bmw-embraced-agile-to-hit-new-speeds
- ^https://zhuanlan.zhihu.com/p/257174601
This article is a translation by ChatGPT of a Chinese report from 42HOW. If you have any questions about it, please email bd@42how.com.