Cliff Berg
1 min readMay 1, 2021

--

True Mika - if one could say things like make a blank handler for this route here" it might help a little. But how much really? Most of a programmer's time is spent figuring out why the code does not work, and the problem is usually deep interaction issues - not the syntax of a route handler.

In fact, I did a study of this: at a large bank (they have ~500 software teams) I obtained all the production incidents for their cloud apps (mostly microservices) spanning a year, deplicated them, and discerened the root cause of each. Only 20% were what I would call "local logic" issues - i.e., things that one might find through unit tests. Another 40% were logical service integration issues (edge cases in interactions between services), and the remaining 40% were network integration issues - failure modes resulting from the complex network architecture of all these services and their deployment. None of those 80% of issue could be found by unit tests, or even by API contacts, because the issues were time-dependent or sequence-dependent.

The software space is really lagging. The hardware design community is a lot more sophisticated. Many people today are using system design languages - so-called "model-based development" - for designing systems at multiple levels and their interactions. This enables people to simulate how the entire system behaves, and creates "code" (a model) for the entire system.

--

--

Cliff Berg
Cliff Berg

Written by Cliff Berg

Author and leadership consultant, IT entrepreneur, physicist — LinkedIn profile: https://www.linkedin.com/in/cliffberg/

No responses yet