Gen AI: To code or not to code?
Once a upon a time programming was the skill to acquire...

Gen AI: To code or not to code?

Coding features has been changing like a frog in a frying pan.

It is recognized that a good programmer is, above all, a problem solver. Once the problem is defined and features are in a backlog then a developer gets started with the expectation to deploy more often and release with minimal risk. Developers of course don’t just code—but they are delivering experiences and deal with multi-stage releases (with over the air updates) that can break if things are not working properly together. Developers deal in decision points in the code, misbehaving functionality, safety compliance, run-time control, SDKs/APIs and HW/SW integration that is dependent on product complexity.

Coders and programmers are crucial and busy people. ?

How are we building today? There are many, many different environment-specific programming languages (JavaScript, React, Python, PHP, Rust, C/C++, Swift, Java, ERlang, Go, Android etc.) each with syntax and capabilities that work better than others to code-up the customer experience. Regardless of the language and programming activities the focus remains squarely on the customer experience and desired features.

Today, hands-on keyboard coding is predominately handled by hands-on programmers that team with product managers and systems architects for implementation choices and continuous delivery of capabilities. That is an over-simplified product development organization, but basically it takes a community.

At the same time advanced modeling and simulation teams now play a central role giving birth to software that begins its life as a requirement document then a “photo-realistic” model (e.g., pseudocode for a control algorithm in a tool such as SIMULINK). Software and hardware systems now start as a facsimile of the real thing. Depending on the industry, full fidelity source code of some of these models is auto generated onto the target device. Such modeling and simulation work can be illustrated with any number of examples, but here are a couple:

  • Improve battery performance characteristics under EV load conditions
  • Validate the image processing pipeline of a transducer on a medical device
  • Use synthetic data to improve accuracy of an assisted driving braking system

GenAI turns up the heat to replace coding activities and improve scalability

While GenAI’s coding skills demonstrate decent results, it tends to be incomplete and prone to basic errors, often relying on random assumptions. Therefore, GenAI has so far lacked full credibility (especially in safety-critical embedded systems) prompting the inclusion of human expert programmers in the process. These experts would be responsible for reviewing the auto-generated code, whether it originates from GenAI or other modeling tools (e.g., MATLAB) sources. Additionally, a rigorous testing regime is implemented, comprising multiple stages, to ensure source code fidelity from validating performance on the intended target device, and integrating the hardware modules.

Of course, there remains plenty of questions about the negative impact of GenAI in nurturing generation of problem solvers that don’t know how to handle trouble shooting and yes, don’t get frustrated at every corner. It's also interesting to ponder whether we will replace the skills to generate code, with more skills to validate and integrate systems so we stay far away from bricking a medical device or vehicle module because of scrappy auto-generated code.

GitHub's Copilot is a good example of the adoption of OpenAI’s GPT-4 for AI-powered software development that claims some compelling results on developer productivity and happiness:

??60 - 75% coders feel less frustrated

??87% preserved mental effort during repetitive tasks

??22% productivity gains, saving 2 hrs. per developer

??8% more tasks completed, 55% faster completion rate

No alt text provided for this image

?

Gen AI will change the art and science of software engineering.

How/Where/Why will be different sector by sector and the pervasiveness will be gated by risk levels, regulatory / assurance requirements and ability to validate the outcome. While further out from the here and now—Gen AI is a real opportunity to stay relevant ---as things are changing month by month, not year by year.

Strongly suggest that every student, programmer and product developer really take a hard look at Gen AI---and here is a small assignment for an embedded system. Send me a note if you want to hear about my results.

Assignment #1:

??Take input from Device specifications/configuration files (like which HW platform X86/ARM multi-core etc, OS: Linux/QNX/VXWorks etc)

??Generate the code

??Optimize the code

??Check for compliance (like MISRA coding standards) / check for cyber security vulnerabilities

??Build the code for specific platform

??Generate Unit test scripts

??Generate documentation

???Test the code on a target platform and capture results

No alt text provided for this image

?

?

Kalyan Bondugula

Global Alliances Director, Public Cloud - AWS, Microsoft and GCP

1 年

Walid Negm - nice read!!

Khurram Latif

Managing Director | Strategy & Analytics | Product, AI & Data Engineering | SaaS | Cloud Computing | ESG | DEI

1 年

Love this perspective Walid Negm

要查看或添加评论,请登录

社区洞察

其他会员也浏览了