Fundamentals of Design Thinking
We design for people & with people. When designing, we must think about the stakeholders, the end users, the programmers, the testers, and the managers. Architects do not operate in a silo with no input or feedback, they work in a team.
Design the architecture for the high-priority quality attributes and then leave all other design decisions for downstream designers and later thought. If the decisions do not directly influence the quality attributes or reduce risk, they are more designs than architecture.
Look at what has already been built and explore these patterns and past designs. What can we learn from them? How can we improve them?
If we want to share our design and architecture, we need to make it tangible through drawings, prototypes, models, and other tangible representations. This then helps the Human Rule in helping humans understand the architecture.
Post inspired from: Design It! From Programmer to Software Architect by Michael Keeling.