The Well-Rounded Architect by Patrick Kua

Rocky Warren
Rocky Warren
December 31, 20202 min read
  • Link to video
  • "Architecture represents significant design decisions that shape a system, where significant is measured by cost of change." Grady Booch
  • Responsible for and nurture architecture
  • Rated from 1 to 5 (just starting, improving, capable, well-known, industry leader),
    • Leader - consistency, find alignment, shepard everyone in right direction
    • Developer - first hand observer, experience side-effects, discovering system constraints, sit with team
    • Systems focused - build systems, not software, deployability, monitoring, error triaging, repeatable, reliable
    • Entrepreneur - cost/benefit, fail fast
    • Strategic technologist - build your own tech radar
    • Communicator - reach/differentiation/cost/benefit/investment/risk/return/opportunity when talking with those outside eng
  • Make expectations clear up front
  • Ask for opinions and past experience, have brainstorming sessions
  • Put interfaces in components you want to protect from change, implement them in other components, if you accept an interface, should use all methods defined
  • Good architect maximizes number of decisions not made. Keep your options open around decisions having nothing to do with business requirements. These include frameworks, databases, web servers, utility libraries, dependency injection, and the like. Good system architecture makes these ancillary and deferrable, does not depend on those decisions, allows them to be made at latest possible moment, without significant impact.
  • Good architecture allows system to be born as monolith, deployed in single file, then grow into set of independently deployable units, and then all the way to independent services and/or micro-services. Later, as things change, should allow reversing back down into monolith.