100 Things a Software Architect Should Know
A very short list of things a software architect should know:
- The zeros
- The nils
- The ones
- The undefineds
- The infinity
- car and cdr
- Smells
- Echoes
- Roundtrips
- Daylight Savings
- Latencies
- Varieties of coffee
- Stockhausen
- How to authenticate
- How to authorise
- How to memoize
- Talk to ducks
- Write in Braille
- Admire hexagons
- Numbers
> 41 and < 43
- Rigorous negotiations
- Remember that hope is not a strategy
- Carpal Tunnel Syndrome
- Prime factorisation
- Be polite to your users
- Be thankful to contributors
- The aesthetics of OpenBSD release songs
- What it means to be code complete
- Code is never completed
- The law of diminishing returns
- It really, doesn’t have to be crazy at work
- It’s not urgent because someone says so
- Not all operations can be reversed
- Be curious what the user thinks and feels
- Optimising safely
- How to sort and shuffle stuff
- Deploy - then forget - is not neglect
- Build systems, not apps
- Poetry is literate programming for human emotions
- Write user stories
- Unblock others
- Mentor the willing
- Practice open-source as much as recycling
- Be patient
- Store stuff in the most appropriate medium
- Send stuff over the most appropriate network protocol
- When code is fuel
- When code is mortar
- When code is brick
- Not everything is an object
- Talk to actors
- Try to solve the right problem
- Which problems can be solved by humans
- Which problems can be solved by computers
- Who Jeff Dean is and how he would solve your problem
- Code, leads to more code, not solutions
- To talk about killing children, discreetly in public
- Identify big stones
- Get plenty of rest
- Relays
- Be alarmed for 0days
- Plan capacity
- Prepare for disaster
- See the topologies in the starry night sky
- How does the user feel when the code is right
- Remember that Lego™️ is made from plastic
- How to draw shapes on a board
- How to tell if your colleague is struggling from burn out
- You also need timeouts
- Trust people to deliver based on their capabilities, not titles
- Listen to static
- Provide meaningful documentation for your software and systems
- Collect sea shells
- How to get rid of dust
- When to look for the shortest path
- How create a plan for more than 10 people to follow
- Text editor modes
- How to onboard a user to a journey
- New and shiny doesn’t mean useful
- Mentally filter noise
- Pick cherries
- Some lakes are made of data
- Identify the cathedrals and the bazaars in social groups
- The difference between an aquarium and the open sea
- Rowing, shipwrecks and coredumps
- Give up on dead projects
- The importance of workspace ergonomics
- Digest everflowing symmetries through numbers and words
- Treat the
<body>
with as much respect as the<head>
- Avoid dividing by zero, even if you’re a small practical horse
- Many different types of hashes
- Pomodoro is not just a sauce
- Avoid using the work “just”
- How to identify a GNU at the zoo
- Notice turnstiles and be curious about traffic signalling and flow
- When to benchmark
- When to test
- When to cheat
- To not trust clocks
- Identify system boundaries
Inspired by Michael Sorkin’s - 250 things an architect should know.