One of the most interesting parts of software development, are the group dynamics that form to complete the task at hand.
This congregation of individuals comprise many different areas of expertise, personality and skill.
Neil Green has created this fantastic website describing these personality patterns that arise in software projects. The reasons these personalities exist, what effect they have on the projects and what can be done to rectify any problems that may arise. The one I want to discuss first is the Incompetent.
The Incompetent
The reason I wanted to focus on this first was that everyone feels that they know/ have known an Incompetent programmer.
Neil defines this personality as:
A Developer who lacks the intelligence or skill to do the job of writing software.
We know that we do not know what we do not know. That's a bit of a mouthful, but in essence, we ourselves do not know our own level of incompetence! This can be referred to as the Dunning Kruger effect and can commonly be found when asking how good you are at driving. Try it out on a friend you try not to get in a car with!
Here are some questions that will usually get asked by groups of people questioning these individuals.
How did this person get hired?
The interview process is not 100% foolproof, each organisation will allow people through that might not be up to your organisational standards.
Organisations and technology change over time, what may have been competent a few years ago may not be now. Developers need to constantly evolve, upskilling and training are integral to keeping on the competency curve!
Sometimes people are not good at teaching themselves new things.
These individuals are not stupid, they are highly educated people that may have been in the industry for a long time. They managed to navigate their way through the interview process and probably have all the qualifications that you would want and/or expect. However without guidance they cannot learn what they need to. When you no longer have a lecturer/mentor telling you what to learn and how to learn it, people can struggle.
Why is this person not fired?
There are a lot of legal implications firing someone! In certain cases, this can be fixed in other ways. The level of competence in any proficiency is not the only reason an individual is part of an organisation; Personality, Domain knowledge, Communication skills, being the boss's nephew or niece!
Some people are simply not ready to fulfill their job description. I'm a big believer of the Peter Principle, where people keep getting promoted until they reach a level of incompetence.
This doesn't mean there is any malice in their work, they simply do not possess the skills to adequately complete the task at hand!
What should be done now?
In most cases these individuals are not usually even detected, and if they are, most of the time they are just forgotten about. There may be several reasons why this has happened; Is there the guidance in the organisation to keep skills relevant? Have there been external influences that may have caused levels to decrease? Do these reasons change your perspective on the matter?
Don't wait until the last possible minute to discuss performance, it's best to be upfront about this as quickly as possible, otherwise it can get quite awkward. Is there a plan that can be put in place to improve?
All of us have innate talents, but few of us try and find out what they are.
The final straw, is trying to move this individual into another role that they are more suited to.
So... are you an Incompetent Developer?
Do you;
- Blame your lack of productivity on a lack of company provided training?
- Argue against technology, tools, and techniques that are “too complicated”
- Greatly overestimate your work?
- When asked for status on your progress, you are full of excuses and are often defensive?
- Your features, once implemented are riddled with bugs?
If you have answered Yes that sounds familiar to a couple of these, then maybe you are on track to becoming an Incompetent developer! But don't worry, once you're aware of this, you can look at turning this around!
Software development is a high pressure job
In most cases, you will be working to improve areas in which you are not overly strong. You won't do this if you do not know you have areas which you are not strong in.
You are most likely confident in saying that you are not good at certain sports, cooking or perhaps public speaking. If you ask yourself what you are not good at within your actual job parameters the answers are usually harder to comprehend. Learning your strengths and weaknesses will help you understand where to focus your energy, and hopefully you'll turn it around before anyone notices...
You can then safely return back to your colleagues and talk about how incompetent that other person is again!
Thanks for reading, I hope this got you thinking! If you would like to share my opinion, please use the buttons below.
To read more details on this personality trope click through below.
Top comments (30)
I'm not sure you can justify a blanket statement like this. I've known people in programming jobs where I wondered how they managed to cope with tasks such as buying their own groceries without catching fire.
I agree.
Case in point, I knew of a PHD specialized in A.I who had to finalize a website I almost finished before I was sent to another client.
I know A.I. and website building may require different mindsets but when I was called back on the project to check why suddenly everything was broken, I checked and talked to the guy.
It became apparent that he had:
Yeah, you're right. They might just be stupid! 😉
I'm still a student but I've experienced tons of interaction with "incompetent cs students". Great article!
Thanks, incompetence can be fixed... In time.... Hopefully
Ha! In reply to my comment you said incompetence can't be fixed. You're an incompetent commenter! Now... how do I add a smiley to this thing? Oh well...
Wait a second... You're right, I am incompetently incompetent! 🤯
Tbf incompetence whilst still a student is most likely naivety and lack of knowledge rather than full blown unfathomable incompetence.
All you young folks know how to Do smileys. Now I feel incompetent and old.
Incompetent definitely, old potentially! 😏
Such an interesting question. We all are a certain level of incompetence.. we are all promoted until we reach an UNacceptable level...
The question leads to other more interesting discussion..
It really does...
It's a very abstract query. Incompetence is a subjective judgement. We have to establish some kind of standard. Who are we to make judgement? What have we accomplished to become judges?
Let's look at ourselves first...
Trump inherited his wealth! Who is he to judge others?
If that's the basis of our forum, maybe we should start with a another perspective
Yes I am
Same
It's more common that you would think! 😂
I might be too! 😇
This sounds like the Dunning-Kruger effect.
That's exactly it, do you mind if I add that in?
Not at all, go ahead!
A problem I often see is that devs don't have enough time to learn new things or improve the skills they have. There's lots of reasons for that (reduced size of dev Team, too much todos, the wish to have a life outside of IT). Plus it's Hard to learn stuff without being able to use it regularly. But then again, some people are just plain incompetent...
Haha, exactly. Incompetence is something that just can't be fixed.
I recently had to work on a project that was really badly written.
Just for info, I may have developed a fear of the 'infinited splits of death'
one string was repeatedly splited (with .split('!')[0].split('&')[1].split() ...) without any thoughts about objects, variables or all those things that make sense when coding (even just for our piece of mind)
And it was only a small part of the problems of this work. From full React librairies copy pasted from the debugger tool of chrome in the code (a full file of 600kb, where only a tiny part is really relevant) to multiples lines of console.log containing http request in large quantities in production and the complete opposite of any DRY logic...
It was just a nightmare to work with!
So I don't really fully blame that person for her incompetence, more the recruiters and the project management for assigning her on that project, important with security aspects.
But she should at least have been more curious, more logical, or more inclined to search for answers when she didn't know what to do. She didn't do that, and noone was present to guide her. By the time I arrived, she use a vertical screen to code in js (I mean, seriously?) And now I have to work with the results, and spend more hours of work on correcting everything!
At least it is a good teaching method for me, I understand that much more the necessities of a clean code, with precise names for variables and functions, with short functions easy to associate and debug
Quick heads up, I think you might have meant comprise instead of compromise in the beginning of your piece?
I sure did, thanks for spotting and highlighting my incompetence. I've fixed it now
can you give solutions about this problem?
I can try, what's this problem?
The first step to recovery is Acceptance! 😁
Some comments may only be visible to logged-in visitors. Sign in to view all comments.