How AI Tools Transform Architecture and Processes

Discover how Artificial Intelligence tools can support architects in their work as well as what challenges and opportunities they present for the architecture community.

Emil Holmegaard, PhD | Management Consultant at 7N
#

What can you expect to learn from this article?

  • 1

    Three potential applications of AI tools like Copilot, looking at how they can transform architecture processes.

  • 2

    The challenges and opportunities that AI presents for the architecture community.

  • 3

    How we can leverage the functions of AI tools to create better systems and solutions.

AI tools are revolutionary and disruptive innovations that can change how we work with architecture and its processes. Looking at Copilot as an example, this code generation and completion tool powered by GitHub and OpenAI is not a replacement for architects but rather a powerful and intelligent assistant that can augment and enhance their work. Copilot can help architects save time, improve quality, and boost creativity by automating, simplifying, and enriching their tasks. At the same time, the tool also requires architects to be more aware, responsible, and critical by verifying, validating, and reviewing its outputs and by ensuring the ethical, legal, and social implications of its use. 

AI to Explain Target Architecture

One of the tasks that architects often face is to explain a target architecture to different audiences, such as developers, managers, clients, or end users. While architecture is most often depicted in a diagram, it is sometimes not enough. Especially when the architecture is complex, abstract, or unfamiliar, creating a written description is useful and sometimes necessary. Such a description can be detailed or complex depending on the audience, which can help them understand the main features, benefits, and goals of the target architecture and allow them to ask questions or provide feedback.

Copilot can help with this task by using its image-understanding capabilities to generate natural-language descriptions of architecture diagrams.

Take this diagram as an example to illustrate how Copilot creates a description of the target architecture:  1. The target architecture is based on Domain-Driven Design (DDD), an approach to software development that focuses on the core domain and business logic and uses a common language and model to communicate and collaborate with the stakeholders (Evans, 2004). 2. The architecture uses a microservices architecture style, which is a way of structuring the system into smaller and independent units with well-defined interfaces and responsibilities that can be developed, deployed, and scaled independently (Ford et al., 2017). 3. The architecture aims to improve the productivity, quality, and creativity of the developers, by reducing the amount of manual coding, debugging, and testing, and by providing intelligent and personalized code suggestions. The architecture also enables the developers to collaborate and communicate more effectively by using Copilot to generate documentation, comments, and explanations for their code.

AI to Suggest First Draft of Requirement Specifications

Another task that architects often face is suggesting the first draft of requirement specifications based on the inputs from the end users and other stakeholders. This task can be challenging, especially when the inputs are vague, incomplete, inconsistent, or conflicting. A good requirement specification should be clear, concise, complete, consistent, and testable, but sometimes, these qualities are hard to achieve.

Copilot can help with this task by using its natural language and code understanding capabilities to generate requirement specifications from user stories, scenarios, or design thinking sessions. This requirement specification can help the architect define the scope, functionality, and quality of the system, as well as verify and validate it with the end user and other stakeholders. Copilot can also generate different formats or styles of requirement specifications, depending on the standards and conventions of the project.

AI to Do a Risk Mapping - Pros and Cons for Architecture Decisions

A third task that architects often face is to do a risk mapping or pros and cons analysis for architecture decisions based on the trade-offs, constraints, and uncertainties of the system. This task can be demanding, especially when the decisions are complex, interdependent, or controversial.

A good risk mapping analysis should be objective, comprehensive, and balanced. Copilot can help with achieving those objectives by using its knowledge and reasoning capabilities to generate a risk mapping analysis for architecture decisions, based on the available information and criteria. This risk mapping - pros and cons analysis can help the architect to evaluate the architecture decision, and to communicate and justify it to the stakeholders. Copilot can also generate different levels of detail or granularity, depending on the depth and breadth of the analysis.

A case in point

  • Architecture decision

    For example, consider the following architecture decision, which is a common format for capturing and documenting architecture choices:

    Decision: Use a microservices architecture for the system.

    Rationale: To improve the scalability, modularity, and maintainability of the system, and to enable the use of different technologies and frameworks for each service.

    Alternatives: Use a monolithic architecture or a service-oriented architecture for the system.

    Copilot can use this architecture decision to generate a risk mapping analysis, such as:

  • Pros of using a microservices architecture

    It allows the system to scale horizontally, by adding or removing instances of each service as needed, without affecting the rest of the system. 

    It increases the modularity and cohesion of the system, by dividing it into smaller and independent units that have well-defined interfaces and responsibilities. 

    It enhances the maintainability and testability of the system, by enabling the continuous delivery and deployment of each service, and by isolating the failures and bugs to a single service. 

    It enables the use of different technologies and frameworks for each service, by decoupling the implementation details from the business logic, and by allowing the best fit for each service’s requirements and characteristics. 

  • Cons of using a microservices architecture

    It introduces the complexity and overhead of managing and coordinating multiple services, such as service discovery, load balancing, routing, configuration, monitoring, logging, and security. 

    It increases the latency and network dependency of the system, by requiring more communication and data transfer between the services, and by exposing the system to network failures and bottlenecks. 

    It requires more skills and resources from the development team, such as the knowledge of different technologies and frameworks, the ability to design and implement distributed systems, and the tools and infrastructure to support the microservices architecture. 

    It may lead to the duplication and inconsistency of data and logic across the services, by requiring the replication and synchronization of data, and by creating the potential for conflicts and errors. 

Copilot is one of many Artificial Intelligence advancements that will benefit and create new opportunities for architecture and processes. It is also a tool that can learn and improve from our feedback and usage. Therefore, it is up to us, as architects, to shape and influence its development and direction, and to make the most of its potential and value.

Sources:

  • Evans, E. (2004). Domain-driven design: tackling complexity in the heart of software. Addison-Wesley Professional.
  • Ford, N., Parsons, R., & Kua, P. (2017). Building evolutionary architectures: support constant change. O’Reilly Media, Inc.
  • GitHub. (2021). GitHub Copilot · Your AI pair programmer. Retrieved from https://copilot.github.com/
About the author

Emil Holmegaard, Ph.D.

Emil has a Ph.D. in Software Engineering and over ten years of experience in software development, architecture, and governance of IT projects. He is a software quality and architecture specialist, a management consultant, and a TOGAF certified architect. His passion for analyzing and exploring challenges areas between advanced technologies and business allows him to solve technical issues and help businesses be more agile and profitable.