Press enter or click to view image in full size
In the last 8 years I’ve seen an increase of articles and YouTube videos with titles such as “Boost app performance with this framework” or “3x times the throughput with this database” or “This language is the C killer”. When I read these titles, I can’t help but think of get rich quick schemes.
I learned many lessons in life during my 40 years on this earth, some of the lessons are inspired from legends such as Musashi. While I always thought that life lessons on the human mind rarely apply to concrete and practical domains such as engineering, I do see common patterns emerge when I pay attention.
In this story I explore software engineering from a different perspective.
The black box
When the app is not performing well, it is often one or more components causing it. Given the choice, we rather replace the component with another than fix it, whether this involves using an off the shelf one or writing the component from scratch with a different language. After all this is easier than figuring out what is wrong with the component.
Fully understanding the existing component and how it works is something we rarely do. It is our lack of understanding of how systems work that lead to the poor performance. We throw our hands and blame the component, the tool…