Software Architects 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, photorealistic images or music from a text prompt. It is also possible to generate source code and documentation. In our opinion, this will have a major impact on software development 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 intelligence could be a silver bullet.
Figure 1: Collaboration between software architect and AI assistant in the cartoon
What Does a Software Architect Actually Do?
A software architect is a role in close collaboration with the software development team and stakeholders. A software architect designs the structure of software systems and makes fundamental decisions about the interaction of the components. They are responsible for the conceptual development of software applications. Their tasks begin with the design and extend through the implementation of the systems to deployment. In particular, he is responsible for the technological implementation, prioritization 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 responsible for the functional requirements.
Figure 2: The six core activities of the software architect
The International Software Architecture Qualification Board (iSAQB) has set itself the goal of standardizing the training of software architects in Europe. As a non-profit organization, the iSAQB manages and develops the certification schemes for the iSAQB Foundation/Advanced/Expert level.
The iSAQB defines six core activities for software architects:
- clarification of requirements and boundary conditions (constraints)
- design of structures
- design of cross-sectional concepts
- evaluation of architectures
- communication of architectures
- monitoring the implementation
These core activities do not stand alone, but are closely interlinked. In the context of digitalization and the introduction of AI into the development process, various possibilities for tool support for architects 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 Applications 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 development, but you shouldn’t just accept it uncritically. 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 documentation 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-documentation for a class with 200 lines. This can be very helpful.
If we take a look at six standard activities of software architects, we can make an assessment for each category:
- Clarification 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.
- Design of structures: Here, the AI assistant can support the initiation and execution of POCs, as well as for the final structures, and generate source code and documentation.
- Design of cross-sectional concepts: Here the AI Assistant can assist in the creation of concepts and documentation (including diagramming).
- Evaluation of architectures: Here the AI assistant can support the creation of checklists and other documents.
- Communication of architectures: Here, the AI assistant could translate into a ubiquitous language, for example.
- Implementation support: Here I currently see the possibility of generating source code and generating interface contracts using Open API by the AI assistant.
The analysis capabilities and communication 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 architects and artificial intelligence can learn from and benefit each other.
Overall, the AI assistant can therefore currently support five out of six core activities 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 statistical probabilities and has no deeper understanding 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 coexistence 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 intermediate results to build the AI model. A special form of this collaboration is the Socratic Dialogue, a philosophical method of discourse that aims to encourage reflection, self-reflection and the examination of one’s own norms and prejudices, 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 collaboration considered below are often based on this form of dialog.
Figure 4: From human in the loop to Socratic dialog
When working with AI assistants, 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 summarization of documents.
- AI to support the preparation and post-processing of architecture reviews.
- AI as support for the post-documentation of existing systems.
- AI as support for the classification 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 identification of weak requirements (i.e. incomplete, interpretable or contradictory AFOs).
- AI as support for checking whether patterns are correctly implemented or DDD requirements are correctly adhered to (e.g. the correct ubiquitous language in the bounded context).
- AI as support for suggestions as to which of the options under consideration could be used for a POC.
-
Conclusion
Artificial intelligence is a whole bundle of valuable tools that can simplify our day-to-day work as architects. There are many possibilities, 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 intelligence (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 intelligence and ethics — digital ethics.
Sources
Der perfekte Leitfaden für KI Chatbots in Unternehmen https://www.youtube.com/watch?v=SjoXy9RDyiw
Generative 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 translation of ITech Progress’ blog post “Softwarearchitekten und KI-Systeme: Herausforderungen und Möglichkeiten”. Here you can find the original blog post in German.