The use of ChatGPT in software development

by | 07.09.2023

It is hard to miss: Artificial intelligence (AI) is making huge strides and changing many industries for good¹:

  • In healthcare, AI is being used for treatment planning, medical image analysis and drug research,
  • in the financial sector, AI is used for big data analysis, fraud detection or customer care,
  • and in the automotive industry, AI helps interpret sensor data in real time and supports the operation of self-driving cars.

Artificial intelligence – namely ChatGPT – is also gaining ground in software development, though there is controversy about how useful it actually is.

In this article, I would like to shed light on some aspects of the controversy and discuss advantages and disadvantages. As an employee of a software development service provider, I am probably not completely objective, but perhaps one or the other argument will help if you are faced with the question of whether you want to actively use ChatGPT for your software development.

Pros: Acceleration of idea generation and problem solving

A key argument for using ChatGPT in software development is the model’s ability to quickly generate ideas and help solve problems. Developers can ask questions or describe problems and immediately receive suggestions and approaches to solving them. This can accelerate the creative process and open up new perspectives. As they say so aptly: time is money. Plus point: ChatGPT.

ChatGPT’s ability to generate source code snippets is often described as another advantage. Programmers can search for specific functions or implementation examples and use the generated code as a starting point. This can be particularly useful if they are not so experienced in a particular area or if they need to automate repetitive tasks. Repetitive tasks are no fun: 2:0 for ChatGPT.

Cons: Lack of control and quality

Despite the acceleration of ideation and problem solving, there are serious concerns about the use of ChatGPT in software development. A major criticism is the lack of control over the content generated. ChatGPT can make suggestions, but the quality and relevance of the ideas generated can vary widely. Developers run the risk of receiving low-quality code that can lead to significant problems later. Minus point: ChatGPT.

Another problem lies in adhering to clean code principles or security standards. AI-based tools like ChatGPT have no knowledge of a project’s specific requirements or underlying security issues. Using generated code without careful review could therefore lead to serious security vulnerabilities. And already the score is only 2:2.

Pros: Support for documentation and communication

Using ChatGPT can help with documentation and communication within a development team. Developers can get clear and understandable explanations for complex concepts they need to explain to other team members or stakeholders. This can facilitate collaboration and reduce misunderstandings.

In addition, ChatGPT can help to create technical documentation or user manuals. By generating easy-to-understand content, programmers can save time and focus on other important tasks. ChatGPT takes the lead again: 3:2.

Cons: Lack of domain and contextual knowledge

A key disadvantage of ChatGPT is its limited capability in terms of domain knowledge and contextuality. Software development often requires specialised knowledge and understanding of the specific requirements of a project. ChatGPT cannot provide these deep insights and could therefore produce inappropriate results.

The lack of ability to understand the specific system context may also mean that generated responses or proposed solutions are not fully relevant. In the favourable case, this only leads to discussions; in the unfavourable case, it becomes very costly, especially if problems are only discovered at a later point in the project. 3:3 and the game is slowly tipping.

Another way of approaching the controversy

Another way to approach the controversy over the use of ChatGPT in software development is to ask: What distinguishes a good developer from a less good developer?

  • A good developer can write clean, efficient and well-structured code. And he can also read and understand appropriate code.
  • Good developers have internalised the basics of algorithms and data structures, and can thus develop useful solutions to complex problems.
  • Good developers have in-depth experience with relevant frameworks, libraries and development tools, so you can work effectively. While time is money, working effectively saves both: time and money.
  • A good developer understands software architecture principles and can create applications with a clear, scalable design.
  • Good developers can break down complex problems into smaller, manageable pieces and develop step-by-step solutions.
  • Good developers are willing to continuously educate themselves to keep up with the latest technologies and trends. Of course, this also means that you need to get to grips with ChatGPT or similar tools in order to recognise how selective meaningful cooperation can work.
  • Given the ever-changing technology landscape, good developers can easily adapt to new tools, languages and paradigms.
  • Good developers write readable, well-documented code that is easy to maintain and extend. (To be fair, this is something that is often claimed in practice, but is not always the case).
  • Good developers can work well in a team, communicate effectively, share their knowledge and accept constructive criticism. In the lived practice of software development as a service, this is an incredibly important point, because developers from different companies often work together on a project.
  • Good developers take the user experience into account and design the user interface intuitively and appealingly.

Overall, then, good developers are characterised by a combination of technical ability, problem-solving skills, willingness to learn, team spirit and commitment to code quality. It is important to note that these qualities require continuous development and adaptation in an ever-changing environment. Does ChatGPT provide this as well? Wholly or partially? If it offers this only in part, is ChatGPT a good developer?

Killer arguments against the comprehensive use of ChatGPT in software development

Is it still 3:3 or is ChatGPT already clearly behind?

I believe there are two key arguments that clearly speak against the extensive use of ChatGPT in software development:

1. liability

Do you take responsibility – internally or externally – if you drive a development to the wall by using ChatGPT? Are you liable for any damages? ChatGPT does not:

“ChatGPT is not liable for the development of software or the results obtained through its use. ChatGPT is a tool designed to generate texts and respond to questions. It can assist in brainstorming, understanding concepts and providing information, but it does not take responsibility for the actual implementation or consequences of the software developed.”²

2. empathy

Do you know the biggest challenge in a software development project? It’s the people! You and me, client and development partner, representatives of technical departments and service providers.

The development of software is often not the biggest challenge, it is the common understanding between the parties involved. Well-documented customer specifications, neatly maintained backlogs, cyclical agreements and defined procedures – all these are important ingredients for successful software development.

  • Without empathy between those involved,
  • without a mutual approach,
  • without understanding the situation of those involved,
  • without the ability to read between the lines,
  • without active listening and questioning,

software development will very rarely be successful. It’s almost a bit unfair to accuse an artificial intelligence of this – but it’s what makes us humans in general and also as software development service providers.

Conclusion

So where does the controversy stand? 3:5? If you include the two killer arguments with particular weight, might it be 3:10?

Regardless of what the score is, regardless of how you evaluate the various pros and cons, overall the discussion around the use of ChatGPT in software development shows that there are both pros and cons. The acceleration of idea generation and the support in documentation are undoubtedly attractive aspects. However, it should not be overlooked that the lack of control over the generated content, the lack of domain knowledge and the potential uncertainty about the quality of the generated solutions are serious risks.

Therefore, if you decide to use ChatGPT, you should take a cautious approach. It is important to carefully review the generated content, critically evaluate the recommendations and ensure that the generated solutions meet the standards and requirements of the project in question.

 

Notes:

Throughout this post I have used a trick: I use the term ‘comprehensive use’. It certainly makes a big difference whether I use the tool selectively – e.g. as an idea generator – or whether I use it to replace one or even several software developers. I can understand the selective use, after all ChatGPT also scored 3 points, but the comprehensive use is beyond me. Please forgive me for the nitpick; as announced, I’m probably not entirely objective. 😉

And I may also be subject to Amara’s Law, which states that people tend to overestimate the impact of a technology in the short term and underestimate it in the long term.

If you like the post or want to discuss it, feel free to share it with your network.

[1] For sure, we are currently just seeing the beginnings of the possibilities that AI will offer us in the future. In terms of the hype cycle, we as a society are likely to be on our way to the peak of inflated expectations after the technical trigger.
[2] This statement comes from ChatGPT and answers the question of whether ChatGPT is liable when software is created using the tool.

Michael Schenkel has published other articles in the t2informatik Blog, including

t2informatik Blog: Software development made easy

Software development made easy

t2informtik Blog: It service provider Berlin

It service provider Berlin

t2informatik Blog: Learning to code in schools

Learning to code in schools

Michael Schenkel
Michael Schenkel

Head of Marketing, t2informatik GmbH

Michael Schenkel has a heart for marketing - so it is fitting that he is responsible for marketing at t2informatik. He likes to blog, likes a change of perspective and tries to offer useful information - e.g. here in the blog - at a time when there is a lot of talk about people's decreasing attention span. If you feel like it, arrange to meet him for a coffee and a piece of cake; he will certainly look forward to it!​