“When architects are disconnected from understanding the flow of business value, it raises costs both in wasted technical effort and in loss of opportunities presented by changes in the environment.” — Martin Fowler
One of the most common mistakes I have seen new architects make is designing systems without taking the time and putting sufficient effort into understanding the features that the software should provide to the end users. It is rooted in our previous life as developers, and understanding the requirements hasn’t been a priority.
The architect’s primary role is to build an architecture that meets the business requirement. Therefore, it is critical for architects to understand the business goals and drivers of the project and how they reflect them in the architecture.
The following are the strategies I use to help me get on the right track and quickly learn the business domain I am working on:
– Work with the domain experts, the business analysts, and the product owners from day one of the projects and build a collaborative relationship with them.
– Ask the domain experts in your project about the critical business requirements documents. Your first goal is to get a high-level understanding of the requirements and the business objectives of the system you are building before diving into the details.
– Come prepared for your meetings. I see this happening frequently: architects and developers attend meetings where they ask the same business questions.
– Ask for a list of the acronyms used in your business. Keep your lists of acronyms close and enrich them when you discover new acronyms. After a few weeks, you will be amazed at how well you understand the terminology used during the documentation and meetings.
– Taking notes and reviewing them has been a priceless technique to get my head around the new projects. What makes the difference is taking notes and reviewing them to understand and retain the material.
But to what extent do you need to learn and understand the domain business?
The short answer is you are not supposed to become a domain expert, but the more you know, the better it is. It also depends on the project and the availability of domain experts in your project. For your first experience working as an architect, I recommend working in a domain you know, which may save you time and effort.
The best architects are the ones who have the required technical skills and know well the business domain they are working in. It is not just my opinion; I heard this from other managers and architects.