The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
TechInterview.org
CityDesk
FogBugz
Fog Creek Copilot


The Old Forum


Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

How do you handle unproductive co-workers

I am the team lead of a team of of 6 "software engineers". I use "software engineers" loosely. The problem I have is many of them do not work and have no idea how to write code. When they actually decide to do some work I end up having to redo it so it actually works.

I have no authority to reprimand any team members so I escalate to my manager. His solution is to give them less and less work so they cant mess anything up. In turn, myself and the other hard workers have to pick up the slack. The worst part is these "non workers" make a lot more money than me and that really irritates me.

I know I shouldn't worry about other people but it's just not fair. They do absolutely nothing and get paid for it. Also, I get yelled at when they screw something up because I am the lead.

As an example of their work ethic, there are people on my team that have not had an SVN check-in in over 5 weeks.

What can I do?
Matt Luker Send private email
Sunday, December 20, 2009
 
 
There's something wrong in your company... Usually the tech lead gets paid better than other team members.
dcl Send private email
Sunday, December 20, 2009
 
 
Your company is broken.  Nobody should really get yelled at when anyone screws something up; you're supposed to fix the problem and learn from it, not have yelling.  I'm not even sure the role of getting coworkers to be productive should be your job and not the job of the project manager.
That said, as much as I dislike Agile/Scrum, it solves some of these problems.  If noone is doing anything, frequent status meetings (I would really go with one or two a week rather than Agile's daily standup, because hardly anyone knows how to conduct an effective standup) will at least shame them into either having to lie or admit they aren't doing anything.  If the problem is that they are stuck, then they can ask for help.  If you have code reviews, you can control the quality of the code.
I'm a little more concerned with the manager blaming and the "software engineers, using the term loosely" bit, because it indicates something about the culture.  If people get stuck, do they know they can go to someone else for help or is this one of those cultures where admitting a lack of knowledge is seen as showing weakness?  I have seen a lot of combative smartest-guy-in-the-room cultures over the years and they tend to be nonproductive and bug-ridden.
noodling Send private email
Sunday, December 20, 2009
 
 
I have had some limited success in setting up statistics on our repository using http://www.statsvn.org/. And teaching our manager to run reports in our bug tracker to see who is actually fixing bugs.

I know that Joel might say that it encourages programmers to game the system, http://www.joelonsoftware.com/news/20020715.html. But we were in the same situation where I wasn't trying to encourage a large amount of productivity just any forward momentum at all.
Brandan E. Lloyd Send private email
Sunday, December 20, 2009
 
 
There's nothing you can do against slacking, it happens everywhere, at any level.

- Give reasonable deadlines + extra days for the slack
- Write specifications for them to follow
- Ask them to submit for code review
- Ask them how things are going time to time
- Have a set of policies, so that if the bare minimum isn't done, you can't just point it to them "you don't follow the rules".

If their salary is low, think about performance reviews if such a thing exists in your company. If the salaries are low and won't ever change, think about hiring interns or juniors.

If none of the above options are applicable, if something goes wrong BLAME IT on the person, and only do minimum checks. Talk about responsibility and ethics, competences, communication. The goal is for them to understand that if "they can't make it work and don't mind about their job, they can and will eventually be replaced".

If you always do the hard work, they know it, so they'll stick to the bare minimum. "Anyway, he'll fix it... so let's do nothing.". You have to let them take responsibility for your own sake or they'll drive you crazy.
Jeremy Mandelson Send private email
Sunday, December 20, 2009
 
 
You have responsibility for these people's work product, but no authority over them.  That's an impossible situation.  If your management won't deal with the issue when you bring it to their attention, then that's further evidence that the company's management is either incompetent and/or broken.

There's nothing you can do about this.  I spent years at a job in a similar situation thinking that management would finally see the light and I would be vindicated.  Finally I wised up and got the hell out.
Jason Send private email
Sunday, December 20, 2009
 
 
Thanks for the great advice. I agree with everything you guys are saying. I just wanted to make sure I wasn't crazy.
Matt Luker Send private email
Sunday, December 20, 2009
 
 
Matt,

You are not alone. This is the norm, not the unusual case in (in big companies). I feel your pain too.

In the army, we had a saying that applies universally. My loose translation is "He who puts more effort, drowns"
(Mi she mashkia, shokea. Hebrew).

I agree with the people who suggested an agile solution. I do not adhere to the agile cult, but it increases visibility by a factor. If the managers can see with their own eyes, daily, how much difference there is between your contribution and theirs, you will be eventually in a better position. Maybe.



Best regards,

Ari
BeMeCollective Send private email
Sunday, December 20, 2009
 
 
I don't understand why you are picking up the slack.

What is going on, are you staying late to do the work of your useless colleagues ? There is some kind of important deadline that you are trying to meet ?

Or is it that you just want to work on something that shows progress so you can move onto other interesting work ?

It's too easy to say that in the current economic climate everyone has to shovel shit and you're just trying to cling on to your job. That's not the picture you painted. It sounds like your company can sustain the leeches and you're helping it happen.

Why can't you say to your manager "I can't work all this overtime, my wife is getting angry with me, I haven't spent time with the kids, there's no reason why the other people in the team can't do what they are supposed to do." and then go back to working normal hours. He can't expect you to do overtime if the slackers aren't going to expend any effort.

If you are annoyed that you aren't doing interesting work, then you just have to look for other ways to achieve that. Everyone would like to work in a low stress, high motivation environment but it's not possible.
koan Send private email
Monday, December 21, 2009
 
 
I agree with the responders who said you have a broken company.  Specifically where you comment that some of the slackers "don't know how to code".  Huge red flag there.  Were they hired as programmers, or something else and then pushed into a programming role?  If they were hired on as programmers but don't know the craft, that's a huge management problem.  If they were hired as entry level programmers with the understanding that they learn OTJ, then you should help them learn.  I know it's peevesome to sit down and teach somebody because it's much faster to just do it yourself.  But everybody will be happier in the end if that person learns how to do the work and becomes a useful member of the team instead of a leech.  Now if that person is defensive about being taught, then that needs to be pushed up to management again.
carrie cobo1 Send private email
Monday, December 21, 2009
 
 
Gosh no, man, don't give him better specs and designs.

You're dealing with a dude that can't really code and has no interest in really learning.  Better specs means you could have just written the thing yourself.

My advice: Figure out what he can do to contribute to your team.  I don't care if it's bringing coffeee.  Maybe it's writing documents to make auditors go away.  Maybe it's interfacing with the 'peer' organizations that you don't like dealing with.  Maybe it's taking some of the boring routine duties off your manager.  Maybe it's shopping for your wife.

I'd suggest having a frank conversation with the guy in the presence of wintesses: "look, Bob, you can't code and don't want to.  What kind of work can we find for you that you'd be good at, that you'd enjoy, that can take some of the pressure off the team?"

I had a PM who used to go buy me subway at lunch. 

I am serious.
Matthew Heusser Send private email
Monday, December 21, 2009
 
 
Different people have different capabilities and strengths. As team leader, it is your responsibility to try and motivate them to get the best out of them. How you do so is a measure of your skill as a manager.

If you are being paid less, however, this is an issue that you should be prepared to address. Try and figure out what an appropriate compensation would be for you, relative to the others on the team, and negotiate for it.

Negotiate from a position of strength. This means that if you are really worth what you are asking, then you should be able to get this on the market. In other words, be prepared to go elsewhere and get paid what you are worth if your request is turned down.
larry wannabe Send private email
Monday, December 21, 2009
 
 
Are you sure you're not that guy who was given a fancy title and an office to get him out of everyone's hair?

"team lead" but no authority and making less than the people "under" you, and your manager ignores your pleas?

Something doesn't smell right with this story.  If it is as you claim, then I think you might be that guy.
Fake Programmer Send private email
Monday, December 21, 2009
 
 
First, you need to make a unbiased political assessment of the present situation.  If the unproductive workers are aligned with management, your only option is to find another position.  However, if they are just flying under the radar, you need to learn how to manage people out of their jobs.  It's a bit of an art form, but even the most slothenly employee can be motivated to find another position without having to resort to dismissal.  If you want to get a better handle on the "managing out" process, pick up a copy of Cynthia Shapiro's book entitled "Corporate Confidential: 50 Secrets Your Company Doesn't Want You to Know---and What to Do About Them."
Bit Twiddler Send private email
Monday, December 21, 2009
 
 
You need to work on turfing them out.

Suggest to your manager that maybe they would be a better fit in another department.  Maybe QA, 'cause you know those guys could really use the help.
Xampl Send private email
Monday, December 21, 2009
 
 
@Matthew

Yes, I have heard of such stories, especially of the old days at the big companies where firings were extremely rare.

I have worked at one place that coddled the absolute worst programmer I have ever seen, and that's saying a lot.  He is the only person I ever told my managers should probably be fired.  Yet, at this same company, I saw a number of productive people get terminated for no reason I could ever figure out.
cal_programmer Send private email
Monday, December 21, 2009
 
 
just don't do the extra work. don't work the extra hours. your manager can't fire productive people and keep unproductive ones.

the only exception is if you are a contractor. This happened to me once on a government contract. My project manager was from one company, my manager and systems administration another, and I was a sub-contractor.

My sys admin did nothing. He didn't even show up. He might show up 10 hours/week and "work from home the rest". We would have to go to the data center and he would show up 5 hours late. He once told us he would be at the data center at 9 AM and I called him at 10 AM. He had decided to go to the gym and work out instead of coming to work.

I was told flat out by manager if I told anyone about this I would be fired. He was covering for the guy from his company and I had to do his work.

My only option was to quit.
Contractor Send private email
Tuesday, December 22, 2009
 
 
Call for weekly meetings with one or two productive and unproductive workers of your team, and have them to explain to the rest of the team what and how are they doing.
Mike C Send private email
Tuesday, December 22, 2009
 
 
Wow, excellent advice above from Matthew Heusser. Not everyone can code well, so those who can't can work on other things. Be the code librarian, get the coffee, do research on frameworks, pick up office supplies, whatever, but get him doing something. Great advice.
Scott Send private email
Tuesday, December 22, 2009
 
 
If you have someone on your team whose role is Programmer, whose pay level is Programmer, but who is incapable of actually programming, then putting them to use as a copy boy or gofer is really not addressing the problem.
Jason Send private email
Tuesday, December 22, 2009
 
 
Sure, but we have to accept the premises of the OP. That's how this game works. Here, he has little authority, certainly no authority to change pay levels or fire people. Perhaps though he has authority to assign team members to tasks, or suggest it to them. If he doesn't even have that then why is he a lead at all. If he can suggest things, it is BETTER for the incompetent to have something useful to do than if they spend the day surfing the web and chatting up the receptionist.
Scott Send private email
Tuesday, December 22, 2009
 
 
@Scott

The reality is that a lot of companies who have lead roles are actually just a Senior developer with no authority. In my company, we have leads who provide input to managers but no say in the decision making.

They are more of herd runner and people to be yelled at, when things go wrong. There are many options for OP from looking for new better role to "suck-in" or just wait for the better economic times(would be my advice).

A "true lead" will never be found in companies like OP.

Thanks.
Mr. Smith Send private email
Tuesday, December 22, 2009
 
 
The OP is the problem here. If the situation is as bad as he says, a competent programmer would have either recognised it and not taken the job, or else, after starting as tech lead, fixed the problem.

What sort of tech lead has no authority, or gets paid less than his staff? One who's not really a tech lead at all, but doesn't even understand that.

OP, you need to go to your manager and ask how you can improve. Why were you given the job?
Aye aye Send private email
Wednesday, December 23, 2009
 
 
"I'd suggest having a frank conversation with the guy in the presence of wintesses: "look, Bob, you can't code and don't want to.  What kind of work can we find for you that you'd be good at, that you'd enjoy, that can take some of the pressure off the team?""

If I was your manager, I would seriously consider firing you. I would hold it against you in your review also. It is not your job to publicly humiliate co-workers.  Everyone is replaceable. Especially when unemployment is 10%.

If you have a problem with a co-worker, you take it to your manager. If your manager expects you to work longer hours to make up for it, simply refuse. You don't go putting down people and especially not in front of others.
Contractor Send private email
Wednesday, December 23, 2009
 
 
I have had co-workers who piss and moan about people all the time. yes they get work done (generally people who complain about others are not as good as think). It causes all kinds of problems on the team. They don't want to work with some people and I unilaterally refuse to work with them. I would rather work with someone who is not as good who does NOT have an attitude problem, then someone who gets stuff done and is a jackass.
Contractor Send private email
Wednesday, December 23, 2009
 
 
@contractor - well, of course, your boss is the commander, and it's important to grok commander's intent. If you were my boss, I suspect I would know you well enough to defer the issue to you.

In my experience, many cubicle-bound managers in the corporate world are /extremely/ conflict averse, and would certainly rather have me lead the discussion (in the presence of a couple of witnesses) than do it themselves.

Also, I'd handle it a lot more politely than you seem to infer by reading it.  It's not my goal to insult or humiliate anyone, but instead to get them to doing productive work.

Someone else wrote:

"If you have someone on your team whose role is Programmer, whose pay level is Programmer, but who is incapable of actually programming, then putting them to use as a copy boy or gofer is really not addressing the problem."

Well, it's a step in the right direction.  After 6-12 months the discussion changes to defining the correct role for the person, changing the job description, etc.

Me, I'm a "Member of the Technical Staff" in a scrum-like team;  I'm just not all that worried about titles or roles for other people as long as my pay is ok.  I can see how it'd be a bigger deal in cubical-land, but it's certainly an issue for management at that point.

Just my $0.02.  Feel free to disagree.
Matthew Heusser Send private email
Wednesday, December 23, 2009
 
 
" You don't go putting down people and especially not in front of others."

This was not the intent of my post.  If it came off that way because I was hurried, I apologize.
Matthew Heusser Send private email
Wednesday, December 23, 2009
 
 
I hadn't noticed the bit about "in front of others". I agree with Contractor.

Telling someone "Bob, you can't code and don't want to." privately as part of a problem solving session can work. But telling someone "Bob, you can't code and don't want to." is front of others is definitely humiliating them in front of the team and is probably going to destroy morale.
Scott Send private email
Wednesday, December 23, 2009
 
 
Been in this situation to some extent, and a worrying sign to me is that you use weeks between check-in as an example.

I would be a little concerned about communication and if you are striking the right balance of being assertive and listening.

I personally think you need to be a manager and manage. One method would (as others have pointed out) Agile style scrum meetings. In your team, would only be 5 minutes to get everybody (including your self) to say _daily_
  a) what they are currently working on,
  b)  when they expect to finish.
  c)  what help/support they need
Listen, don't challenge, write down quick notes.

You will quickly produce documentation that clearly, objectively and unarguably, demonstrates that somebody who claims to be adding a title to the TPS report is taking 10x longer than required. People - including good programmers I know, can be shocked when they see evidence of their failed estimates over and over again.

It is also fascinating to sit in (weekly) progress meetings and read the minutes that show an offsite developer had promised delivery every week for six weeks. Then asking them when the ETA would be. It becomes so much more obvious than simply noting when they finished.
Grant Black Send private email
Wednesday, December 23, 2009
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz