Sunday, October 17, 2021

2021-10-17 Sunday - Book Review: Software Architecture for Busy Developers

Image Source: Amazon.com

Software Architecture for Busy Developers: Talk and act like a software architect in one weekend

https://www.amazon.com/Software-Architecture-Busy-Developers-architect/dp/1801071594/

  • Publication Date: 2021-10-15
  • 174 pages

Author: Stéphane Eyskens

Companion Github repository for the book:

 

Review Headline: Far Too Ambitious

Link to my review:

Caveat: I was provided a PDF of this book by Packt to review.

 (caution: Some tough love given)

General Impression:

This book could be much better. There are many mentions of frameworks, standards, tools, organizations – and yet, there is a dearth of links provided when they are *initially* mentioned – and for many, no link is provided.

Overall, the sequencing of information feels haphazard – and does not weave a cohesive picture in the mind of the reader.[Note: Another reviewer on Amazon wrote: "...at times it feels like you are reading word-salad, with a bunch of software terminology smashed together in a section that doesn't tie together in the end for an `Architectural Design`"]

Additionally, the book leaves as an exercise for the reader – determining how the different architect roles work together.

Given the book’s actual content length (149 pages) – I feel it has tried to tackle too many topics, without sufficient depth in any of them.

The level of breadth attempted by this book – with such limited depth – may make  the reader feel like they have purchased half-a-book, not a whole book.

It is difficult to determine what this book wants to be…it swerves and veers – covers some topics by barely a sentence – and spends pages discussing the details of other topics.

While the book recommends TOGAF, ITIL, and ArchiMate – in many organizations – these are rarely actually used – and if used, rarely result in actually being useful – rather, resulting in significant wasted cycles to establish and implement them – rarely producing equivalent value for the effort/cost expended.

After reading this book – and seeing the shallow treatment of the material – I fear that the book’s goal of “Talk and act like a software architect in one weekend” - is more likely to create more harm - than good.The proverb, "A little knowledge is a dangerous thing", comes to mind.

What I found Interesting:

The inclusion of a companion github repository for the book, with code examples.

Chapter-3’s coverage of the Architecture Tradeoff AnalysisMethod (ATAM)

Recommendation of the Sparx Enterprise Architect tool.

Chapter-5’s coverage of Design Patterns.

Chapter-6’s Figures 6.5 and 6.6 – illustrating the mapping of Azure and AWS services to patterns.

Suggestions for the Next Edition:

Add a new chapter to discuss the relationship of software design patterns, within the context of application design patterns, DevOps patterns, enterprise integration patterns, as well as cloud architecture patterns. Illustrating the workflow of how architects at different layers – work together to deliver business value.

The acronym noted on page-7 (“SoAr”) for Solution Architect – is often abbreviated simply as “SA” in many organizations.

On page-9, the numbers used in the table for Figure 1.3 do not seem to tell a coherent story, as intended – with a progression from Data…to…Wisdom.

At the end of every chapter, there should be a final section, “Additional Reading”. For example, for Chapter-1: Provide inks to additional resources/materials (such as TOGAF, ArchiMate,UML,  …)

The book should have an additional chapter – to discuss other architecture frameworks – besides heavyweight TOGAF – and the need for “Agile Architecture” – with examples cited.  Additionally, the author should introduce resources for exploring some contrary perspectives and views on how architecture might be viewed (i.e., “The Practice of Enterprise Architecture - A Modern Approach to Business and IT Alignment”, by Svyatoslav Kotusev).

Chapter-2’s discussion of EA should include a discussion on the types of Governance activities that are core to the EA role.

As an example of the shallow level of coverage of a given topic, see Page-28 – which briefly mentions NIST – but does not cite any of the excellent NIST publications that would be of keen interest to any number of architect roles. Although the NIST Cyber Security Framework link is provided – there is no concrete example cited from it – of how it might be useful, or its applicability.

Chapter-4 mentions several different architecture styles on page-52 – but does not include a visual to help the reader understand them conceptually – nor is there any discussion of why one might choose one over the other.

Figures 4.1 and 4.2 do nothing to help the reader understand the concept of a software monolith. There are plenty of Open Source projects that could be used as examples (and, since Sparx EA supports importing the source code – and will automatically generate UML diagrams – that would be eminently more meaningful in communicating real-world examples).

Page-60 should include a discussion of the benefits of GraphQL style services (in the book, GraphQL is only mentioned in a single sentence, on page-133). 

Page-62 should rephrase “Loss of complete oversight” to “Governance challenges”.

Page-64’s mention of “providing some sort of consistency across the different microservices” – begs the question – and seems like only a partially formed thought.

Page-64’s comment regarding the future of Dapr should be elaborated – and supported by cogent citation of rationale reasons. A table, comparing it to other options – would greatly improve this section’s discussion.

Add a section in Chapter-7 to discuss the continuing rise in the adoption of Low-Code and No-Code platforms – and how they can be leveraged to accelerate the delivery of solutions in the software architecture landscape.

 

Table of Contents:

  • Chapter-1: Introducing Software Architecture
  • Chapter-2: Exploring Architecture Frameworks and Methodologies
  • Chapter-3: Understanding ATAM and the Software Quality Attributes
  • Chapter-4: Reviewing the Historical Architecture Style
  • Chapter-5: Design Patterns and Clean Architecture
  • Chapter-6: Impact of the Cloud on the Software Architecture Practice
  • Chapter-7: Trendy Architectures and Global Summary

 

No comments:

Copyright

© 2001-2021 International Technology Ventures, Inc., All Rights Reserved.