Technology and Development
Managing Software Architecture Q&A: How can smart architecture drive better software outcomes?
Technology and Development
Managing Software Architecture Q&A: How can smart architecture drive better software outcomes?
Dr Jasmin Jahić answers your questions, from how to communicate software architecture decisions to stakeholders, to using AI effectively, as well as what you can expect from his eight-week course, Managing Software Architecture.
“The important skill of an architect isn’t just knowing how to make architectural decisions, it’s understanding the trade-offs. Because there is no perfect decision. You’re gaining something, and you're risking or sacrificing something,” shares Dr Jasmin Jahić, Director of Studies in Computer Science at the University of Cambridge, in a recent webinar.
"To be able to argue why this decision is adequate, while acknowledging that there are risks – that’s the skill.”

Dr Jasmin Jahić has a background in robotics and specialises in software systems architecture, application of AI in software engineering, and concurrent software systems.
His online course, Managing Software Architecture, takes you through a journey of different design solutions, documentation techniques, AI tools and communication methods, and how you can integrate them into your own work.
"The course is positioned between the business and technical sides of the spectrum. Taking the business problems that you're aiming to solve and translating them into technical solutions,” he adds.
Could you share some stakeholder communication techniques that have worked in the past, especially in large organisations?
Dr Jasmin Jahić: When it comes to the communication techniques, we focus mostly on diagrams because we’ve observed that visual representation of the issue of the challenges of the design seems to be the most effective.
As an architect, we empower you to understand who the main stakeholders are, and what their needs are. Also, to adjust the architectural views and modelling profiles and create diagrams with the levels of details those stakeholders can understand, including the graphical elements.
So, you have one view on the system that marketing can understand. Then another one that, for example, is only clear to developers. But then when you have meetings between these different stakeholders, you create diagrams where all their concerns are taken into account, in language they can understand. So they can have an informed conversation.
How do you think AI can impact software architecture?
Dr Jasmin Jahić: That’s a big question now in industry. So, there are different dimensions to this question. The first one is how AI will impact everyone in software engineering industry.
We have a dedicated course for that, but when it comes to this course, what we do mention is what the skills are that architects will need in the age of AI.
What are some of the actions that architects can use AI to assist with? What are some of the actions that are becoming obsolete, and what are the new challenges that software architects are facing when they start using AI?
One of the things that we emphasise is the minimum set of skills that you need as an architect so you can use AI in an efficient manner. When I say efficient, that means that these days you can solve many issues with AI, but the problem is, are you creating more work for someone else?
What do you use as a diagram model?
Dr Jasmin Jahić: If you mean the tools to create the diagrams, we recommend a couple of tools. If you’re talking about diagram models, in the sense of different views, we do mention models like C4.
There are a lot of techniques, some of them are used widely in practice, some of them are academic, but what we help with in the course is learning to understand them, how they work, and then create your own customised views for architecture.
And why customise? So the documentation that you create is beneficial, so you don't create waste, so you can easily maintain it, and you get the most out of it.
What’s the main learning outcome of taking this course?
Dr Jasmin Jahić: A key aspect is that it helps you with making decisions. This can be quite a tricky thing as an architect. The main point of our anxiety is: “If I make an architectural decision, is it the right one?”
Architects often prefer the term ‘adequate’, because all decisions come with different trade-offs. We help by giving you the techniques to compare these decisions and predict the outcomes.
And then there is this whole thing of software architecture documentation. In the course, we talk about how too much documentation can be as bad as not having any at all. That you should focus on documentation that is beneficial and can be maintained efficiently.
The maintenance and creation of that documentation can be integrated into your agile scrum development lifecycle and used for communication between stakeholders.
Another thing is making sure that software is of an adequate quality. Often the software contains the functionalities that we are trying to achieve, but sometimes there is a quality issue, either internal quality with the maintainability, or external quality such as performance or security issues.
Overall, we support you to create explicit documents, diagrams and practices to make sure that everyone understands each other in the project.
What are the minimum prerequisites in terms of knowledge to attend this course? I'm a project manager without an academic background in software development or software architecture.
Dr Jasmin Jahić: Your background sounds like a good match. If you’re a project manager and you’re managing software teams, but you don’t have a formal background in software engineering, you still will be able to follow the course.
If you're a project manager in an unrelated field you might struggle with some of the terms, but we cover that in our first module, which is about getting everyone on the same page. So it should still be OK for you.
Could you please share what benefits this course offers in terms of maintaining legacy software and supporting migration to a new system?
Dr Jasmin Jahić: This course can help architects identify the key architectural decisions that need to be captured in an old legacy system. To capture them and make sure the new system is compliant with those decisions.
In addition to that, it helps you identify relevant stakeholders and make sure that you're able to extract the knowledge that you have. We have templates and practices for this, so there is a smooth transition.
If you have sources of data, there's a small transition from the legacy to the new system. The challenge that it doesn't solve, and I don't think anyone really can solve, is if you do not have that data.
If you don't know anything about the legacy system, you can recommend some of the tools that help you to analyse and try to extract the architecture decisions. We can help you try and think like the person who designed that system in the first place, but then that's just potential empirical statistical knowledge.
Learn more about Managing Software Architecture, Dr Jasmin Jahić’s eight-week online course designed to help you integrate software architecture management and considerations into your daily work.
