Last updated on March 1st, 2023 at 11:14 pm

One of the most common mistakes I have seen new architects make is designing systems without having a high-level understanding of the features that the software should provide to the end users.

In order to design software, you need to know the goals the new system needs to satisfy. Not only that, but you need also to work closely and regularly with the domain expert(s) to better understand the requirements. Indeed, the requirements drive the architecture.

If you ever find yourself focusing only on the technical side, without really understanding who is going to use your application and what it is supposed to do, then probably you will NOT meet the client’s expectations.  

Thinking like an architect requires understanding the business requirements and the goals of the system you are building.  

How to avoid this mistake?

  • Work closely with the domain expert(s) from the beginning of the project
  • Make sure to understand the business goals the new system will achieve
  • Identify the users of the new system and their roles
  • Compiling a short glossary of domain terminology is very useful when you are new to a domain.
  • It is useful to represent the core requirements (use cases) in diagrams (activity and sequence diagrams). This will help you to better understand the requirements and share and validate your understanding with the domain expert. 
About the Author

My name is Adel Ghlamallah and I’m an architect and a java developer.

View Articles