07. Mar 2024

The Collaboration Between Human and Machine

In the final part of our series on the use of AI in software development, we look at the use of LLMs in the implementation phase, GitHub Copilot as a coding partner and the interaction between humans and LLMs.
Software Engineer

Author

Niclas Komander

Ein Mann im grünen Pullover sitzt mit dem Rücken zum Betrachter gewandt vor einem Bildschirm, auf dem Code zu sehen ist.

The rapid development of Large Language Models (LLMs) such as ChatGPT and GitHub Copilot has had a significant impact on software engineering. In this blog series, we have already presented the potential analysis for the use of LLM-based tools in the areas of architecture and requirements engineering. Now we take a closer look at the implementation phase and the fascinating changes that LLMs bring about in the workflows of our development teams. Our in-depth qualitative study reveals not only technical insights, but also the human dimension of this human-machine collaboration. Find out how ChatGPT and GitHub Copilot are not only able to generate code, but also serve as supporting tools to develop solutions.

ChatGPT as implementation support

In the area of implementation, we have observed and explored the versatility of ChatGPT in interactive mode. Developers use the chatbot not only as a code generator, but also as a supportive partner in finding solutions. The dialog with ChatGPT proved to be an effective approach to develop a deep understanding of complex implementation tasks. The opportunity to explore and weigh up different solution approaches in a dynamic exchange with the AI was particularly appreciated.

GitHub Copilot as the perfect coding partner

GitHub Copilot, on the other hand, was seen by our teams as a useful code partner in the real-time editor. The ability to generate lines of code in real time proved to be particularly beneficial when it came to creating repetitive or standardized sections. The adaptability of GitHub Copilot to the individual coding style of our developers was highlighted as a plus point, supporting seamless integration into ongoing projects.

Strengths of the LLMs

The qualitative study also enabled us to identify specific use cases in which the LLMs could best play to their strengths. The development of component intersections, the processing of trade-offs for different solutions and the creation of interface schemas in JSON format were identified as particularly suitable tasks. The teams found that these use cases not only saved time, but also improved the quality of the development process.An outstanding example of Accso's proactive step into the future of software development is our AI Assisted Hackathon. In a user group of 15 people, we explored the possibilities of real-time LLMs and found innovative ways in which these technologies can increase not only efficiency but also creativity in code creation. This move demonstrates our commitment to innovation and the continuous optimization of software development dynamics.

Interaction between humans and LLMs

Advances in Large Language Models (LLMs) such as ChatGPT and GitHub Copilot point to a fascinating future of code writing. We are on the cusp of an era where collaboration between human developers and machine intelligence will transform not only efficiency, but also the way we create software.

One of the most exciting prospects is the idea that we could potentially do away with traditional code comments in the future. Instead of manually commenting a section of code, your LLM-based tool could automatically provide an understandable explanation in inline format. This vision of "explanatory code" could not only reduce workload, but also help make code easier to understand for developers at different levels of experience.

A personal outlook on this future of code writing could include the integration of LLMs into every developer's daily workflow. While working on a challenging section of code, you could communicate with your chatbot in real time to clarify understanding questions or explore alternative approaches. This dynamic dialog could not only improve the quality of the code, but also enable a kind of "pair programming" with an AI entity.

The idea that LLMs might be able to not only generate code, but also explain its context and logic, promises a profound shift in the way software is developed. This shift could not only speed up the development of applications, support developers in the further development of new technologies and lower the entry barriers for new team members, but also make it easier to deal with legacy code.

Data protection with ChatGPT and GitHub Copilot

A challenging point highlighted in the study was the need for a balanced approach to data protection aspects. Sensitivity to the protection of company data influenced the areas of application of ChatGPT and GitHub Copilot. However, it is important to note that the vast majority of queries to the AI tools were of a general nature, similar to the typical search queries we perform via search engines today. Therefore, privacy aspects were not compromised in many cases. Our teams found ways to take advantage of these technologies without compromising on data security.

Conclusion

Overall, the experiences from the qualitative study made it clear that the use of LLMs in the implementation phase represents not only a technological evolution, but also a cultural shift in the way developers collaborate and approach problems. The combination of human creativity and machine intelligence opens up exciting prospects for the future of code writing. Our development teams are ready to further explore these possibilities and continuously optimize the dynamics between humans and machines in software engineering.

AI-assisted Software Engineering

This blog article is based on a wide-ranging potential analysis that evaluates the use of LLM-based tools in software engineering today. The identified potentials were tested in real project scenarios by means of an empirical pilot study.

Magazine

Niclas Komander

Software Engineer
Your contact for AI-assisted software engineering with ChatGPT and GitHub Copilot
Niclas Komander Raute