/ #software architecture #software architect 

Stop being a traditional Software Architect

A better and more efficient approach to design Software Architectures.

You can do better

I’m on an auto-imposed journey to become a solution architect or manager and, in the process, a better developer. I have been getting ready for it for a couple years by improving my “soft skills” as well as my technological ones.

During my yet-to-be-finished journey, I have come across and read many books about Software Architecture. I’m going to be dumping what I have learned from them in a series of posts as a way to help others, and also as a future reference for myself.

One of those books that changed my perception of the Software Architect role, and truly inspired me, is Design It! By consistently applaying what I learned from it I have become a better team leader and software engineer.

What you are about to read is not a full copy-paste from the book, but the idea is pretty close to what you can read at the begining of its Chapter 13.

Empower the Architects on your team

On modern software system there is little difference between a developer and architect. I mean, software development team do require technical leaders. However, modern teams require a different kind of leader than the usual, top-down architect.

Modern architects design along their team members not for them and by doing that they contribute to grow and empower the team while designing great software together.

Embracing the idea of software architecture as a way of thinking instead of as a role tend to produce better software. Integrating the team in the design process allows for faster design evaluation and decision taking.

Embracing the idea of software architecture as a way of thinking instead of as a role tend to produce better software.

When everyone on the team can participate on the architecture design process there is a greater sense of ownership over the design. Everyone understands the intend behind any necessary changes and the feel of responsibility for maintaining the architecture integrity increases.

It is important to note that not everyone is ready to accept design responsibilities. It is the job of the architect to nurture the team skills while designing the architecture with them at the same time. This can be accomplished by providing enough guidance without requiring the architect overseeing every design decision.

Architects build skills and improve trust while staying a few steps ahead of the team, so they can prevent them from making mistakes. Empowering team members while at the same time designing an appropriate architecture lets the team ship great and value-adding software for the stakeholders.


Reference: Michael Keeling, Design It! From Programmer to Software Architect, 2017, Ch 13, Pragmatic Bookshelf.

Disclaimer: The image above contains my Amazon affiliate link. If you buy the book from it, I will receive a small commission that will go towards covering the cost of this website. However, the content of this post is my honest opinion, and in no way it is influenced by any possible sell. I’m also a proud owner of a copy of the book, for which a paid full price.

Author

Abraham Laria

Sr. Software Engineer at Pinnacle Entertainment Inc. Aspiring Solution Architect, interested in Team Management.