I came across an interesting quote in an article about the development environment architect that caught my attention.
The life of a software architect is a long and rapid succession of suboptimal design decisions taken partly in the dark.
I think this really highlights the fact that the role of an architect is part science and part art and you need to balance these two into the process of designing a solution. Two areas that this presents challenges to the architect is in the areas of communicating their design and secondly in being able to shift between the low level design decisions but also keeping an eye on the big picture.
As an architect you are constantly learning new things about the environment that your solution must live in as well as strategic directions that your solution should be cognisant of. As paths present themselves and paths are blocked your design evolves based on these forces, sometimes into a state that maybe doesn’t make sense. At points along the design process it is important as an architect to stick your head up and have a look at the overall solution in the context of the business problem it is trying to address and see if it makes sense i.e. could you explain it to someone and they would agree with your design?
As a design evolves you need a maintain a current view of the design that makes sense, by this I mean that the reason that each design decision has been made is documented. The best way to tune your design is to get feedback from people about the design in the context of their domain (e.g. security or application domains) to identify and address any issues that need to be considered in the design. As you need to be getting feedback on your design from a very early stage you need to make sure that the journey is documented as well as the current state so that people can see why you have made the decisions you have made. Including this information is important if you want to make sure that you don’t revisit design decisions over and over again in your discussions.
Yes being an architect is a high stress environment where you are measured by the quality of your design but are expected to include all factors, known and unknown in your design.