![software architecture foundational concepts](https://static.wixstatic.com/media/bb924f_3016b724a47a4d809835e8e1db48a21d~mv2.png/v1/fill/w_878,h_610,al_c,q_90,enc_auto/bb924f_3016b724a47a4d809835e8e1db48a21d~mv2.png)
In the first Software Engineer to Software Architect article, I provided a curated list of free and paid resources to help a software engineer grow into the role of a software architect.
In this second instalment, I want to continue that list and provide further resources to help solidify the concepts discussed in the previous article and to build your understanding of the various software architecture topics further.
In particular, the focus is on foundational concepts of software architecture and the skills required of the architect's role. These are concepts such as architectural characteristics, architectural trade-offs, and designing evolutionary and flexible software systems to position them for success.
The way this list is structured, just like the first time around, is in a logical progression of concepts where the topics and videos loosely build on one another to the extent possible.
In other words, watching/reading them in this order will hopefully provide you a better and more streamlined understanding of these topics.
Let's dive in!
Software Architect Mindset and Soft Skills
![Software Architecture Components](https://static.wixstatic.com/media/bb924f_53ab35b0136747b296fe4283b62a622e~mv2.png/v1/fill/w_980,h_938,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/bb924f_53ab35b0136747b296fe4283b62a622e~mv2.png)
Architects Live in the First Derivative
In this more of an abstract talk, Gregor Hohpe explains the mentality that a software architect should have when it comes to designing systems and providing value to the organization.
Six Essential Soft Skills for the Software Architect
Another, a bit abstract talk about the skills of the architect by Michael Carducci. At the same time, while the preceding talk by Gregor was about the mindset of the software architect, this talk is more specific as to the skills that a software architect needs to have.
In Depth Guide on Becoming a Software Architect
This is a guide I wrote where I break down the technical and non-technical components of software architecture and where I explain in detail what it takes to become a software architect. It isn't free. However, worth considering for those serious about becoming software architects or becoming better in this role.
Check out what people are saying about it here
Software Architecture Foundations
![Trade-offs](https://static.wixstatic.com/media/bb924f_0370b9ed4eab4690a41a101666015ee1~mv2.png/v1/fill/w_980,h_830,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/bb924f_0370b9ed4eab4690a41a101666015ee1~mv2.png)
The Lost Art of Software Design
In this video, Simon Brown lays out the general concepts of software design and how to ensure that the software we built if of high quality and is best positioned to provide value and solve actual customer needs as opposed to perceived needs.
Software Architecture - The Hard Parts
This is a video summarizing the awesome book under the same name by Neal Ford and others. Here, Neal, provides a summary of why software architecture is challenging especially when it comes to software architecture trade-offs and non functional requirements.
Software Architecture Tradeoffs Series
This is my series on one of the most important aspects of software architecture and the role of the software architect. The importance of trade-offs of different decisions and the relationship of these trade-offs to architectural characteristics is difficult to overstate. Here, I provide an in-depth analysis of both topics.
Putting this after Neal Ford's talk in the hope that watching that talk first and reading my breakdown of the same topic will provide you with a well-rounded understanding of both the context and the details.
Architecture Foundations - Styles and Patterns
Another great video by Neal Ford. While the proceeding resources discuss the more general domains of architectural attributes and associated trade-offs, this video zooms in on actual architectural patterns of building systems.
Building Evolutionary Architectures
Keeping the foundations and patterns of software systems in mind, this video talks about how the decisions you've made with these can influence how your system evolves.
Software Architecture Artefacts
![software architecture diagrams](https://static.wixstatic.com/media/bb924f_dd97621c4a8748db828b19f968421ee1~mv2.png/v1/fill/w_980,h_949,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/bb924f_dd97621c4a8748db828b19f968421ee1~mv2.png)
Visualizing Software Architecture with the C4 Model
We now dive from foundations to concrete deliverables. One of the most important artefacts that a software architect produces are software architecture diagrams, which serve as the blueprint of building software systems.
Knowing how to properly document software architecture diagrams so that they provide real value is key. In these couple of videos, Simon Brown talks about the C4 Model of software architecture diagrams.
Architectural Decision Records
Another type of deliverable in software architecture is the ADR. In this article, I provide an overview of why and how to create ADRs.
There is a lot more to software architecture and the role of the software architect. For a lot more details, deep-dives, and drill-down into the nuts & bolts of the software architect's role, check out my in-depth guide at Unlocking the Career of Software Architect
Commenti