Good questions architects should ask

I was inspired by the O’Reilly Software Architecture Conference New York 2018 talked on topic of developing a chaos architecture mindset by Adrian Cockcroft (AWS), when he mentioned his best role as architecture in his early career was not to define the standard or to tell other people what the architecture should be. Instead, it was to ask awkward questions.

Question 1: what problem are you trying to solve ?

I recalled times when being ask this by my boss when I was the engineer or lead that I often described technical challenges I or the team was facing (e.g. building or installing framework etc.). It was wrong answer. A good answer is something involving users or business needs. It helps sharpening thinking as well as the way you could communicate the problem more effectively.

Following are list of remaining questions mentioned in the talk and important points being tagged along

Question 2: What is the user need ?

Question 3: What does the value chain look like to support the user needs ?

  • What’s your time-to-value?
    • Days
    • Months
  • How is the value chain evolving ?
  • Have you heard of Simon Wardley ?
    • Wardleys maps is used to visualize evolution and innovate further up the value chain
      • What is your position and movement on the maps ?

Question 4: What should your system do when something fails ?

  • Stops ? Because it can’t do something safely
  • Carry on with reduced functionality ?

Question 5: If a permissions look up fails, should you stop or continue ?

  • Permissive failure, what’s the real cost of continue ?
  • See Memories, Guesses and Apologies by Pat Hellad

Question 6: Do you have a backup datacenter ?

  • How often do you failover apps to it ?
  • How often do you failover the whole datacenter at once ?
  • A fairy tale
    • Once upon a time, in theory, if everything works perfectly, we had a plan to survive the disasters we thought of in advance.
    • How did that work out ?
  • Common problems. Things happened
    • SaaS vendor:
      • Forgot to renew domain name….
    • Entertainment site:
      • Didn’t update security certificate and it expired
    • Finance company
      • Datacenter flooded in hurricane Sandy

You can’t legislate against failure, focus on fast detection and response (Chris Pinkham)

Question 7: Do you have a defined architecture ?

  • Are processes and roles documented ?
  • Are documents up to date ?
  • Do people follow the documented process ?
  • Is the architecture implemented as designed ?

Question 8: How do you try to make people comply with your architecture ?

  • Authoritarian High Modernism Workers should do what they’re told
  • Taylorism Management as an exact science
  • Synoptic Illegibility
    • If you can’t write down exactly what really happens, you can’t write a synopsis and the architecture is ad-hoc and messy

Book recommended

  • The Safety Anarchist – Sydney Decker
  • Drift Into Failure – Sydney Dekker
  • Release It ! – Michael Nyberg

Hope you find it helpful. Until we meet again, happy coding and questioning !

Cheers.
Mike