7 Jun 2019

It's complicated

Throughout my career as a web developer, I've come across many colleagues who hold more traditional views. These individuals tend to be hesitant when it comes to adopting new technologies, citing concerns over their perceived complexity.

Interestingly, some of these individuals hold senior positions within their respective organizations, including team leaders, CTOs, and even CEOs.

The phrase "it's complicated" is perhaps one of the most vague and ambiguous statements I've encountered. It begs the question: what exactly do people mean when they refer to something as "complicated"?

The definition of complication

Before we begin, let's take a moment to review the definition of the term "complication":

Consisting of many interconnecting parts or elements; intricate. Involving many different and confusing aspects. Cite: Oxford dictionary (https://en.oxforddictionaries.com/definition/complicated)

Redis, an example of complication term

Picture yourself working on a web project that requires numerous database connections for each HTTP request, slowing down the website's efficiency.

After some investigation, you realize that implementing a caching mechanism is essential. Your research leads you to Redis, the most efficient in-memory caching database.

Feeling relieved that you've found a solution to a long-standing issue, you share the news with a colleague, let's call them Parker, only to be met with resistance.

It turns out that Parker believes Redis is too complicated, despite having no prior experience with the tool.

In reality, Redis is one of the most user-friendly in-memory databases available, consisting of simple key-value pairs and a handful of commands.

So, how did Parker come to the conclusion that Redis is complicated? It seems the issue lies in their understanding of what qualifies as "complicated."

Let's delve deeper into what I mean by this.

Complication vs Knowledge

There's often a significant disparity between what people perceive as complicated and what they truly understand.

Simply because someone lacks familiarity with a particular technology doesn't automatically render it complicated; rather, it means they lack knowledge or experience with it.

In Parker's case, they have yet to grasp what Redis is or how to implement it in real-world projects. Therefore, instead of making a hasty decision based on insufficient knowledge, they should invest some time in familiarizing themselves with the technology.

It's crucial to understand that software development is a continuous learning process. If Parker fails to acknowledge this, they may need to reconsider their career path.

Complication vs Conservation

Some developers are set in their ways, content with their current knowledge and resistant to learning anything new. Many of these individuals received their education at university and rely on outdated materials.

Their conservatism often leads them to reject any proposed improvements, even something as straightforward as Redis can trigger panic.

However, the beauty of software development lies in exploring and experimenting with new technologies. This approach may not sit well with conservative developers like Parker, who may feel overwhelmed by the constant need to stay up-to-date.

In such cases, it's essential for Parker to be receptive to the input of their colleagues and actively seek out opportunities to expand their knowledge.

Arrogant and jealous developers

There are some developers out there who display a sense of arrogance, believing themselves to be the best in the industry. When presented with a solution, they may oppose it without even understanding what it entails.

In some cases, these developers can be quite envious, harboring resentment towards those who possess greater knowledge and expertise. It may sound foolish, but unfortunately, it happens.

To these types of developers, I would urge them to shift their perspective and start seeing software development as a collaborative process. It's a discipline where we learn from each other, grow together, and strive towards a common goal.

Instead of harboring negative feelings, we should focus on sharing knowledge, supporting one another, and working towards building the best possible solutions for our clients.

The right tool

It's important to recognize that Redis, or any technology for that matter, may not always be the ideal solution for a particular task. It's essential to conduct thorough research to determine whether a given technology is suitable for your needs.

The problem arises when the term "complicated" is used as a blanket statement without any further discussion. This leads to significant issues for many companies as they cling to outdated systems instead of embracing new innovations.

In Parker's case, simply dismissing Redis as "complicated" without discussing its merits as a potential solution is shortsighted. Instead, he should take the time to investigate and assess whether Redis is the right tool for the job at hand.

To be clear, I'm not suggesting that Parker should blindly adopt Redis as a solution without question. However, he should engage in discussions about the appropriate tools for the job, and give Redis a fair evaluation before ruling it out completely.

Conclusion

  • If you believe that your university education has taught you everything about software development and you are the best developer in the world, you are mistaken and may struggle in the field.
  • Software development is a continuous learning process, and being open to new ideas and technologies is crucial for growth and success.
  • Arrogance and jealousy have no place in the collaborative environment of software development.
  • Take the time to learn about new technologies and solutions before dismissing them as "complicated."
  • Trust and listen to your colleagues and employees, and encourage them to contribute their ideas and expertise.
  • Avoid being a hindrance to progress, and instead, empower your team to do their best work.
  • Building a culture of trust and open-mindedness will attract and retain talented individuals in your company.