One of my developers asked me what was the difference between an
architect and a developer. Given that my architects do some
development and my developers do some design work, it's not
necessarily clearcut.

But it didn't take me long to explain that the primary difference is
the approach. A developer is firstly looking for the solution that
will make a feature work (making sure that error paths are handled).
This involves understanding data structures and algorithms and
deciding what to do for error modes.

A note from this newsletter's sponsor

An architect's primary approach is to see how the system will scale,
handle failure modes staying resilient, and remain secure. Of course
they're also looking at how the feature will fit into the system, but
the difference is outlook - where you start looking.

It's a continuum, you aren't really one or the other. Developers
also consider scaling and failure modes and security, architects
also consider data structures and algorithms.

How will the feature scale, and what are the failure modes and how to
handle them so that the system degrades rather than fails, all while
keeping the system secure, that's how the architect starts.