Skip to content
Software Architects and AI Systems

Software Archi­tects and AI Systems: Challenges and Opportunities

„A good software architect is like a werewolf: Afraid of silver bullets.“

(loosely based on Jochen Mader (codepitbull))

 

Since 2023, there has been a real hype around large language models (LLMs) and AI chatbots, such as ChatGPT. With such tools, users can not only generate high-quality texts, summaries, photo­re­al­istic images or music from a text prompt. It is also possible to generate source code and documen­tation. In our opinion, this will have a major impact on software devel­opment and have a lasting effect on IT. In this article, we examine how an AI tool can support the work of a software architect and whether artificial intel­li­gence could be a silver bullet.

Figure 1: Collab­o­ration between software architect and AI assistant in the cartoon

 

What Does a Software Architect Actually Do?

A software architect is a role in close collab­o­ration with the software devel­opment team and stake­holders. A software architect designs the structure of software systems and makes funda­mental decisions about the inter­action of the compo­nents. They are respon­sible for the conceptual devel­opment of software appli­ca­tions. Their tasks begin with the design and extend through the imple­men­tation of the systems to deployment. In particular, he is respon­sible for the techno­logical imple­men­tation, prior­i­ti­zation and compliance with quality criteria (e.g. according to ISO25010) and constraints. He is therefore the “technical” counterpart to the product owner (PO), who is respon­sible for the functional requirements.

Figure 2: The six core activ­ities of the software architect

 

The Inter­na­tional Software Architecture Quali­fi­cation Board (iSAQB) has set itself the goal of standard­izing the training of software archi­tects in Europe. As a non-profit organi­zation, the iSAQB manages and develops the certification schemes for the iSAQB Foundation/Advanced/Expert level.

The iSAQB defines six core activ­ities for software architects:

  1. clari­fi­cation of requirements and boundary condi­tions (constraints)
  2. design of structures
  3. design of cross-sectional concepts
  4. evalu­ation of architectures
  5. commu­ni­cation of architectures
  6. monitoring the implementation

These core activ­ities do not stand alone, but are closely inter­linked. In the context of digital­ization and the intro­duction of AI into the devel­opment process, various possi­bil­ities for tool support for archi­tects through AI are emerging. However, the AI tools must meet a number of legal requirements.

Figure 3: What is AI / ML really?

 

AI in Action: Possible Appli­ca­tions of AI for Software Architects

AI systems like ChatGPT can do amazing things today. For example, they can generate executable code that you can adapt to your needs in dialog with ChatGPT. This is a great devel­opment, but you shouldn’t just accept it uncrit­i­cally. Do it the way you are used to from your colleague who sends you a pull request: do a critical code review.

The AI tools provide you with a colleague who is happy to support you with your architecture work. For example, they can help you create a proof of concept (POC) or documen­tation in plantUML. However, you can also go looking for architecture-relevant requirements in requirements documents with them or simply ask what the code actually does in the case of tedious post-documen­tation for a class with 200 lines. This can be very helpful.

If we take a look at six standard activ­ities of software archi­tects, we can make an assessment for each category:

  1. Clari­fi­cation of requirements and constraints: Here, the AI assistant can assist in sifting through the requirements documents and identify constraints. A search for architecture-relevant requirements would also be possible.
  2. Design of struc­tures: Here, the AI assistant can support the initi­ation and execution of POCs, as well as for the final struc­tures, and generate source code and documentation.
  3. Design of cross-sectional concepts: Here the AI Assistant can assist in the creation of concepts and documen­tation (including diagramming).
  4. Evalu­ation of archi­tec­tures: Here the AI assistant can support the creation of check­lists and other documents.
  5. Commu­ni­cation of archi­tec­tures: Here, the AI assistant could translate into a ubiquitous language, for example.
  6. Imple­men­tation support: Here I currently see the possi­bility of gener­ating source code and gener­ating interface contracts using Open API by the AI assistant.

The analysis capabil­ities and commu­ni­cation options of AI systems are currently still limited. The focus of the software architect will therefore change, but the profession will remain the same. However, software archi­tects and artificial intel­li­gence can learn from and benefit each other.

Overall, the AI assistant can therefore currently support five out of six core activ­ities of a software architect. However, this is purely a matter of support options — an AI does not take the critical thinking and checking of results away from an architect. We must not forget one thing: An AI works with statis­tical proba­bil­ities and has no deeper under­standing of what it is doing. This is still the case today at least, but could change in the future. So today, an AI is something like an apprentice that needs to be actively trained before being deployed.

How can we currently best use our AI assistant to support our architecture work? The coexis­tence of humans and AI is often referred to as “human in the loop” (HITL). The human should ensure that the AI only uses high-quality data and inter­me­diate results to build the AI model. A special form of this collab­o­ration is the Socratic Dialogue, a philo­sophical method of discourse that aims to encourage reflection, self-reflection and the exami­nation of one’s own norms and preju­dices, and to promote independent thinking. Just as the philosopher Socrates gained knowledge by asking specific questions around 450 BC, a software architect asks the AI questions and assesses and verifies the AI system’s answers.  As in a Socratic dialog, the query is refined further and further until the architect is satisfied with the results or breaks off. The forms of collab­o­ration considered below are often based on this form of dialog.

Figure 4: From human in the loop to Socratic dialog

 

When working with AI assis­tants, the following practices have proven successful to date:

      • AI as a sparring partner in architecture work to break down large problems into smaller, manageable problems and then resolve them.
      • AI as a support during the review, creation and completeness check of software architecture documentation.
      • AI to support the capture and summa­rization of documents.
      • AI to support the prepa­ration and post-processing of architecture reviews.
      • AI as support for the post-documen­tation of existing systems.
      • AI as support for the classi­fi­cation of requirements and as a sniffer dog for architecture-relevant requirements.
      • AI to support the derivation of models from requirements (e.g. MDA/MDSE).
      • AI to support the identi­fi­cation of weak requirements (i.e. incom­plete, inter­pretable or contra­dictory AFOs).
      • AI as support for checking whether patterns are correctly imple­mented or DDD requirements are correctly adhered to (e.g. the correct ubiquitous language in the bounded context).
      • AI as support for sugges­tions as to which of the options under consid­er­ation could be used for a POC.

 

Conclusion

Artificial intel­li­gence is a whole bundle of valuable tools that can simplify our day-to-day work as archi­tects. There are many possi­bil­ities, but there are also good reasons to be critical. We need to reassess how we spend our time. What does it mean to be a software architect, a developer, a scrum master, a product owner, a tester or a requirements engineer? It starts with self-reflection. How do we spend our time? What are our rituals, roles and artifacts? What needs to be questioned, changed or re-evaluated as we enter the age of AI?

So let’s remain cautious and see artificial intel­li­gence (AI) for what it is: a good tool that can take a lot of work off your hands, but which does not replace critical thinking and is not a silver bullet. The next article in our series will deal with another AI topic: artificial intel­li­gence and ethics — digital ethics.

 

Sources

Der perfekte Leitfaden für KI Chatbots in Unternehmen  https://www.youtube.com/watch?v=SjoXy9RDyiw

Gener­ative AI in a Nutshell — how to survive and thrive in the age of AI (Henrik Kniberg)  https://www.youtube.com/watch?v=2IK3DFHRFfw

What Is an AI Anyway? | Mustafa Suleyman | TED  https://www.youtube.com/watch?v=KKNCiRWd_j0

—–

This is a trans­lation of ITech Progress’ blog post “Softwarearchitekten und KI-Systeme: Heraus­forderungen und Möglichkeiten”. Here you can find the original blog post in German.

Share this article:

Related Posts

Stay Up-to-Date with the iSAQB® Newsletter!

Scroll To Top