Coding is an art. Everything else is a humbug leave alone the sales and marketing (the only other important things) – i meant the process audits, useless meetings and so on. Coding is the reason why many developers are hired for a project and are paid for. But some unethical developers sneak into an organization hoodwinking the interviewers into believing that they are experts at code. These unethical developers are the root cause for office politics and project derailments. They know that they are not worth the pay and visibility that they get. But still they cling on like leeches boot licking their boss and annoying all others. Every now and then, they would make themselves relevant by broadcasting an useless bulletin in an attempt to gain some popularity. What they do not realize is that they are already notorious for their inability to code amongst fellow developers. And these are the developers who assume that anybody can code even though they don’t know even the simplest concepts in programming. These developers are a liability to any sane organization. And these developers are ace cheats who have no guilt in not proving themselves worthy of the pay they receive.
The Recipe for Disaster
Now consider that a team is dominated by such junk soulless developers. Consider the fact that able developers in such a team are deliberately kept in a low profile. This is the perfect recipe for an absolute disaster. Unfortunately this is what is happening in many organizations especially the bigger ones. This is also a side effect of excessive process and methodologies ruining the work morale of competent developers. Usually several bigger technology organizations have a huge number of such incompetent developers. A few of these developers may strive to even move up the corporate ladder by leeching on the effort of a competent developer there by stealing the credits due to others. This is a blatant theft and that incompetent developer who steals other’s credit is a thief by definition.
The usual argument – “Coding is easy. Anyone can code”
“Anyone can code. Coding is nothing.” – this is the usual argument given by these incompetent cheats who tend to avoid anything related to coding. They would not be interested in a technical conversation nor be interested in any form of creativity. They would be more interested in pretense and “process” rather than the actual implementation. Anyone who says “anyone can code” will surely lack the skill required for the job.
The characteristics of an useless and incompetent team member
He would be a person who cannot hold his pants with his own hands – he needs someone to hold it on behalf of him. Also, He would require someone to hand hold him through out his career – he lives in the shadow of a competent developer. These meek useless developers usually cringe at the thought of shouldering responsibility. They may abscond or go on a long leave during an impending product delivery. There would certainly be many loud talks without any worthwhile actions. In an attempt to protect them, an incompetent manager (who most certainly would have been one of the most incompetent developer) would assign to these useless name sake developers, a task that consist of some unmeasurable abstract terms like “Analyzing”, “Describing”, “Problem statement exploration”, “Stakeholder discussions” and so on. Most of their time is spent in discussion rooms discussion about some “exotic” architecture that everyone knows or an idea that may not be applicable to the product. They talk their time through without any solid contribution.
I have an untrained monkey in the team who refuses to code. What to do?
Remember that an incompetent developer would refuse to code because he cannot code and he does not know to code. Try your best to advise him about the greatness of coding and help him improve his skill. You will most likely fail in this attempt though. But if you succeed, you can celebrate. He would be grateful to you and would also try to contribute to the project. If you fail (mostly you will), isolate him and make your team members engaged with a different activity so that they stay away from him. Act and assign tasks in such a way that he realizes that his contribution is not worthwhile. Closely track the tasks that he is involved with. Also closely track his real effort in that task. It would mostly be close to zero. He would claim that he has put in efforts to analyze and so on. All that are humbug – you probably know that already. Give him a reasonable deadline to complete and reallocate all other team members to different set of task so that he could individually work on it. Track his progress. It does not matter if he completes it. All that matters is the amount of real and sincere effort he puts in. When that deadline nears, question him on the progress. It would force him to either step up and learn the skill or would make him seek another job. Both are good for your team.
Incompetence may be contagious
According to these incompetent developers coding is sin and a person who codes may not be smart enough. Their brains are trained to think this way because they have not actually involved themselves in code or any technical discussions. They would always reason out something silly when they skip a deadline. These developers hate to code and will even go to the extent of asking junior developers “not to waste time” in coding. These serpents should be fired on the spot. If left off, they would spoil the morale of the entire team – including capable developers. Down the lane, a capable developer may start to feel weary about these good for nothing team members. Coupled with an equally foolish manager, these useless developers may trick the senior leaders into believing that they are worth much more than what they actually are. The capable developer would certainly loathe these tricks and in the extreme cases, would cease to contribute to the project. Once the interest is gone, that state usually persists for a long time. Contempt breeds frustration. A capable developer who is frustrated may start seeking a job elsewhere which would adversely impact the productivity of the team. If one such developer leaves, others may follow. Finally your team may be left with all untrained monkeys jumping and swinging without any control which in turn means your product would not see its day. Hence if you spot an incompetent developer and he refuses to learn, make yourself a favor and send him off as quickly as possible.
Programming is not an engineering discipline but an art. Not all can code. Only a privileged few can. If people working in a technology or software company feel that coding is not important or that anyone can code, please ensure you are getting rid of them at the earliest. They are not worth the money and time you spend on them.