Professional Documents
Culture Documents
Mindset
The architect:
Responsibilities
To decide on architectural concerns
The most obvious responsibility. Not everything requires an (often expensive and time-
consuming) architectural decision, though. We don't want to over specify or to practice Big
design upfront. Decisions on local topics such as programming languages or frameworks are
better left to the development team, since those concerns barely scratch architectural concerns.
A more relevant part of the job consists on assessing Software Architecture > Trade-offs,
choosing what's best given what we know so far. Every choice will bring positive and negative
impact. This requires business knowledge, technical breadth and extensive discovery, since
Software Architecture characteristics are hugely contextual and can only be properly guided by
enterprise goal.
Essentially, to ensure the architecture is performing well (and to constantly tune it, because
Architecture is organic), the architect must live and breathe their creation. Is tested code being
deployed often? Are developers complaining about architecture decisions? Why? Do they
understand the architect's motivations?
If the current architecture does more harm than good, there's no point on respecting it. The
architect needs feedback on the architecture, and living it along with the development team is
the most realistic way of discovering its weaknesses and virtues to ensure it is being properly
applied.
Getting too attached to the past is as dangerous as ruthlessly implementing the brand-new
JavaScript framework that gets released every day. The same principle applies to old problems
that are unlikely to happen again ("the frozen caveman", who wakes up in the 21st century and
develops a Bluetooth enabled dinosaur alarm).
Architecture decisions often face resistance, especially from business stakeholders or managers
unable to naturally understand the value of technical structure. Instead of complaining, it's the
architects' role to articulate and propagate the relevance of their work. Pragmatism is key when
convincing many different people into buying the same idea, working towards the same goal.