The Software architect absence
In a serious organization you need to have some base standards, code quality bar and measurements. This applies, of course, to the projects internal communication. When working in software projects, it is hard to get some standards between different applications and teams, whether they use the same programming language or not, it obvious that, especially if it breaks the boundaries of different teams.
The question is: How can we create those standards if no one is taking responsibility for this issues ? Each project have different problems, requirements and we need someone to address and take care of the big picture. This is the architect’s job.
“A software architect is a software developer expert who makes high-level design choices and dictates technical standards, including software coding standards, tools, and platforms. (Wikipedia)”
However, this is not what most companies think. Today most teams are self managed, receiving a great level of autonomy and responsibility. This sounds great in paper, but ended up creating this myth where a designated architect is completely unnecessary and that all decisions should be made democratically even between different teams, they just have to talk to each other and vote.
Needless to say, every team has their own desires and preferences, going further I could say that each developer has their own agenda related to code standards and quality. This basically means that the biggest a company gets, the more problems you’ll face in the long run. All that because no one was responsible for watching over projects and making decisions.
Don’t get me wrong, I’m not saying that the architect should stay distant, just sending orders and enforcing rules. I actually think the opposite, the architect should be close to the other developers, not only actively coding with them, but also discussing with them, listening and weighing their opinions before making a decision.
All of this power comes with great responsibility. Not only he or she needs to watch over the projects, helping developers with their problems and ensure everything is running smoothly but also they are the ones being demanded results, metrics and quality
You may argue that your team or company don’t have an architect and everything is going great, but don’t be mistaken, for better or worse someone will always assume the chair and start calling the shots, but without the liability of being the designated architect.
Another downside and one of the biggest problems with this approach is that the employer doesn’t get to choose who takes the stick and in most cases the best or most aggressive speaker tends to assume the role, even without having the required experience or technical skill for the job.
To summarise, don’t fall in the team democracy trap, every developer has their own interest in the project and you really need an experienced architect to make the right calls, enforce standards and quality gateways, especially if you are not a small company. You must have someone to watch over the teams and ensure that your product is in the right shape for the market, so that, in the end, you don’t have to spend thousands of dollars rewriting the entire project.