Eight expectations (Richards & Ford)

Richards and Ford identify eight core expectations for any software architect, regardless of title or organisation:

  1. Make architecture decisions — define and guide technology decisions (guide, don’t dictate); ask whether a decision guides teams toward right choices or makes the choice for them.
  2. Continually analyze the architecture — assess architecture vitality (how viable is a 3+ year-old architecture today?); watch for structural decay.
  3. Keep current with latest trends — architect decisions are long-lasting; understanding trends ensures decisions remain relevant.
  4. Ensure compliance with decisions — continually verify development teams are following decisions and design principles; violations degrade architectural characteristics.
  5. Understand diverse technologies — not expert in everything, but familiar with a wide variety; focus on technical breadth over depth (see knowledge pyramid).
  6. Know the business domain — understand the business problem, goals, and requirements; communicate credibly with C-level stakeholders.
  7. Possess interpersonal skills — leadership, facilitation, teamwork; “No matter what they tell you, it’s always a people problem” (Weinberg); leadership skills are at least half the job.
  8. Understand and navigate organizational politics — almost every architectural decision will be challenged; negotiation skills are essential; architects must justify and fight for most decisions.

Thinking like an architect

See architectural thinking for the full treatment of: architecture vs design spectrum, technical breadth vs depth, trade-off analysis, Frozen Caveman antipattern, and balancing hands-on coding.

Resources