Home > Information > Car
#Car ·2024-01-12
By | Renyuan Dong, General Manager of JFrog Greater China
What is common between autonomous driving and software (SW) development? At first glance, there's not much in common. But a closer look reveals some similarities between the two, especially in the evolutionary path to the basic goal.
The development team itself will not become "passengers," but the traditional roles and responsibilities of those involved in design, creation, protection, distribution, and maintenance will shift. To better understand this, take a closer look at the concept of autonomous driving before connecting it to software development.
The concept of autonomous driving has been around for years, and what once seemed futuristic is now a reality. In essence, autonomous vehicles (AVs) are designed to minimize human error in transportation, which is currently responsible for about 90% of traffic accidents. The basic premise of self-driving cars is that they should perform better than ordinary human drivers. Self-driving technology can save time, which is crucial. In this way, people can devote their energy to more enjoyable recreational activities instead of spending it in traffic.
Edge computing and AI are two key elements in enabling autonomous driving: they enable vehicles to process data from iot sensors inside the vehicle, enabling real-time operations. This capability is critical for any mission-critical application. It is no longer practical to try to manually program machines to handle a wide range of possible driving scenarios. Instead, vehicles must learn dynamically from their environment. The intelligence of a self-driving car depends on the availability of data from various iot sensors, based on which a digital twin representation of the physical world can be created. The more diverse the data, the more complex AI systems can be deployed.
Looking at the development path of autonomous driving, we can see that at each stage, human involvement is gradually decreasing. The autonomous vehicle framework includes six levels of automation, ranging from 0 (fully manual) to 5 (fully autonomous).
No automation: The driver has full control of all driving tasks.
Driver assistance: The vehicle features a single automated system that allows the driver to remove their foot from the pedal.
Partial automation: The vehicle has steering and acceleration capabilities, and the driver can take his hands off the wheel.
Conditional automation: The vehicle is able to control most driving tasks, enabling the driver to take their eyes off the road while still maintaining monitoring.
Highly automated: The vehicle is able to perform all driving tasks under certain conditions, giving drivers the opportunity to take their attention off the road while remaining alert.
Fully automated: The vehicle can perform all driving tasks independently under any conditions. In this way, the driver becomes a passenger and does not have to worry about any driving responsibilities.
The advantage of AI in software development is the same as it is in autonomous driving: minimizing human error and freeing up time for more creative work. Because human resources are often the most expensive part of software development, companies have an incentive to adopt AI systems to do more with less.
A closer look at the evolutionary path of software development reveals striking similarities to the advancement of autonomous driving technology: at each stage of evolution, human involvement has gradually decreased:
In the early 2000s, software development involved little automation. Human control is required at every stage of the software development life cycle (SDLC), so the entire process is essentially manual. Problems are often discovered by customers rather than internal teams.
By the mid-2010s, the rise of containerization, cloud computing, and DevOps increased the overall automation and efficiency of the software development lifecycle. In areas such as testing, code review, and CI/CD, routine tasks and procedural decisions based on predefined (hard-coded) policies and "if-then" rules are automated. In this way, R&D teams can focus on creative work, increase productivity, and thus "lead and accelerate." Shorten development cycles based on agile principles and bridge the gap between development and operations. Problem management and resolution began to shift from reactive to adaptive, and coordination between teams became smoother. Most problems can be identified and fixed before the customer even realizes it.
Today, generative AI is driving new levels of efficiency and innovation in software development. Solutions based on generative AI enable the creation of new content through seamless human-machine dialogue, with automated applications far beyond routine tasks. AI is a true assistant (intelligent co-pilot) throughout the software development lifecycle, providing advice, interpreting questions, generating code, monitoring processes, scanning repositories, providing predictions, and aiding rapid decision making, and efficiency is beginning to improve. This will further speed up and improve overall code generation, meaning more software builds, more software to protect, and more frequent runtime updates.
As we add embedded AI models (MLOps) to the equation of modern software development, the above areas will expand even further. The concept of "streaming software" is becoming a reality, with small incremental improvements (binary-based updates) automatically flowing from the development phase to the run phase with minimal service downtime.
In terms of application security, AI can predict and dramatically reduce the time it takes to find and fix problems, preventing malicious packages from entering the enterprise at the source. The first is automated vulnerability scanning and detection using AI-based severity and context analysis, followed by automated remediation. Despite these advances, human intervention and approval will still be necessary before AI-based solutions demonstrate greater credibility and reliability.
In recent years, we have begun a transition to a fully autonomous paradigm, from an "intelligent co-pilot" (AI assistant) to an "autonomous driver" (AI decision maker). Machines can solve highly complex problems through natural language user interfaces (such as English), which require programmers to acquire new skills to guide the conversation to the desired state. Fundamentally, an AI system should perform better than the average human developer or other people involved in the process described above. AI will further enhance and automate the decision-making process, enabling enterprises to choose the best (data-driven) methods and tools to solve any problem. Trust in AI systems will be Paramount, and this will require broad contextual understanding and ethical decision making, similar to the challenges facing autonomous driving today. Self-learning and self-healing capabilities will be key to detecting, analyzing, isolating and patching problems and keeping services up and running. This means: software will be able to rewrite and update itself, and add new features to handle new inputs. Similarly, for self-driving cars, AI systems must learn from the environment in which they operate and adapt accordingly.
In conclusion, while the similarities between autonomous driving and software development may not be immediately apparent, both fields share a common goal of using AI to enhance their own operations and free up time for individuals to focus on more desirable goals. In software development, AI will continue to accelerate and improve the creation of new features and data, enhance the user experience across R&D functions, and gradually evolve from a trusted advisor to a higher level of decision-making autonomy. From smart coding and security, to covering the entire DevOps stack, AI-based "smart co-pilots" will slowly become mainstream throughout the software development lifecycle. Organizations must adhere to responsible and safe principles and practices for AI to ensure the sustainability of business outcomes. This covers many aspects of AI-generated software, including protecting intellectual property, avoiding potential security and license compliance issues, and more. The progressive autonomy of AI systems will allow and ensure compatibility with the existing infrastructure and regulatory environment.
As AI technology continues to advance, we can expect to see deeper integration and innovation in software development. As AI continues to transform industries, we are entering an exciting time. The future of software development is very promising, and as much as the imagination is large, the development responsibility we can assign to the machine can be large.
2025-02-13
2025-02-13
2024-12-16
13004184443
Room 607, 6th Floor, Building 9, Hongjing Xinhuiyuan, Qingpu District, Shanghai
gcfai@dongfangyuzhe.com
WeChat official account
friend link
13004184443
立即获取方案或咨询top