Context
Sapiens, the book, gives a fantastic perspective of the context in which today’s religions, society, and social practices evolved and how in the current context, a lot of these are irrelevant. One of the core ideas presented in the book is that humanity, during evolution, favored social stability over individual liberty because trust was necessary for human advancement and the basis of this trust was a common belief in the same God and social practices. Today, science and technology, as well as robust social institutions and ideas like democracy, liberalism, and capitalism, form the basis of trust. In short, the context does not hold today, but we continue with the age-old practices and beliefs. We can draw a parallel with this to the way organizations blindly adopt technology, frameworks, and processes from other places without understanding the context in which these evolved.
In my professional life, I have heard a lot along these lines; Netflix does micro-services, let us also do that; Google and Facebook subject interview candidates to data structure and algorithm questions, let us adopt the same. Embracing something without understanding the context is a recipe for disaster. As a thought experiment, let us take microservices. Microservices evolved in tech organizations with complex products handled by multiple independent teams craving for autonomy and control without stepping on each other’s toes. Also, for microservices to succeed, you need to put in a lot of effort into alerting, monitoring, orchestration, and devops. Without these, microservices is a bomb waiting to explode.
When borrowing technology and processes from other places, one needs to put significant effort into understanding the context around which these evolved and also the required pre-conditions for these. Blind adoption usually leads to unmitigated disaster.
Linked from
-
Hmm, will this scale?
Like any subjective matter, over-engineering is contextual—depends on the team, the stage at which the company is in, the engineering culture, the kind of market the company is in, and one's skills.
-
Should I or Should I Not
When you try to dig up the history, keep in mind that you are not going after the rigorous academic definition of the term, but the cultural context of its evolution.
-
NOT - Not Only Testing
In a world of micro-services and external dependencies, setting up a development environment can get complicated with a lot of moving parts.
-
Distributed Tracing
There is nothing wrong in using these; in a lot many cases, the investment may not be worth it.
-
All In
As with everything, it is all about context.
-
Knowing Versus Doing
I have written about this before.
Subscribe to get new posts by email