Irene Au does a great job of describing what design can be when it reaches its fullest potential. Her comments remind me of something I read recently about Andrea Palladio, a figure in the Italian Renaissance and arguably the world’s first architect.
Irene’s deeper point is that great design in the things we use can help us overcome negative emotions like fear, greed, and attachment. This lines up nicely with Palladio’s assertion that being in a great structure can help us achieve calm, harmony and dignity.
In a nutshell, since things can be better, we can be better.
What does it mean for a person to be an architect of a piece of software instead of a building? What does that person do, exactly?
My favorite definition of a traditional architect is someone who guides the construction of a building through writing, sketching, drafting, model-making and collaborating. This is not, however, an accurate description of most software architects. And because of this, all of us that use software are worse off.
The garden variety software architect is more akin to a structural engineer in construction, focusing the structure’s serviceability, performance under extreme conditions and other deep technical details. These are worthy pursuits, to be sure. But all too often, no one is deliberately designing how the user interacts with the software and how it will meet her goals.
Software desperately needs more people that actually guide applications toward those goals using the methods of a “real” architect:
- Writing (especially storytelling)
- Drafting (producing detailed specs if necessary)
- Model-making (prototyping)
Software is not about code any more than the Eiffel Tower is about iron. Lead your team accordingly and call yourself whatever you like.