Original question from Quora:

Should I fire the programmer if he is not efficient enough?

My Answer:

There are programmers who are vastly more effective than other programmers, but usually not for the reasons you might imagine….

The thing about writing code is that it is more about knowing the right thing to do than it is doing the right thing. That is to say, writing the code is the easy part and it happens pretty fast.

Programmer efficiency is not about typing speed or even effort. It is about knowing what to do and when to do it.

Now, I’ll admit, most programmers don’t often know the right thing to do and when to do it, so they bang their head up against the wall and don’t get a whole lot accomplished. That doesn’t mean every inefficient programmer is a bad programmer.

In fact, there’s a far bigger problem than inefficient programmers that screws up projects more than anything…

The team dynamics, often determined by the manager, are usually a bigger indicator of individual performance than the individual’s capability. Here is what I mean:

When you are on a team, your skill tends to rise or lower to match the team. So, if you are on a high performing team, you will improve to meet the required skill of the team. If you re are on a low performing team, your skills will also lower to meet theirs.

Often time a poorly performing individual is a symptom of a mediocre to awful team. If you look around, you’ll see others performing poorly too.

To remedy this, you don’t fire the programmer, you work on the culture of the team to be about excellence. If you build a culture of prerformance and excellence, you don’t really have to worry about individual performance in quite the same way.

If your team is doing great work, a poorly performing individual will stick out like a sore thumb and the team will either bring them up to par, or they will force them out. Either way, it’s less of an issue.

So, fix the team dynamic first, then see what happens next.

-Brian

P.S. Have you subscribed to Code Career Genius yet?