Troublesome Developers

We’ve all had interactions with difficult people in our workplaces, families, or social groups. It’s pretty much a fact of human existence that not only will you have to deal with challenging, broken people, but that as an adult, you may not have the option to avoid them. While it’s acceptable to leave a job if your interactions with one member of your team are bad enough, there’s no guarantee that you aren’t going to run into someone worse somewhere else. Therefore it’s important to understand how these people get the way they are, and how to effectively work with them so you don’t go crazy. There usually is a strategy to get around the worst of their behavior, and if you can manage to do so, you’ll often find that they are some of your strongest allies.

The point of this is recognizing that there are very few people who start off as intolerable jerks, but there are lots of people who end up that way as a result of circumstance. It’s also really easy, especially when things are already emotionally tense, to misinterpret someone’s behavior. Many of these behaviors are, while infuriating, just part of people’s natural evolution as human being, and useful in the appropriate context. That, however, doesn’t mean that these behaviors can’t really harm you, as they can.

“I’ve dealt with this in almost every career I’ve had.”

It can be challenging dealing with troublesome developers in a work environment. They cause a lot of problems that mostly have to be cleaned up by others and often create interpersonal drama that makes work stressful and draining. While you are sometimes better off simply getting away from them, there are ways to deal with them and even (on occasion) to help them.

Being able to navigate an environment with these sorts of people is a critical part of being a successful software developer. Most of the time, you are better off figuring out how to work with and harness the good attributes of these troublesome developers. You want to avoid being nasty and manipulative as much as possible, but sometimes there are no other options. You have two choices – either change the dysfunctional developers or get them out of there.

Episode Breakdown

09:55 The Real Imposter

This is an individual who doesn’t have skills they need to do what they are required to do. This is different than imposter syndrome, and is probably better described as the Dunning-Kruger effect. This individual is usually aware of their deficiency and is willing to do a lot to keep others from becoming aware of it. They tend to hurt their teammates by making the workload heavier.

They may have been promoted above their ability. In some environments, turnover is so high that junior developers can end up in charge of a team. They may also have applied for (and bluffed their way into) a job that exceeded their skills. Their job responsibilities may also have increased beyond their capability. It’s quite possible that you’ll run into this person and that you or the team will basically have to carry them.

Nice Way To Deal

The easiest thing to do is to quietly figure out where they are and help them get where they need to be. This can be challenging, because you can’t exactly walk up to them and say “hey, I know you are incompetent; let me help”. You can also try the ploy of asking them for help and show them an “easier” way to do some other things.

Mean Way To Deal

Put them in situations where their incompetence is undeniable and visible. For instance, if they are the other developer on your team, make sure that they’ve got what they need from you when you go on vacation, and have a “dead cellphone battery” while you are gone. You have to be very careful about how you approach this. There is a difference between letting someone fall because they should, and tripping them.

16:15 The Secret King

This is an individual who thinks their highest value is the stuff they know. This means that they will do or say anything to avoid a situation where they have to say “I don’t know”. They will also tend to dig in their heels and argue even if the other party is obviously correct. They love to start arguments with “Well, actually…” They tend to waste a tremendous amount of time in meetings and get very pouty when their “vastly superior” wit isn’t acknowledged.

“You don’t have to be socially awkward to be socially unaware.”

Kids in school are praised for knowing things in many cases, rather than doing things. If someone has few other redeeming characteristics, they may latch onto “knowing things” as a source of personal value. When these people grow to adults, they naturally assume the workplace is going to value things the same way, especially if they are a bit socially unaware.

Nice Way To Deal

Help them get something else to brag about. Like an accomplishment. If someone accomplished goes “actually….”, their advice is often quite valuable and respected. Their attention to minute details is of value, in the right context.

Mean Way To Deal

Semi-publicly keep asking them for details. Don’t ever express doubt that what they are saying is true, but keep digging. If they actually do know stuff and aren’t posing, you may learn some really cool stuff. If they don’t, they are apt to explode when it borders on what they don’t know. Then you make sure it gets to HR. Clearly, you don’t want to do this unless you have to.

25:45 The Whiner

This is an individual who is afraid of taking blame for anything. They have a tendency to throw you under the bus rather than take the blame for their own screw-ups. This also tends to be coupled with someone who spends a lot of time trying to make sure that management knows what they are “doing”. These people completely erode trust on a team, to the point that even the trustworthy people stop trusting each other.

It happens because they’ve gotten away with it, in many cases for years. It also happens when they are incompetent, overwhelmed, and usually terrified that they will lose their job.

Nice Way To Deal

You can’t really have this kind of person in your environment. And you probably can’t hold them accountable either. They probably are good enough for an easier job and they probably wish they were in one. You might try referring recruiters to them.

Mean Way To Deal

Document everything thoroughly, and only discuss critical project things via email. If you attend a meeting with them, summarize the meeting and send them an email with the summary, asking if you missed anything. When they try to throw you under the bus, take that stuff to management. If management doesn’t fix it, polish your resume.

30:35 The “Rockstar”

This is a developer whose opinion of himself greatly exceeds his results. They have a tendency to not only do the work, but to rework it over and over again. They also tend to be very cocky and rude to people who they perceive to have less skill.

“I’ve made a career out of cleaning up bad code.”

Often this is a reaction to having regularly worked in messed up environments. It can also happen because such a person is very passionate about their work and wants to be an artisan. They also may start in a position lower than their ability so they think they are just better than everyone when in reality they are just further along.

Nice Way To Deal

Play along. Plan out how the systems could be improved and guide them towards better solutions. The humility will get their on its own. This is a real easy place for a high junior or mid-level dev to end up in. You grow a lot in the first years of coding, and other people do too. If it’s a phase you want to help them get through it.

Mean Way To Deal

If you are careful, getting them wound up about technical minutea right before a meeting with non-technical managers is a good way to deal with the problem. If you couple that with explaining technical stuff in actual freaking English, management will look to you instead of them. You don’t necessarily want to get rid of the bulldog, you just want it on a leash you control. Or at the very least, you want it to get put down after mauling someone else instead of you.

36:45 The Expert Beginner

This is an individual who advanced to a certain level of skill, and then stopped moving. These people tend to be very resistant to change, whether positive or negative, and their resistance tends to be based on outdated explanations. These people make it difficult to retain top talent, because the talent doesn’t want to be them. They also tend to be very protective of their little fiefdom, as it’s the only thing keeping them employed.

A lot of things can do this. As people get older, their interest in learning the framework of the week declines, especially if they have families. It can also happen if they are stuck doing maintenance on a much older system for a long period of time. It can also happen because a lot of the newer stuff kind of comes across as crap to the older generation, that was used to things like backward compatibility and slower release cycles.

Nice Way To Deal

Again, you have to help people along. Show them how the stuff, whether newer frameworks or newer practices, make things easier for them. The corollary to this is that if you can’t, then you may not really have a case here. This also means listening to their concerns and figuring out how to address them. Most of these people know they are behind, and would be grateful for the help if someone approached them in the right way.

Mean Way To Deal

Unless they are doing one of the other behaviors and causing you trouble, simply do nothing. Time will sort it out. Being actively aggressive against the old-timers is not a good plan.

42:35 The Bigot

This is an individual who assumes that one (or more) groups of people are inferior in some way. This can be based on their language of choice, the school they went to, their gender, whatever. This attitude is obviously pretty destructive. Nearly everyone has seen it at some point. This is not to be confused with friendly joking.

Usually this is someone who has either been burned or is afraid of getting burned. Fear is the usual root of the behavior, and it manifests differently, but you’ll typically see the people suffering from it either lashing out at whatever group, or avoiding them. With some older developers this may be an unknown prejudice they don’t even know they have.

Nice Way To Deal

If you are in the targeted group, befriending them and/or proving them wrong is how you fix this. You’ll often find that if you manage it, that such a person becomes your strongest advocate on the team.

Mean Way To Deal

Expose the bigotry, particularly the nastiness that goes with it. Show, don’t tell. This means getting the other person into a position where the crap comes out in front of the wrong people.

45:30 The Deadweight

This is someone who doesn’t get their work done, however they manage to go about it. It could be anything from being on their cellphone constantly, to finding excuses not to get work done, to actively lying about hours. This person is not only terribly demotivated, but they often put extra stress on the rest of the team by causing missed deadlines. In addition, observing someone like this tends to cause other people to slack off as well.

“Almost every job I’ve had there has been this person.”

This person probably wasn’t like this when they got hired. At some point, they were probably productive, or were at least able to pretend well enough to get a job. This often happens because of one (or a series of several) demotivating events. It can be anything from missed raises, to being ignored, all the way up to serious burnout with the career (which happens a lot). It could also be that they are overwhelmed and lack the ability or knowledge to prioritize. It can also come from medical, psychological, or personal life issues that are distracting them. It’s even contagious, as the presence of someone like this often damages things to the point where it isn’t worth it for other people to work hard, just to be screwed over along with the person taking lots of breaks.

Nice Way To Deal

“You can assume incompetence but you don’t act on incompetence.”

A lot of times, these people just need a friend. This is especially true if they haven’t been this way for long. If it has been going on a while, just quietly try to route around the damage. Helping them understand priorities and how to say no or “I’ll get to it later” may allow them to get tasks finished before starting a new one. Whatever you do, don’t confront management. They either know, are too incompetent to know, or you’re wrong. None of these are to your advantage.

Mean Way To Deal

If you are on a high-profile project with them, try to arrange things so that a critical piece of it is dependent on them. Make sure you are too busy to help. Watch them hit the wall while accelerating.

51:05 The Perfectionist

This is someone who has strong standards, but who takes them too far. This person often derails projects by churning endlessly. They also have a tendency to refactor, over and over, especially as deadlines close in. This effectively means that they don’t get other stuff done. They can also be extremely critical of other people’s work, causing friction on the team.

Sometimes they are also trying to avoid doing real work, by simply revisiting the previous work. However, they are often fearful of consequences occurring when they don’t do something perfectly. It’s very easy in the highly focused, technical world to fall into the trap of it has to be just this way. That applies to computers but not to humans.

Nice Way To Deal

You have to understand where they are coming from, and that is a desire to do well. It’s just that they go too far. One thing you can usually get them to do is compromise and take smaller steps towards that they want to achieve. You’re better off harnessing this than opposing it. The reason we suggest getting them to compromise and take smaller steps is that it deflects their perfectionism, while it also allows them to plan how things are going to be handled. This tends to satisfy many of them, because they also tend to enjoy this type of planning.

Mean Way To Deal

“They may be a jerk, but eh…”

You don’t really have to do much to deal with this person. Either their perfectionism will cause them to miss deadlines and cause problems, or it won’t. If they are hostile towards you in particular, a good bet is to go along with the “standards” they propose. Then quietly point out to management that you are doing so to avoid a conflict with the individual in question. That doesn’t work if they are your manager, however. In that case, you need to figure out whether staying is worth it or not.

55:35 The Architecture Astronaut

This is someone who is too hung up on things like code reuse, abstraction, and the like, to the point where they cause problems. This person is often inexperienced and tries to apply advanced development strategies when they don’t necessarily apply. This can often get in the way of both developing things and debugging them, as multiple levels of unneeded abstraction can be painful to deal with. They also tend to waste time that is needed for other tasks.

There are three main causes of this. The first is inexperience. In other words, they think “it has to be this way”, because books suggest it. Another cause is that they are trying to avoid risk, usually out of prior experience and fear. They also tend to be aiming for career advancement. This isn’t the way to do it, but it is perceived as such.

Nice Way To Deal

Recognize that they are trying to do the right thing, and help convince them to moderate their tendency towards pattern soup. What they are doing can help your team a lot, if you can point it in the right direction. Your goal should be to convince them to use their skills to make the team more effective by making things easier. Their architectural tendencies will be of use, if they can be pointed in the right direction.

Mean Way To Deal

These people are hard to dislodge. Their confidence and apparent enthusiasm make them a hard target to attack. However, they can often be convinced to leave. They will eventually experience friction with management, which can be used to convince them to move on.

IoTease: Course

 

Introduction to the Internet of ThingsThis course from Edx introduces the basic concepts of the Internet of Things. In the course you’ll learn about IoT components and how those components are connected together, how they communicate, and how they value add to the data generated. It can help you to understand IoT design and begin to work with IoT ideas within your area. The course itself is free but you can pay $99 for a certification after completing the course.

Tricks of the Trade

Try being nice before being nasty. Nice is easier and adds power to the technique. Nasty can blow up in your face and should be used sparingly.

Tagged with: , , ,