When people ask me what I do, I say that I’m a software engineer as it is pretty easy to grasp and basically means I write software. However, what I really am is a software architect. How does this differ from an engineer? It means I do a lot of things outside of writing software. (I won’t get into the debate about programmer vs engineer as that is a topic for another day.) A colleague of mine pointed my to a great description of a software architect. The author, Chris Eppstein, kindly let me repost his list.
A Software Architect
A software architect lives to serve the engineering team — not the other way around.
A software architect is a mentor.
A software architect is a student.
A software architect is the code janitor. Happily sweeping up after the big party is over.
A software architect helps bring order where there is chaos, guidance where there is ambiguity, and decisions where there is disagreement.
A software architect codes the parts of the system that are the most precious and understands them through and through.
A software architect creates a vocabulary to enable efficient communication across an entire company.
A software architect reads far more code than he or she writes — catching bugs before they manifest as systems change.
A software architect provides technological and product vision without losing sight of the present needs.
A software architect admits when he or she is wrong and never gloats when right.
A software architect gives credit where it is due and takes pride simply in a job well done.
Can’t we gloat even a little bit when we’re right?
Yes, you can gloat, but you’re the boss!