Leveraging AI in Software Development

Munich, March 2024

Leveraging AI in Software Development

Munich, March 2024
I

n 2023 the hype around artificial intelligence (AI) and specifically GenAI reached its peak.

This can be seen in 2 major aspects. First, the valuation of leading AI companies like Microsoft or OpenAI went through the roof. OpenAI is in early talks to raise a fresh round of funding at a valuation at or above $100 billion¹. Second, the high number of projects that have been launched in the automotive industry across the entire value-chain created a high demand on AI expertise. Companies formed teams or complete organizations defining hundreds of use cases for launching pilot projects to increase the customer experience, create efficiency or support other strategic goals in their company & product strategy.

Berylls Digital & Technology serves as the center of competence AI within the Berylls group. Therefore, we are leveraging AI for our own business, working with customers on projects and observing market developments closely. Over the last 12 months we saw that companies tend to be more cautious with the implementation of GenAI at the beginning. While early pilot projects are often rolled out with standardized services of business software providers, e.g. copilots, later stage GenAI use cases are more customized and developed inhouse or with in cooperation with partners to target specific problems.

Successfully navigating through a plethora of potential use cases as well as implementing the most impactful ones necessitates a robust validation process and significant organizational change. The pace and extent of these transformations are influenced by a company’s strategic decision to either lead as an innovator and first mover or to adopt a fast follower approach. Drawing from this study and our experience in client engagements, we advocate for at least being an early adopter, particularly in integrating Copilots into standard enterprise software. Our observations from numerous projects highlight an immediate beneficial impact: the license costs per user are quickly offset by short-term efficiency gains. Proper integration and customization of these tools within existing processes can further enhance productivity and reduce labor requirements in specific roles.

 

At Berylls, we specialize in guiding automotive car makers and suppliers through their journey from initial exploratory ideation to becoming efficient, scaling organizations.  Indeed, the potential of AI is immense in multiple fields of application, yet we also see a significant number of failed pilots & projects through our work with clients. We will discuss the reasons for failing in AI use cases in another Berylls insights edition in more detail. However, in this article we want to set the focus on an area where AI delivers a significant improvement on speed and efficiency for coding projects: The usage of GitHub Copilot by Microsoft in “real” software development projects.

 

Case Study

The automotive industry is spending over 4 billion euros annually due to poor vehicle launches caused by ineffective project management, missing information, and late execution of measures. As a result, many vehicle launches end up in task force mode. Properly managing these task forces in stressful situations requires full focus, which is why efficient collaboration is essential. Nonetheless, modern processes are complex and multilayered dependencies across departments pose information asymmetries, leading to the distribution of outdated information and time inefficiencies.  

Leveraging our decades of experience in managing task forces at Berylls, we have developed a solution to overcome these challenges. Together with our software development partner Avochoc, Berylls is launching “elyvate”, a digital task force solution custom-built for the automotive industry. This is our digital approach to optimize performance in project and shop floor management.

Our software as a service (SaaS) solution is the next level of task force management and focused on user-friendliness as well as simplicity, ensuring an intuitive experience. elyvate is designed to integrate seamlessly into your workflow, enhancing efficiency without the complexity. It offers an all-in-one reporting solution that includes automated KPI and measure tracking to optimize performance in project and shop floor management. elyvate allows to digitally steer task force projects with ease, proactively plan and follow up on KPIs, implement measures, as well as most importantly, track their efficiency.

Source: Berylls Strategy Adivsors

Through “elyvate”, Berylls provides our customers with a tool to address these challenges.

  • Cloud-based SaaS tool with 24/7 availability across multiple devices.
  • Smart project management and reporting including creation of
    KPI charts, tracking and planning for taskforce project teams.
  • Fast set-up and preconfigured work package structure based
    on project needs.
  • Integration into shop floor and machinery management and reporting systems (in development).

     

During the development phase we jointly decided to leverage AI development support tools as far as possible, not only to make the process more efficient but also to get hands on understanding of the advantages and challenges of these.

Using AI tools in a business context needs clear and robust legal governance model for using such applications. Particularly AI usage must comply with applicable laws and regulations as well as aspects like intellectual property (IP), data protection (GDPR), and business secrets become critical. We will cover this in detail in our latest newsletter. This is especially challenging since the local / regional regulations are just being updated to reflect the questions in IP and data protection.

Today we want to share our experiences leveraging GitHub Copilot by Microsoft.

Our experiences with GitHub and AI features:

Coding can often be a laborious and lengthy process. Nowadays, developers are perpetually seeking innovative methods to enhance their productivity, precision, and efficiency in programming. One tool of choice for development teams is GitHub.

GitHub is an AI-powered developer platform that allows developers to create, store, and manage their code.² Features like access control, bug tracking, software feature requests, task management, continuous integration, and wikis are included in the software. Acquired by Microsoft in 2018, the platform is now used by more than 50,000 organizations and 1.3 million paid subscribers, representing the most broadly facilitated AI developer tool worldwide.³

The GitHub Copilot

Introduced in late 2021, GitHub Copilot represents one of the latest innovations by GitHub. Marketed as an ‚AI pair programmer‘, Copilot employs AI to auto-generate code within your editor. It is accessible as an extension for Visual Studio Code, the JetBrains IDE suite, and Neovim, broadening its usability across different development environments.

GitHub Copilot is an innovative AI tool driven by OpenAI Codex, designed to improve the coding experience for developers. Its primary function is to propose code snippets based on the context within the file, such as function names, code comments, docstrings, file names, cursor position, and more. By simply pressing the Tab key, developers can accept these auto-generated proposals, which are derived from open-source code within GitHub’s public repositories. This AI tool is proficient in numerous common languages including TypeScript, Python, JavaScript, Ruby, among others.

One of the key aspects that sets GitHub Copilot apart from similar tools is the level of control it offers to the users. Unlike other products, GitHub Copilot empowers the user with the flexibility to accept or reject code suggestions, manually modify them, and explore different alternatives. As the user interacts with the tool, it gradually adapts to the coding style, leading to progressively refined and relevant suggestions over time.

A distinctive feature of GitHub Copilot, further differentiating it from other solutions, is its ability to comprehend natural language, encompassing both programming and human languages. This feature is especially beneficial for developers working with unfamiliar frameworks and libraries, as Copilot can navigate through open-source documentation quickly, reducing the need for manual searches.


To maximize the benefits of GitHub Copilot, it is recommended to divide the code into smaller functions, write effective comments and docstrings, and use meaningful names for function parameters. These practices aid Copilot in understanding your intent more accurately.

However, it is important to note that GitHub Copilot does not generate flawless code. While it strives to comprehend the developer’s intent, some proposals may not function as expected or even make sense. It does not test any of the code it suggests, which means the suggested code might not compile or run. Therefore, developers still need to meticulously review and test the code before assuming it’s usable.

In general, GitHub Copilot is likely the best autocomplete tool available, offering a wide array of solutions to problems beyond basic suggestions. The variety of proposals for a code snippet is impressive, often reducing the need to consult external sources like Stack Overflow.

Despite its capabilities, it is crucial to understand that GitHub Copilot is merely a tool and far from replacing human developers. You cannot depend solely on Copilot, and it is still up to the developer to accept the suggestions and make necessary modifications.

Let’s delve deeper into different examples:

GitHub Copilot is able to transform your comments into usable output (executable code), similar to the ChatGPT overlay. Simply by writing a prompt that describes the desired logic, Copilot can automatically generate code suggestions based on that description. As a programmer, you can then easily accept these suggestions with a press of the Tab key.

Consider, for instance, you are crafting a Python function and have included a comment detailing its intended functionality. For Copilot to generate high-quality code proposals, it is vital to write clear and precise comments and docstrings. Ambiguous or poorly written comments can pose a challenge for Copilot in accurately grasping your intended functionality.

GitHub Copilot can immensely cut time spend for coding, especially when it comes to speeding up the writing of repetitive code segments. When dealing with large blocks of standard code, simply providing a few examples of the desired pattern is enough. Copilot then efficiently handles the rest, streamlining the coding process.

As previously stated, GitHub Copilot does not perform testing on the code it generates. Nonetheless, it can be used to recommend tests that are compatible with your code implementation. This provides an effective way to quickly incorporate a test unit package. While it is still necessary to verify the logic and functionality of the code, using Copilot for this purpose offers a faster option compared to writing the test code entirely on your own.

This scenario is perhaps the most effective use of Copilot. It acts as a crucial aid for developers using an unfamiliar language or framework. Imagine, for example, you wish to create a specific function in a new programming language. The approach to coding can vary greatly based on the language you are using. Even if you have some proficiency in this new language, the autocomplete feature of Copilot remains a significant time-saving tool.

Our experienced developers have found great value in using Copilot while delving into languages they are not familiar with. Although Copilot’s suggestions may not always be perfect, they often accurately capture the basic syntax. Furthermore, it guides users towards common programming idioms, library functions, and more. Copilot can even function as a self-teaching tool for programmers, aiding in their learning process.

Developers frequently know precisely what needs to be done but sometimes overlook the finer details of the process. For example, they might need to normalize matrices or create complex functions with particular parameters. Copilot’s autocomplete feature enables developers to concentrate on the method, while Copilot handles the completion of the code. This capability saves developers valuable time, as they do not have to consult books or websites to look up methods.

Since copilot makes use of a lot of historical data, it also has an in depth understanding on which tools developers use. As tech evolves, so do the tools the developers use. Generally, the way of accomplishing certain tasks stays relatively consistent, with small changes in function names or syntax. As Copilot has insight to this, it can generate the correct code if guidance is given.

Much of the functionality in the software realm is possible, because computers adhering to specific sets of rules for communication, commonly known as protocols. Among the most prevalent protocols are RADIUS (for your ISP to grant internet access), CSMS (to communicate with electric vehicles), TCP/IP (for reliable data transmission over the internet), etc. While these protocols are thoroughly documented, they often encompass hundreds of pages, necessitating extensive reading for developers to implement them. Copilot, however, can adeptly predict the methods developers should use and accurately assist in implementing these protocols.

As copilot has context of the code, it is able to correctly predict which functions and variables need to be used for the next part of the code. This assists developers by reducing cross referencing in their own code base, allowing the development to be streamlined.

Hands-on Insights:

While it is not strictly necessary to do this before using Copilot, it is highly beneficial to define the purpose and objective, especially if you are new to the tool. Avoid diving into GitHub Copilot with a “let’s just see what happens” attitude. This could lead to confusion and prevent you from fully utilizing the tool’s capabilities. Once you have determined how you intend to use Copilot for your upcoming project, the subsequent steps will be much simpler.

Many coders utilize GitHub Copilot when they have a clear picture of what they want to create but might need to deal with a programming language they are not familiar with. Copilot then assists them in getting the syntax correct and understanding basic library functions.

GitHub Copilot is not a standard feature of many programming platforms and their editors. Therefore, you will need to register and install the extension before you can begin using it. The platform offers different subscription packages⁴, choose which option suits your needs best.

After installing the extension, Copilot will ask you to authorize the plugin by logging into GitHub. Once authorized, you should be automatically redirected back to the editor.

As you write, GitHub Copilot will start to automatically suggest autofill options based on the context. It is your decision whether to accept or reject these suggestions. If you are not satisfied with what Copilot is suggesting, you can always view other suggestions to see if they are more applicable.

It may take some time to get used to Copilot, but with more usage, you will become more comfortable with the suggestions as well as the Copilot building those based on your objective.

As mentioned earlier, Copilot is not flawless. Therefore, you cannot blindly accept the suggestions and assume they are perfect. You will probably need to make adjustments to the code. As always, you should run tests before incorporating the code into your project.

GitHub evaluated Copilot’s accuracy by reviewing a set of Python functions in open-source repositories. They removed the function bodies and asked Copilot to fill them in. Copilot correctly completed the functions 43% of the time on its first try. When Copilot was given 10 attempts, the code was correct 57% of the time.⁵ Our experiences were slightly better but still manual checks and adaptations are a must do.

While copilot can drastically improve a developer’s workflow, as it really shines with trivial repetitive tasks, this only holds when a developer can properly guide it. Copilot cannot solve new problems, but it can save hours in repetitive tasks and documentation reading.

Since the tool is always trying to suggest potential edits based on the code you build, it might not unleash its full potential. For example, in the hands of a strong developer, copilot is a tool that will save the developer hours of time. In the hands of an inexperienced developer, the suggestions may be unsecure and may cause the developer to take longer to complete a task as they would need to do more debugging than usual.

As the AI tool is trained with public data and code, discussions arose about potential copyright / IP infringement by GitHub CoPilot over the last months in the US. Dating back to a claim from November 2022, a judge looked into these claims which will have a significant impact on GitHub and other AI large language models (LLMs), but potentially also your generated code by the Copilot.

These claims represent developers’ allegations of the algorithmic reproduction of their source code by CoPilot, filed against GitHub, OpenAI, and Microsoft. Some cases have been dismissed, yet there is still a high risk of infringement. In fact, the judge allowed three damage claims so far, which gives room for more as well as anticipated changes to the services of Copilot in the future.

Do not miss this opportunity to revolutionize your business with AI technology! Take the first step towards a transformative journey and discover how our cutting-edge automotive reference projects at Berylls can enhance your business processes. Act now and contact us to explore a world of possibilities with AI – Let’s innovate together.

For more insights go to:

Github

We will cover governance models for AI usage in business context in detail in our latest newsletter.

About AvoChoc

At AvoChoc, since our inception in 2015, we have been dedicated to delivering unparalleled digital experiences that captivate audiences and elevate businesses across diverse sectors. Our expertise in experience development, blending artistic vision with technological prowess, allows us to create exceptional web designs and complex systems. Our diverse portfolio includes work in education, medical, children’s development, coding for kids, manufacturing, clean energy, electric vehicles, sports, and private security, highlighting our versatility and commitment to innovation.

We extend our services beyond technical solutions, providing business consulting and boasting an in-house team of UI/UX designers. This ensures holistic insight and design excellence in every project. Our dedication to exploring the latest tech, frameworks, libraries, and languages keeps us at the forefront of technology, enabling us to offer the most advanced and effective solutions to our clients.

About Berylls Digital & Technology

The Berylls Group unites expertise in strategy consulting, data-driven marketing transformation, venture building and equity investing. We focus exclusively on what we call the global automobility sector – because we believe that today’s automotive industry is about much more than the manufacturing and selling of cars.

Berylls Digital & Technology, for instance, is dedicated to the digital consulting & project execution and scaling of digital products. Our two focus areas are consulting in the area of software-defined vehicles (SDV) and the execution of software taskforce projects, safeguarding projects that are in distress. With our strong set of external partners, we are uniquely positioned to serve our customers, “but different”.

Our focus on digital innovation and its commitment to driving advancements in the automobility sector demonstrate our role as a transformative force in this industry, particularly through our technological and digital offerings.

Notes:
¹ Bloomberg: https://www.bloomberg.com/news/articles/2023-12-22/openai-in-talks-to-raise-new-funding-at-100-billion-valuation
² Wikipedia: https://en.wikipedia.org/wiki/GitHub
³ Microsoft: https://www.microsoft.com/en-us/Investor/events/FY-2024/earnings-fy-2024-q2.aspx
⁴ Github: https://github.com/features/copilot/plans
⁵ Medium: https://medium.com/codex/what-is-github-copilot-6c3e99ba7c41

Author
Christian Kaiser

Partner & Head of IT

Christian Kaiser

Christian Kaiser (1978) is partner and Head of IT at Berylls Group with focus on software and connectivity. He began his career with Daimler AG in 1997. He brings 26 years of industry and consulting experience in the automotive industry serving in various executive roles at OEMs and software companies.

At Berylls, his area of expertise is software development & architecture, digital business models, digital operating models and ADAS/AD.