top of page

The inevitable rise of engineering automation

Updated: Jul 4

by Paolo Azzoni



The software development landscape is undergoing a metamorphosis driven by complexity. Applications are morphing into intricate ecosystems, with complex architectures, intricate and frequently uncontrollable dependencies, with a very rich set of functionalities, resulting in an ever-growing number of lines of code. From an average iPhone app with around 40k lines of code and Google Chrome with 6 million lines of code to a complex machine like the F-35 fighter jet with 24 million, today a modern high-end car contains more than 100m of lines of code 1 . This rising complexity is also reflected in the domain of the Electronic Components and Systems (ECS) and presents a critical challenge: the widening abyss between the insatiable demand for skilled engineers, the limited pool of talents readily available and the lack of appropriate solutions to alleviate the lack of human resources. The spectre of a talent shortage looms large and is alarmingly already affecting our companies, strongly limiting their autonomy, competitiveness, sustainability and economic security, threatening to throttle innovation, creating dangerous dependencies on critical assets from the US, India and China, harming security and potentially stalling product development and launch.


Software engineering automation emerges as the powerful weapon in this battle, leveraging technology such as AI to streamline processes, offload developers from repetitive and valueless tasks, empower them, and let them focalise the attention, energy and resources only where there is more value and where human qualities can generate the most relevant impact, reducing the operational and engineering costs, increasing profits and customer satisfaction.


The lack of skill: an obstacle to progress 

The digital revolution has ignited an explosion in software development needs, across industries, vertical applications and the entire software stack. From mobile apps revolutionising healthcare to AI-powered algorithms driving autonomous vehicles, the demand for robust, secure and innovative software is relentless. Unfortunately, the number of qualified software engineers hasn’t kept pace with this rapid growth. Universities struggle to churn out graduates fast enough to meet the ever-increasing demand, and scientific research will have to significantly invest to identify solutions that can compensate the lack of resources with automation. The talent shortage and the lack of appropriate engineering solutions leave businesses scrambling, forced to choose between compromising on quality, relying on solutions they cannot control, extending timelines, increasing the time to market, etc. Unfortunately, European companies operating in key application domains such as automotive, aeronautics, healthcare, to mention a few, cannot tolerate similar compromises to maintain their market position and are forced to look at the US and China to find solutions.


Engineering automation

Engineering automation emerges as the hero in this narrative, wielding the power of technology not for replacing human limitations and inefficiencies, but leveraging technology to augment and empower human capabilities. Automation takes over the repetitive, valueless tasks that bog down developers, freeing them to focus on the more creative and strategic aspects of engineering to crafting elegant solutions and pushing the boundaries of innovation: the objective is to free the developers from the fatigue of requirements analysis, basic software components implementation, API development, manual testing, bug reporting, configuration management, code reviews, API documentation and report generation, certification processes, etc.


AI: the engine of automation 

Artificial intelligence plays a pivotal role in engineering automation, to such an extent that it can be compared to the engine in a car. Machine learning algorithms, trained on vast codebases, can identify patterns and automate tasks with remarkable accuracy, efficiency and enormous speed. These algorithms can even predict and anticipate potential issues or unwanted/unintended behaviours in code, allowing developers to proactively address them before they become concrete problems.


The adoption of AI contributes to increasing the automation level of several phases of software engineering, including:


  • Requirements analysis: AI can analyse requirement documents and user stories written in natural language to identify key functionalities and potential conflicts.

  • Code completion: AI can assist the developer suggesting how to write a drafted or partially developed code and it can also automatically complete it.

  • Code generation: AI can generate code snippets and more complex blocks of code, entire functions and even entire software modules based on pre-defined specifications. AI has demonstrated the capability to generate even simple but complete applications. This frees developers from the tedium of writing code that adheres to established patterns.

  • Static code analysis: AI can analyse code to identify potential bugs, security vulnerabilities, code quality KPIs and adherence to coding standards. This helps developers write cleaner and more maintainable code.

  • Code style enforcement: AI can enforce consistent coding styles by automatically identifying and correcting code-formatting inconsistencies.

  • Unit test case generation: AI can analyse existing code and automatically generate basic unit test cases, ensuring core functionalities are covered during testing.

  • Test and debugging: automated testing and debugging frameworks powered by AI can meticulously scrutinise code for bugs and vulnerabilities. These frameworks can not only execute predefined test suites but also learn and adapt, uncovering potential issues that traditional testing methods might miss. Tasks that can be automated include automated test execution, test data generation, bug detection and management. This significantly boosts continuous software development.

  • Prediction and prevention: AI can analyse code to predict potential bugs and security vulnerabilities before they manifest in production environments. This proactive approach allows developers to address issues early on, significantly reducing the time and resources spent fixing problems after release, and preventing problems, damage, malfunctions, etc. when the application is deployed and becomes operational.

  • Documentation and report generation: AI can automatically generate software documentation from code comments and annotations, saving developers time and ensuring accurate description of features, functionalities, API, data structures, etc.


A double-edged sword: automation and the human element 

Despite the urgent necessity of engineering automation, a critical concern emerges: the potential erosion of human knowledge and expertise. While automation offers undeniable benefits by streamlining repetitive tasks, its indiscriminate use could inadvertently create generations of engineers with gaps in their knowledge base and skills, potentially further deteriorating the future availability of experts and talented engineers.


The motivation lies in the role of those seemingly “boring, repetitive and valueless tasks”, which serve to young engineers as the building blocks of fundamental knowledge. Imagine a young developer learning to write basic code by hand, following a repetitive process which not only reinforces the knowledge and mastery of the programming language, but also fosters a deeper understanding of how the code runs and how the application interacts with the context. Automation removes this handson experience, potentially hindering the development of foundational knowledge and skills.


The loss of these foundational skills can have a domino effect, impacting on competence erosion, reduce creativity and innovation: without a strong knowledge base, building advanced expertise becomes more challenging. Imagine an engineer unfamiliar with manual testing who relies solely on automated testing tools. While these tools are becoming essential today, the complexity of systems may lead to missing specific test cases or bugs categories, the identification of which requires a deeper understanding of the entire system. This lack of comprehensive knowledge could limit an engineer’s ability to troubleshoot complex issues and ultimately negatively impact innovation.


AI excels at automating tasks and providing valuable insights, but it lacks the human capacity for creative problem-solving and the nuanced understanding of the specific technical domain. The key lies in finding the right balance between automation and human involvement: engineering automation should be employed strategically to free up engineers for higher-level and more creative tasks without replacing engineers entirely, ensuring their knowledge base is preserved, grows and matures. By adopting a balanced approach, engineering automation can become a powerful tool that enhances rather than diminishes human capabilities.




The automation arsenal beyond AI 

While AI plays a central role, software engineering automation encompasses a diverse set of mature technologies that never adopted AI and that could be today boosted by AI. To evaluate the diversity of these technologies consider for example:

  • Low code/no code: this technology is not a novelty and was known also as Rapid Application Development (RAD). It comprises building software applications leveraging visual tools (visual programming with drag and drop interfaces) and pre-built templates and components instead of the manual writing of extensive lines of code. Imagine it as a Lego set for software development, where pre-constructed pieces snap together to form a functioning application.

  • Static Code Analysis: this technology consists of analysing code without executing it. It can identify potential bugs, security vulnerabilities and code quality issues, allowing developers to address them before they impact the software’s functionality or security.

  • Infrastructure as Code (IaC): this approach enables the provisioning and management of infrastructure through code. Imagine declaring the desired server configuration in code instead of manually configuring individual servers. IaC streamlines infrastructure deployment and management, making it highly scalable and repeatable.

  • Continuous Integration and Continuous Delivery (CI/CD): This methodology automates the entire software delivery pipeline, from building and testing code to deploying it to production environments. CI/CD ensures a smooth and efficient flow of software throughout the development lifecycle.

  • Robotic Process Automation (RPA): RPA mimics human interactions with software, automating repetitive tasks like data entry, configuration management and report generation. This frees developers from the burden of administrative tasks, allowing them to focus on core engineering activities.


Engineering automation benefits 

The benefits of engineering automation extend far beyond simply addressing the skill gap and are not limited to the software domain. The list of advantages is endless:


  • Increased efficiency: automation streamlines workflows, reducing development time and effort, and improving the accuracy and quality of the result.

  • Enhanced productivity and competitiveness: faster development cycles and improved product quality lead to a significant competitive edge in the marketplace. Companies can bring innovative products to market faster, take advantage of fleeting opportunities and stay ahead of the game.

  • Reduced time to market: automation accelerates the entire engineering process and assists the whole product lifecycle. This facilitates businesses to capitalise on market opportunities and respond to customer needs more quickly. Improved product quality: automated code generation reduces the presence of bugs, while testing and code analysis allows to catch bugs early on in the development process. This leads to higher-quality software with fewer defects and a lower risk of post-release issues, reducing significantly operational and maintenance costs.

  • Boosted business and economic growth: increased efficiency, faster time to market and an enhanced competitive edge translate to business growth. This, in turn, contributes to a more vibrant digital economy, fostering innovation and job creation in related fields.



The road ahead: towards hyperautomation 

The impact of digital automation extends beyond the engineering process: from optimising management and operations to market analysis, to the redefinition of customer experiences, improvement and optimisation of product maintenance and evolution, etc. Companies are currently already trying to leverage the power of digital automation to unlock new opportunities, drive innovation and gain a competitive edge. However, according to a McKinsey study 2 , 69% of interviewed enterprises have not yet implemented any automation process: “Businesses should be focused on delivering a better experience for customers and on innovating, not using their teams to process repetitive tasks that are full of errors,” states a 2023 report by Activant Research 3 .



In 2020 Gartner coined the word “hyperautomation”5 , referring to a “business-driveN, disciplined approach that organisations use to rapidly identify, vet and automate as many business and IT processes as possible”, going significantly beyond the simple mechanisation of repetitive manual tasks towards the automation of complex decision-making processes previously requiring human intervention or design and developments tasks requiring human creativity. Hyper-automation consists of business, management and operational strategies based on a combination of diverse IT technologies and intended to augment and boost human capacities and automate the processes in which they are involved. It extends traditional automation by adopting machine learning, natural language processing, generative AI, new event driven architectures and software solutions, systems integration platforms, design flow and, more generally, engineering tools automation, intelligent platforms for business process management, etc.


Despite the delays in the adoption of automation highlighted by Activant Research, for the third year in a row, 80% of Gartner clients reported that they will increase the investments in automation technologies. Gartner predicts a future where automation touches every step of the product journey, in a fully automated value chain. By 2025, over 20% of goods globally could be manufactured, packaged, shipped and delivered without human intervention. Consumers will be the first to make physical contact with these products.


Engineering automation is here to stay

Technological progress in different domains is helping engineering automation and hyper-automation to emerge, supporting organisations to execute more and more complex tasks autonomously, with more robust orchestration and decision-making capabilities, along the entire product lifecycle. Hyper-automation will not be adopted only to automate the whole value chain, but it will also be ubiquitous in organisations’ decisionmaking, research and development, critical operations, customer management, sales, front-end offices, infrastructure, etc. And it is here to stay, to minimise uncontrollable technological dependencies and to cope with the lack of human resources. However, engineering automation and hyperautomation are not a replacement for human expertise. Instead, they serve as a powerful ally, empowering people to achieve more, and to be more efficient and productive. 1 https://informationisbeautiful.net/visualizations/million-lines-of-code/



Download ISSUE 7 of INSIDE Magazine via this link: https://www.inside-association.eu/publications






Commentaires


bottom of page