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 own definition of the complication term, some of these developers are playing a major role in the company, like a team leader, CTO or even a CEO.
“It’s complicated”, this is one of the most ambiguous terms I’ve ever heard, so, what do people mean by the complication term?
This is what I’m trying to answer through this post.
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 system is needed, and 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.
Parker can 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, all he knows is that Redis is a caching system.
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 have no knowledge about it, that’s it.
If Parker doesn’t know what Redis is, or how to use such a technology in real life projects, it means he has to spend a bit of time to know it instead of making a decision 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 in keeping themselves up-to-update by learning something new.
Most of these developers are studied in the university, and all they know 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 he can’t keep up himself up to update, then he has to listen to 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 specific 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 if you are coming up with a smart solution.
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.
The right tool
Redis – or whatever technology – might not be the right tool to use for a certain 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.
- If you think you are the best developer in the world because you spend some years in the university then you are in a big problem.
- If you think the university has taught you everything, then please be away of the software development field.
- Software is a learning process, 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 clear 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.