One of the most common mistakes I have seen new architects do 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 about the goals that the new system needs to satisfy. Not only that, you need also to work closely and in a regular basis with the domain expert(s) to have a better understanding of 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 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
  • When you are new to a domain, it is very useful to compile a short glossary of domain terminology.
  • 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