Essentialism and Technology
Essentialism and Technology
Join the DZone community and get the full member experience.Join For Free
How do you break a Monolith into Microservices at Scale? This ebook shows strategies and techniques for building scalable and resilient microservices.
Essentialism isn't just flawed, it is flawed at many levels, some of which should be familiar to technologists. I have read a number of arguments against essentialism, however for me they miss a number of points which relate to technology, an area I claim to know more about. In technology you can measurably demonstrate the performance difference between two solutions, and yet it is difficult to convince people to let go of their biases.
What is Essentialism
(from Google) "a belief that things have a set of characteristics that make them what they are, and that the task of science and philosophy is their discovery and expression; the doctrine that essence is prior to existence.
- the view that all children should be taught on traditional lines the ideas and methods regarded as essential to the prevalent culture.
- the view that categories of people, such as women and men, or heterosexuals and homosexuals, or members of ethnic groups, have intrinsically different and characteristic natures or dispositions."
Any number of aspects of essentialism are sufficient for many to dismiss it, however there are some aspects I would like to explore which I feel relate to technology.
What is true for a group vs what is true for an individual.
Image you have a lottery, where balls with numbers between 1 and 48 are selected at random. You can say with mathematical certainty that the average of the first number selected will be 24.5. Similarly you can attempt to describe the average of metrics which relate to gender or any other grouping. In the lottery example it is important to note that;
- no ball has number 24.5. The average might not represent anyone.
- you cannot say anything about a particular ball eg. which is more likely.
- you cannot say which ball is better, or its value or role e.g. relative to the average.
Perception is not reality
- People tend to see performance as relative. Inconsistent performance is more likely to be seen as a problem than consistent performance, even in cases where the inconsistent performance is consistently better. People tend to accept things which don't change.
- People are very bad at guessing the causes of performance problems. With more than ten years experience optimising applications, the one thing I have learnt is what ever you think the problem is, there is a very high chance it is not the biggest problem, possibly not the fifth biggest. I can almost always guess a couple of the top ten.
- Even when everything is telling you something is a big problem, it might turn out that fixing, won't make much difference, and something less obvious could turn out to be more significant. Sometimes multiple small changes only show a big difference when applied in combination.
You have to know your limitations
- How we see the world depending on the means we have of describing it.
- What we "know" today might not have always been the case. We tend to have a biased view of the past.
- What we "know" today might not always be the case. Always be ready to re-evaluate your assumptions.
- What we "know" is often very localised e.g. specific to a location, or a technology.
- We are always learning. The way we do things is unlikely to be the "best" way of doing something. Our idea of "best" is likely to change in the future, as it has in the past.
I see this in the fast data world where I work. There is a very strong bias to working the way things have always been done and even if you can show there extreme performance differences, like 10x or 1000x difference, this often doesn't overcome the hurdle of; we have always done it this way here. Some go as far to insist that everyone else should be doing it the way they do it, even in cases where clearly and measurably that wouldn't be possible for them.
- did you actually test that it was faster. Usually simpler is faster.
- what was the real requirement for this extra speed. (in terms of the impact to the end user's not a requirement which sounded good to you) i.e. would it have been fast enough with a simpler solution.
- was there a better way to achieve the performance needed, with less impact.
Live is beach.
- The idea of beaches is a human construct, there is no beach particles in physics.
- Beaches are not everywhere, nor should they be.
- I don't know where most beaches are and never will.
- Beaches are often artificially constructed or maintained (for the benefit of tourists)
- Naturally occurring beaches are often destroyed. i.e. the lack of a visible beach doesn't mean there wouldn't be one.
- The existence of beaches implies nothing about other aspects of our lives.
Published at DZone with permission of Peter Lawrey , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.