Forget monoliths vs. microservices. Cognitive load is what matters.

Posted by Tracy Bannon on Tuesday, March 22, 2022

“Forget monoliths vs. microservices. Cognitive load is what matters.” - Skelton & Pais.

I’ve argued for nearly 10 years that Microservice patterns can be overwhelming and when coupled with the explosion in open source, can lead to dramatic cognitive overload. Cognitive load/overload has a very measurable impact on software developers and delivery teams. In researching ways to detect and address this challenge, I came across a very common sense, and thought provoking article. These are the same folks who wrote “Team Topologies”, another book I highly recommend!

With changes in technology, the adoption of cloud and serverless, the increasing interconnectedness of capabilities, and the need to modernize decade(s) old applications, Microservices patterns have moved to the forefront.

Some highlights:

-Definitions of the types of cognitive load: intrinsic, extraneous, and germane

-How reducing intrinsic and extraneous leaves more space for germane which is the “value add” type of task

-Cognitive load should be applied to teams not only individuals: “don’t allow a software subsystem to grow beyond the cognitive load of the team responsible for it”

-Team cognitive load can be used to size Microservices ; reducing cognitive load increases a teams ability to fully own their product and improves supportability and operability.

-There are three recommendations for reducing team cognitive load: 1-Use independent stream-aligned teams 2-Create well defined team interaction patterns (facilitation vs X-as-a-Service vs Collaboration) 3- Build the thinnest viable platform (TVP) with the minimum of everything: APIs, documentation, and tools to keep things efficient and lite

I particularly like thinnest viable platform - we tend to bolt more and more onto our platforms in the name of efficiency which is the opposite of what is best for teams and even best for cyber resiliency. Skelton & Pais also suggest using the term “stream aligned” teams over product teams given the term product can include multiple value stream(s) or sub-components.

https://techbeacon.com/app-dev-testing/forget-monoliths-vs-microservices-cognitive-load-what-matters

#devops #devsecops #microservices #softwareengineering #softwarearchitecture #cyberresiliency #cognitiveload #HumansMatter

Matthew Skelton , Manuel Pais