marco rapaccini web product development book review software architecture for web developers

Software Architecture for Web Developers - Review

Tl;dr

A light and useful knowledge backpack for your professional journey.

Overview

As a Senior Software Engineer, sometime I found myself a bit lost with all the technical terms regarding software architecture and Architect-like roles. I already had a good understanding of architectural patterns, but I felt like I was missing the big picture in order to comprehend important aspects, for example the difference between design and architecture.

Software Architecture for Web Developers is a good summary of the basic concepts that are necessary to know in order to approach Software Architecture: it provides the necessary keys to open the doors to new paths, some of them totally unexpected.

I really enjoyed Chapter 7 about soft skills because I think that they are often underestimated: we are humans and we need good interaction in order to reach something together.

Even if you are not considering to apply for an Architect-role promotion, this little book will give you a light and useful knowledge backpack: use it wisely, it will help you with your professional journey!

Author

Mihaela-Roxana Ghidersa: Microsoft MVP - Developer technologies, speaker, Software Engineer, trainer.

Review

Chapter 1 - The Role of Architecture

A general introduction to what is architecture and how it impacts software products, considering the stakeholders.

Chapter 2 - Diving into Some Common Architectural Patterns

I personally already knew about the architectural patterns mentioned here, but this chapter offers a good overview if you do not know about them:

  • Layered Pattern
  • Client-Server Pattern
  • MVC Pattern
  • Microservices Pattern
  • CQRS Pattern
  • Some UI Patterns:
    • Microfrontends
    • Flux
    • Jamstack

Chapter 3 - Myths about Architecture

This is probably one of the best chapters in my opinion, because it removed a lot of the fog I had in my brain about architecture before reading this book.

Copy-pasting here a great quote from this chapter:

Architecture is not about forgetting implementation details and getting drowned in abstractions, but about keeping them balanced

Chapter 4 - Discussing What Good Architecture is

I personally don't know enough to technically review this chapter, but here I found what I consider a nice checklist for starting to define what good means when talking about architecture.

Chapter 5 - Design vs Architecture

Initially, in my mind the definitions of Design and Architecture were interchangeable.

That is not correct, since there are some theoretical and practical differences that this chapter explains in a brief and incisive way.

Chapter 6 - Types of Architects and Their Focus

Do you know what the following Architect-related roles are responsible for?

  • Enterprise Architect
  • System Architect
  • Software Architect
  • Solution Architect
  • Application Architect

Chapter 7 - Leveraging Soft Skills

Probably my favourite chapter because soft skills are more than necessary to work together in an efficient and natural way.

Here I learned about the OODA (Observe, Orient, Decide, Act) loop for decisions and risk management.

Chapter 8 - Who Codes and Who 'Architects'?

Short chapter that can be summarised by this quote:

as a programmer, your constant focus is on details, while architects focus most of their time on the whole picture

Chapter 9 - Break the Rules

The end, with 1 word stuck in my mind:

  • craftsman
    • I am not a big fan of Agile, but craftsmanship probably is the word that describes better what working on software is, compared to the more generic engineering

Resources