It’s complicated

During my career as a web developer, I encountered many conservative developers, these kinds of developers are trying to avoid some new technologies from being used due to their definition of the complication term.

Some of these developers are playing a significant role in the company, such as team leader, CTO, or even a CEO.

“It’s complicated,” this is one of the most ambiguous sentences I’ve ever heard, so, what do people mean by the complication term?

The definition of complication

Before we start, let’s see what is the definition of complication term:

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

Imagine you are working on a web project where it makes a lot of database connections on each single HTTP request, these connections make the website slower and less efficient.

After a bit investigating you realize that a caching mechanism is needed.

A bit of search leads you to Redis, the most efficient in-memory caching database.

You are so happy because you find out a solution for a chronic problem until you bumped into somebody (let’s name it Parker) saying NO, we are not going to use Redis.

As I mentioned, Parker could be a colleague, team leader, CTO or even CEO.

A small conversation with Parker makes you know that he thinks Redis is complicated.

By the way, Parker has no experience with Redis, and he never tried it before.

No doubt that Redis is one of the easiest in-memory databases, it’s just a key-value paired with a few commands, nothing else.

So, how Parker end up saying that Redis is complicated?

I think the problem lies in the definition of the complication term.

Let’s see what do I mean by this.

Complication vs Knowledge

There’s a huge gap between complication and knowledge.

If you don’t know what specific technology is, it does not mean that this technology is complicated, it means you lack knowledge about it, that’s it.

Parker doesn’t know what Redis is, or how to use such a technology in real-life projects, so he has to spend a bit of time familiarizing himself with it instead of making a decision that is based on poor knowledge.

Software is a learning process, if Parker doesn’t believe in this process, then he might need to change his career to something else.

Complication vs Conservation

Some of the developers are old-school; this means they are happy with what they know, and they don’t want to spend more time keeping themselves up-to-update by learning something new stuff.

Most of these developers are studied in the university, and most of their information is coming from the university’s materials.

They are conservative enough to blindly decline any improvements, even something simple like Redis becomes a panic for them.

The joy of software development lies in trying new technologies, but it might be a panic for such developers like Parker.

If Parker thinks that he can’t keep himself up to update, then he has to listen to the other developers.

Arrogant and jealous developers

Some of the developers are arrogant, they think they are the best developers in the world.

If you come up with a solution, then they might stand against you, without even knowing what the solution is.

Some of these developers are jealous, and they will start to hate you because you know more than them, yes, it’s stupid, I know, but it happens.

My advice to such kind of developers is to start thinking of software development as a joyful process, and as a process where we learn from each other, not to hate each other.

The right tool

Redis – or whatever technology – might not be the right tool to use for a particular job.

I’m not saying that you must use whatever technology out there, of course, you need to do a bit of research to know if it fits your needs.

I’m talking about a specific term here. The term – complication – leads to severe problems for many companies, because they stuck in their old-school system instead of taking a step further.

Parker didn’t discuss the right tool; Saying “it’s complicated” was enough to cut off a giant improvement.

Parker has to spend a bit of time discussing the right tool instead of swearing off a crucial improvement.

Again, I’m not saying that Parker has to accept Redis as a good solution, but he has to spend a bit of time to know it instead of declining it without any clear reasons.

Conclusion

  • If you think you are the best developer in the world because you spend some years in university, then you are in a big problem.
  • If you think the university has taught you everything, then please be away from the software development field.
  • Software development is a learning process, where people learn from each other, if you don’t believe in this, then please consider changing your career.
  • Being arrogant/jealous is a clear sign of witlessness.
  • Be open-minded, and allocate a bit of time to know what is going on out there, instead of saying “it’s complicated” without any apparent reasons.
  • Listen to your colleagues/employees and let them do their best to find out good solutions.
  • Don’t be a blocker, and trust your employees. If you don’t do this, then nobody will stay in your company.

Leave a Reply