TL;DR: A hyper-productive, stellar employee doesn't have enough tasks to do and is getting worried that this might mean he is about to be fired. He wants to work more, but we simply don't have enough work to keep him busy all the time.
We have a team of a dozen software developers.
Most of them are of the overall skill/productivity level, except by one—let's call him Bob.
Bob is very fast. He can clear his task queue far faster than other developers, to the point we end up without any tasks to assign to him. He isn't cutting corners or doing tasks half-assed, even - most of his code reviews have only minor adjusts, if any at all, and usually any issues we point at him are solved within the minute.
He is so blazingly fast at killing his tasks that his productivity is becoming an issue, as we simply can't separate tasks quickly enough to keep his queue going - to the point he ends up with nothing to do midway through the week, until our manager has some free time to sit down and allocate more tasks to him. This creates a situation where Bob is becoming somewhat anxious, as he feels guilty for not having enough tasks and is getting increasingly worried that our manager might be holding tasks from him in so he can fired without much hassle at some point in the near future.
That's not the case, as far as I'm aware - our manager is just too busy and can't stop everything he is doing every couple of days to refill Bob's task queue.
So far, we tried a few things, but none of those solved the issue at hand:
- We gave Bob tasks on a programming language he wasn't used to. He picked it up and became fluent on it within the week.
- We tried giving him tasks on an environment he wasn't used to - he's a desktop developer, so we put him to develop for Android instead. Tasks were dead before Friday hit.
- We put him on charge of finding out how to package stuff for publishing using a new installer tool. He got it done in two days - the previous developer was stuck on it for a month and couldn't get it done.
- We gave him a task to implement a major feature for the new system we're developing, and he ended up finishing it in two weeks. However, the amount of work he did was so large that part of our team got stuck for three weeks doing code reviews and couldn't finish half of it yet.
Mind you, it isn't that the rest of the team is incompetent. Everyone is pretty skilled and very good developers themselves, but Bob is such an out-of-the-curve developer that we're having a very hard time managing his productivity in a manner that makes him happy, too:
- Bob loves his work. He codes for fun. He loves fixing bugs and seeing the system growing and getting new features. Leaving him "taskless" is almost akin to punishment to him, as he legitimately has a lot of fun doing his job.
- Giving him time off has a bunch of issues on its own - mostly because he is paid by the worked hour, and corporate has a strict limit of how much paid time off we as team leaders/managers can give out to our employees. Sending him home would shaft his payments, and he adamantly refuses to pad out his time so we can do this "under the sheets".
- He doesn't want a promotion to a managerial role. It's pretty clear he's a developer, wants to stay as a developer, and has no interest in anything but being a developer. He gets a bunch of tasks, gets them done, and move on to the next ones. That's it.
- We can't downsize the team so more tasks would be left over to Bob. Our team has a 3-headed-dog policy - every type of job should be able to be dispatched to at least three different people. This is done partly because it is incredibly hard to recruit software developers nowadays, but also because we want to be able to keep working smoothly when someone goes on vacation or gets sick. Firing one employee so Bob can have more tasks would absolutely cripple our productivity if Bob ever gets sick or decides do leave.
So, that's the situation. And hence, the question:
How does one handle an employee that's too productive? We want to make him happy and make him stay, but we simply can't keep up with his work pace currently.
Is there a reason Bob can't fill his own queue?
Tasks are strictly controlled. Each version of our software needs auditing and approval from an external, client side. Part of of the process of publishing a new version includes detailing what, why, how and by whom of each task, filling up formularies and other misc bureaucratic work. Getting a task on the backlog to be done is a whole process that, so far, our manager seems to like keeping close to his heart. I've scheduled a meeting with him to find out if the dev team has a way of helping him out speeding that up.
Can he pair up with other devs?
He can, and he often does when he doesn't have anything to do on his backlog. It helps, but it doesn't quench his thirst for "getting things done" - he often aks for something to do by himself.
Why you don't promote Bob?
Bob doesn't want to lead or be a manager, and we don't have anything above his current position that he could fill on a strict-development sense. I'm going to push the idea of getting him an architect spot to our manager.
What about free time?
Bob doesn't seem to enjoy being let "free" without tasks on his board, but I'm starting to think that's more of a lack of direction than anything else. After reading some of the answers here, I'm going to bring up to our manager the possibility of filling up Bob's time by offering him courses and new things to learn instead of busywork.
Update: I've scheduled a meeting with my manager next Monday to discuss this situation. Thanks everyone for their input so far!
Update 2: After the meeting, we decided that it would be best not to make a meeting with everyone and giving them a clearer idea of what is expected, and what they could do when they have free time. We gave them a thumbs up to work on ideas of their own during this downtime, and said it was OK to take a break and have a rest/some fun if all tasks are done.
Afterwards, we had a second meeting - this time with Bob only - and gave him extra reassurance, and a staggered raise plan starting January (the sooner Corporate would allow us). We also swapped his work notebook for a way better one, saying that "we hoped this new machine would be able to keep it up with him". He seemed really happy to have better hardware. We also talked to him about courses and other study he would want to do on his free time, and he seemed interested in picking up a new language (as in, a speaking language), so we're setting things up with HR for that to happen.
We also brought up to our higher ups that we had to give out more benefits to our employees, since retention on the industry is becoming somewhat of a problem and we have a team that we really don't want to lose. They are checking out what they can do in terms of benefits to improve morale. Those things are a bit on the slower side, but the gears seem to be moving, at least.
Thanks everyone for the great input!
Update 3:
In addition to extra recognition, a raise, and a few bonuses specifically for Bob, we're going to try out a 4-day week moving forward, for the entire dev team. Our boss thinks that by doing this we'll be able to redistribute tasks in such a way that it will allow better usage of Bob's increased productivity, keep the team well-rested, with improved morale, and hopefully keep them for quite a long while. I personally think it is worth a shot, since a 4-day week is already reality for a bunch of other dev shops around the world. Let's see how it goes!