What makes one a software architect? Is it just a title you get to apply to yourself after x amount of experience? Are there classes and certifications you need to have? Is it the group of developers that don’t (or can’t) develop any more?
One possible definition of architect that I quite like is from one of my coworkers. It is that the “Architect” title is based upon the dollar amount that your decisions have cost the company. The Architects are the ones responsible for the pieces of the software that are hard to change, and so when we make mistakes, it is quite often more costly than a typical bug. On top of that, it can also be harder to determine that a mistake has been made.
It is really hard to track potentially lost revenue due to not being faster to market. We can see this on the large scale. Direct competition with a rival company to get something out the door before they do. But I don’t think that is the typical case. It is much more common to not be in that direct head-to-head competitive mode. You still push out software as fast as you can, but it is hard to tell if this is “fast enough”. In the same way, the other “ilities” of a software architecture are hard to measure as well, and would need specific focus.
Another definition that I am currently thinking about is this: You have worked at the same company, and in a similar position, for long enough that you see the consequences of your decisions. This one is similar to the first. But you can certainly cost an organization a mind-boggling amount of money long after you have left. In today’s workforce, it is rare to find somebody with 10 years of experience. You typically only find people with 1 year of experience, repeated multiple times. Architects are thinking more about the big picture, and what the business and software is going to look like years down the line. If they only stay for a year or two, many of the impacts of their decisions are not going to be realized within their tenure.
The internet tells me Mark Twain said:
Good decisions come from experience. Experience comes from making bad decisions.
Some architects are good at making decisions. A few stick around long enough to see if those were good or bad decisions. I think fewer still learn from those bad decisions.