The Meaning of Words
We are living within a Post-Modern worldview, where people are trying to convince us that words and objects no longer have meanings. What something means for me may not be the same as it means for you. This worldview has gained so much momentum because it is true, up to a point. Different cultures can view the same object in different ways. One may view a cow as a source of food, while another views it as a sacred animal to be revered. However, the Post-Modern stripping of meanings from words has been embedded in a much deeper, and often much more subtle way, than mere differences in culture. Many are now living their lives in a series of lies, and likely do not even realize this, or pay any attention to it.
What Does This Mean
Now, coming down off of a social commentary for a moment, what does this mean for the average every-day coder/architect/technical guru? It means we must be careful how we use words, and be explicit in how we define them. I’ve had many discussions recently that have turned more into heated debates, not ending well, all because we were using the same words but attaching different meanings to them.
Take the current trend of Microservice architecture. Many architects and developers now will say they have worked on, or are working on, microservices. But many of these projects, and the services themselves, will look very different. Some will attach a memory constraint to the term “microservice”, meaning that anything running in less than x megabytes or even gigabytes of memory can be called a microservice. Some will attach a time constraint it, meaning that a microservice is anything that one developer could churn out in a week or two. Some will attach a deployment paradigm to it, stating that anything that can be deployed rapidly without downtime can be deemed a microservice.
None of these meanings are likely to be wrong. Most of the services developed with any of those “technical definitions” of microservices will have some similarities. Most will likely conform to most of the points of a 12 Factor App, even though that was nowhere to be found in any of the definitions. But when one of those practitioners butts head with another one, something akin to a religious war may break out, simply because they are not understanding each other because they are attaching different meanings to the same words. They may argue for hours without reaching any kind of agreement, just because they do not realize they are talking past each other. Yet if the terms and definitions are clearly and explicitly laid out up front, the option of concord becomes much more likely, and the level of frustration is much more likely to decrease.
Originally Posted on my Blogger site November of 2017