How should we handle an over-productive employee?
workplace.stackexchange.com
workplace.stackexchange.com
SDE I - can work on clearly defined components of a project assigned to them
SDE II - can work on an ambiguous project with multiple components lead by a technical strategy
SDE III - lead influence and define strategy for ambiguous projects across multiple teams
This person is operating at an SDE II level but is being managed at an SDE I level...it’s time for a promotion. What’s worse is the manager is micromanaging the engineers. Instead the employee needs to be given more ambiguous project level work that aligns with the team/product strategy where they can define their own tasks. Also the manager should consider falling back from managing at the task level, instead helping facilitate at the project (or “story”) level. The fact that the manager is managing at a task level and is unable to find work for this engineer tells me that the team doesn’t have a strong tech lead who is familiar with the team/product strategy and can help mentor/lead other engineers.
In terms of retaining the engineer and making them less insecure about their role, when the manager gives the team member more insight into the team’s strategy and the way that the manager is evaluating their work it helps team members feel more secure in their role. A lot of the anxiety comes from guessing what your manager is thinking and how you are being evaluated and shows a lack of communication between manager and team on strategy, values and performance evaluation. The manager should consider holding weekly 1:1s focusing on these topics.
>Bob doesn't want to lead or be a manager,
pretty sure at amazon or any "big tech" you get fired for this
SDE I -> SDE II -> SDE III -> Principal Engineer (SDE IV) - you provide technical advisory and strategy across an organization -> Distinguished Engineer/Sr. Principal Engineer etc. (SDE V)
Some choose to stay at SDE III level until the end of their career though since it offers the most freedom to code. You absolutely don’t get fired for this.
This track exists at Oracle and Google. I am not familiar with the others.
There’s a whole book on this: https://staffeng.com/book
I once basically had a part time secretary and it was fantastic. A few hours a week could even be enough, it just frees up so much mental space. It boggles my mind this is not the norm.
It doesn't mean it's a solo project. It just means you have the technical direction and you can let ppl manager to handle ppl side of things and you do almost 100% tech side of work. If you have 0 tech leadership and can only work on tasks assigned to you, you are not even ic4 worthy, that's absolutely ic3 ie ng level.
Again this is more of a feature in big tech where this kind of projects are available
The exception to this rule of course tends to be the top of the ladder (senior principal, whatever) who generally get to do whatever they want as long as it's company related. 99.99% of engineers will never reach this point, however, and so the vast majority of these high performers are subject to the tyranny of JIRA and it's subsequent negatives.
Yea, instead of thumb twiddling, just go fix some bugs! Every company I've ever worked at had 1. more bugs than could ever be fixed and 2. had an incoming bug rate faster than the team's fix rate, therefore the bug count perpetually grew. Some of these could be long standing bugs that annoy actual users that just perpetually get ignored by the company. Go fix one and make someone's day.
There is no such thing as a Software Engineer with nothing to do. When I read HN comments from software engineers who say things like "yawn, my work fits into about 6 hours a week, and the remaining 34 hours I just take it easy, maybe work on a side project, maybe horse around on Facebook..." my mind boggles! Where do you work where there are no bugs in the backlog to fix??
If there are really no bugs to fix, maybe look into cleaning up the code base. Turn a few compiler warnings on or run the static analyzer and go looking for trouble. Re-factor that gnarly part of the code that's always tripped up new employees. Add unit tests. Add integration tests. Automate some part of the build. Maybe work on a nicer bug dashboard.
It's a good thing different people have different preferences - cleaning up a gnarly, messy old codebase so it doesn't just work, but actually shines, is some of what I love to do most!
In my experience, most companies have some baseline level of work they expect you to do as an employee. Once you complete that, then you have some flexibility to choose the work that you do so long as it adds value to the company. It is also important that your work is perceived by your manager/peers to add value too.
This is addressed on a comment on one of the answers: They had three sprints worth of backlog until Bob joined and burned through it all.
No, you're expected to feel a sense of ownership over and identification with the system, and to have a fairly deep personal sense of itches that need scratching and ideas worth exploring. Some of those ideas may originate from other people, but if you need other people or an issue tracker to tell you what the backlog is, you're not really right for that kind of role.
Never own anything unless a board of directors decides your fate.
I have a sense of professional responsibility that says do my best at work because I take the money, but that is different.
If I have unallocated and paid for time at work I look for things to fill it with that are valid work and improve my skills, or braindead things to fix like typos in the text or simple documentation updates. Both mean I am earning my pay and oddly enough I get a lot of props for the second and so does the engineering team overall for that work.
totally cool if you dont have that, you can work at some bank or hospital and work in your own style, but the compensation will be smaller
"Until that guy burns out and crashes."
"Are they abusing drugs?"
"Bob is doing things without really understanding what he’s doing"
"Bob is working far beyond what he’s billing"
"To me, this sounds like the “smart guy” who if left unchecked will leave a trail of destruction."
But e.g. considering "setup a packaging solution in days, when it wasn't done in a month" or "stuck for three weeks reviewing code which took two weeks to write" suggests either the star performer MUCH better than the others, or that he's more careless.
"working without really understanding what you're doing" is a good technique in many cases, though, rather than a criticism as-such.
Of course caffeine is huge, but we had a 10x type programmer who suddenly went full 180 degrees.
Turns out he stopped taking his Adderall.
My company tried to hide it by saying "mental illness". That's still the official message, despite everyone next to him knowing full well what happened.
>Until that guy burns out and crashes
I see this most with new grads. The company knows their enthusiasm and ignorance to red tape and how disposable they are. They use these new grads on the worst jobs, long hours, terrible work experience, or thankless. The new grads do a decent job, but become disenchanted because their hard work wasn't rewarded either professionally with a promotion, or never made an impact on the company.
---
I genuinely don't know what to do with over productive people. They are going to be disappointed. Although I'll take one at my current company, we have a backlog!
With how difficult it can be to do anything with an executive dysfunction disorder ( what ADHD is ), I can totally see someone being fine on their meds, running out, and then being super unproductive as they also navigate scheduling mandated check-ins with a medical professional so they can get a refill ( it can be a huge pain in the ass )
Anecdotally, I kind of relate (diagnosed & managed) ADHD as being somewhat similar to Bipolar Disorder, but applied to the attention span instead of to the mood. When I am capable of working (either once in a blue moon off my meds, or anytime I’m on my meds), I can clearly see that I outperform for my experience level. Without the meds, it’s the opposite. When I’m “on”, I’m more “on” than my colleagues, but vice versa for when I’m “off”. The peaks and valleys to my attention span and productivity are far more intense than my peers.
(Actually, this is why I only take Adderall on days it will make a noticeable difference. The symptoms it corrects don’t need daily doses, and intermittent use preserves my therapeutic response to it AND my ability to function without it.
Use drugs wisely!)
Going from desktop to mobile development, for example, isn’t a monumental task necessarily but if you’re spinning up on an entirely new framework, language, and even way of thinking (old devices, low connectivity, etc) I’m extremely skeptical that you could learn it to any appreciable degree in a week of real time, let alone work time.
Sure, it’s possible there are factors making this transition easier, and yes some of those mobile concerns apply to desktop as well, but to me this reeks of a few possible situations, none of which are good:
1) Bob is doing things without really understanding what he’s doing, perhaps literally following a guide to the letter without a shred of critical thought about what he’s doing.
2) Bob is working far beyond what he’s billing
3) You’ve over-hired by a fair amount and your technology is so simple that people can solve your business needs even in disparate contexts extremely easily. If your Android app is just a web view connecting to your site, for example, sure i can see that being simple enough to fix in a week.
Often smarter people tend to congregate and less smart people do as well. So many people live in bubbles where they think they're the smartest person in the room; but the reality is there are plenty of rooms out there where they'd be the stupidest person.
I don't know who you are but the fact that you can't comprehend the existence of someone who has superior productivity is an indicator that I think you haven't been humbled. You live in a bubble. Try switching rooms sometimes to see what's out there.
The common trait for all of them was a desire for deep understanding and diligence in acquiring that in all aspects of their lives, not productivity or even the appearance of it.
An emphasis on, or even appearance of, productivity is something I find in dilettantes more frequently than anyone else (probably not shockingly). The Instagram CEO types, frequently.
I may well be the best rubyist that can program while captaining a tall ship. Thats a 1 in 7 billion talent
The more talents you consider the greater the fraction of the population is world class for some unique intersection of them, e.g., ruby programming, while captaining, a tall ship
To your point though, more like one in 100 million I suppose if I’m to be more accurate.
Additionally, Nobel Prizes only cover a handful of fields out of hundreds of possible fields people could work in. I would put it at more like 1 in 100,000 or 1 in a million.
From my view point it really depends on if the Nobel laureate won the prize for IQ or productivity; or whether the category has any relation to the two aforementioned categories. If I remember correctly only very specific Nobel categories meet the aforementioned criteria.
Is this some kind of nihilistic moral relativism thing you’re playing at here? Otherwise I’m unclear what your point is.
You implied I’ve never been exposed to extremely smart people and couldn’t fathom someone like Bob existing, I think I’ve made it pretty clear that’s a silly argument you made from a bad assumption.
I thought my point is obvious. I'm saying your descriptions are unconvincing.
The obvious path forward is to describe your "bubble" in further detail. What was the nobel prize for?
> A factor in my judgement about whether the people I’ve met who dwarfed me with their intelligence were actually intelligent? Yeah I’d say it’s a factor :).
I think this sentence shows you're unable to sense the implications of my statement. Why would I care about your judgement at all? Nobody cares, especially if we think you live in a <small> bubble. Does this clarify the next step? I'm basically asking for a more detailed description of your "bubble" so that I and others reading can make their own judgements about your bubble and the validity of your claim.
So far your arguments of "academia" and "nobel prize" are unconvincing to me. Is that not obvious? I thought it was, I guess I need to be more explicit next time.
Why do you expect a stranger on the internet to prove the relative intelligence of everyone around them, to you
Why do you expect a stranger on the internet to answer your question?
I'll answer your question regardless: I'm not expecting shit. My question was more of statement about why I disagree with him and why his opinion is invalid to me. I don't think he had an answer. I only ask for a "proof" out of politeness.
Also, someone who isn’t expecting an answer doesn’t pedantically repeat their condescending question across the thread.
This is very unlike Your post which is full of malice. Yeah let's talk about our academic circles. I offer mine freely: UCLA. Not that great of a school honestly. It also depends on which department your in.
Now yours: UC Santa Barbara. You never offered it, yet I know it. So how smart is your academic bubble? I feel if it was bigger you'd be smarter about how you approach strangers on the internet. If you approach with malice, they can return your query with equal malice... or greater. Sometimes far greater.
edit: looks like you found @whynaut on github? I don’t repeat usernames, though.
> unlike your post which is full of malice
Hah! You need some serious introspection.
The only connection you could possibly draw to UCSB from anything in my life or profile is this username/that @whynaut person, because I’ve never stepped foot there or even considered it. Not sure what lying gets you here.
Is Bob's emphasis on productivity directly or is that a result of a different emphasis.
From the article:
>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.
One interpretation is that Bob isn't anxious about the lack of productivity nor about others not being productive. His anxiousness is from not doing a good enough job and risking his job. Bob is likely some combination of having been taught to please people, that he must be maximally productive to keep his job, and being in a position where loss of a job would hurt enough to cause anxiety (developers being one of the few roles that are able to earn themselves into not needing a job, but Bob isn't there yet).
This isn't relate to Bob's intelligence, but to his upbringing, what he was taught to value, and his current moral situation (and a lack of teaching him to pace himself to avoid burnout). In this specific case Bob is doing well enough to be causing a problem for others, but it is common to meet many Bob-like people don't get through the entire backlog as quickly or otherwise have an effectively infinite backlog. Those cases often seem destined for some burnout related negative outcome.
My response was that I’ve met plenty of people far smarter than myself, but productivity wasn’t their defining character trait or even a particularly noticeable one.
Someone who’s “ultra productive”, like Bob here, is reason to be suspect for all of the reasons I listed in my original post.
Much of my career, not as dramatic.
My view is the right person given the right work and low enough barriers can 10x their “normal” productivity level. Right work here means not just a technical, but a moral, aesthetic, curiosity, etc fit.
Bob seems to be intermittently getting those conditions.
ADDED: Management might want to strategically consider business opportunities for using Bob’s fast turnarounds. Higher rates for fast deliverables for instance.
The selection process in schools stratifies intelligence levels between institutions moreso then the corporate world.
It also depends on country. For example in china the education system relies heavily on quantitative results similar to an IQ test. In the US there's more leeway for bias, opinion and affirmative action. Thus, if you're in academia in china the people who surround you are much much more stratified then academia in the US.
Where you went to school illustrates your bubble. Were you in the top bubble or mid bubble or bottom bubble. Saying you're in academia further emphasizes my point.
I mean you’re in your own bubble making this judgement right now - is it inconceivable to you that someone has truly met some extremely intelligent people and what I’m saying follows about Bob here?
Maybe time to get out of your own bubble ;).
Everyone is in a bubble. This is obvious. Nobody needs to be told this. The entire earth is in itself a literal bubble. Again, Nobody needs to be told this.
Obviously what's going on here when I use the word "bubble" is I'm saying your "bubble" is small and low such that you don't think someone with superior productivity can exist. The description of Bob doesn't mesh with you, while for others who live in bigger bubbles think there's nothing abnormal here. So Obviously I'm talking about the Size of the bubble... and I'm saying your bubble is small.
You said it's not because you're in academia, and I said academia is the ultimate <small> bubble and I gave my reason why.
I didn't think it would need spelling out, but obviously the way forward is to further describe your "bubble" what makes you think it isn't "small" or "low". I mean this is pretty obvious. For example... which academic institution, which major, and what other experiences you have outside of academia?
>Maybe time to get out of your own bubble ;).
Of course this is Possible. But, obviously I'm not in agreement with you, and our disagreement is the purpose of this discussion.
Your counter was "academia." So I emphasized how that doesn't tell me anything. Again, what do you think the obvious next step is?
100% This.
that's a bias.
That's a bias.
(RIP everyone not still in existence)
Engineer #1, spends 30 hours in a week flawlessly moving an important backend service to a completely new framework, adding complete test coverage, impeccably clean code, clear, readable documentation, and who even gets accolades from their peers for their work.
Engineer #2, spends 2-3 hours reading the code and the code of the dependent services, talks to a few non-development teams about how they use the service, and determines that the backend service never needed to exist, and with a small business process change that will save $1MM a year, convinces a director to nix the entire project.
Engineer #2 was more productive. But to an outside observer, and especially so to highly intelligent, highly productive engineer, #2 will get a massive amount of hate. Since the productive worker archetype almost always focuses on how the work is valuable to them but has a limited sense of direction on how it is valuable to others.
> He expressed that to me. I'm the tech/team lead, but not the manager. I told him our manager isn't going to fire him and that his productivity is stellar, but he kept himself skeptical. Being fair, I understand his fear of being fired - he was fired from a similar position because of how looks/dresses on his free time. Our company couldn't care less for those things, as even our CEO is fairly alternative herself, but those traumas never really go away.
That is also what stuck me when i read the OP; it is just too good to be true.
I have only seen people this productive only in the niches that they worked-on/had-expertise-in and never any "Generalists". It is funny to me how people here are swallowing it all wholesale without any critical thought.
Joking, but it is a possibility.
It is a thing that’s happened obviously though.
If the business model is a simple framework where incremental tasks are assigned, consistency and risk management is more important than happy developers. If Bob is a true rock star, he’ll move on, which makes sense. In the meantime, the business has redundancy and isn’t impacted.
What helps me is a really good manager - of which I have had two out of ??? in 25 years. When I'm out of tasks they allowed me to refactor and fix longstanding difficult bugs. It has the added advantage of getting me deeper into the code and allowing me to build better foundations for future work which makes me more productive for a nice feedback loop.
They also have allowed me to train up other developers and write up official coding standards with down time and that has been great, too. It's nice when all your code looks mostly the same.
Also being able to repeatedly decline a promotion to management but still get paid well has been good for company loyalty.
There is a downside in that most days feel like, well, kind of like a Games Workshop orc going "Waaaaaaaah!" where I'm just hurtling through the work and my brain is just spinning max RPM and then I go home and it's hard to stop the momentum. I have to excercise to clear my head or I won't sleep.
Hmm, a single "most helpful tip" - that's tricky.
Okay, how about, "read a lot of code and write a lot of code".
Thing is, I really like programming, and would do it even if I wasn't paid. Early on, way back in the DOS days, I wrote most of the programs I used - contact manager, calendar, compy automation and so on, in C, then C++. Then when Windows came along I wrote the same things in Borland Delphi.
When I want to learn something, I spent a fair amount of time studying up front, but I learn way faster just starting to write something. Walking through with a debugger tells you a lot more than docs. Professionally it has been much the same. I work on a lot of legacy systems. I learn the code, usually by debugging, and then when asked to do something, I usually refactor to be more modern and reusable, and then do that reuse when possible. I'm not really a neophile so if I have a bunch of services I've used for 5 years that work great I'll just keep using them. Everything gets done with an eye for re-usability. I love solid code I can depend on.
Also, I keep really, really, stringent coding standards for myself, and the Dev team is mostly the same. We've agreed to these as a group, so we code review everything for SOLID, KISS, and conformity to our code review guidelines. It makes reading code a lot easier.
I hope that helps.
Seems like I could break your "tip" down into "write a lot of code" with an honorable mention to "coding standards help".
https://github.com/RicoSuter/NSwag
Which has 1.7k issues, some of which are open for years.
> It's a good idea for everyone (including Bob) to have a well defined side or pet project. Something that's useful for the business, fun to do, but doesn't have a hard deadline or deliverable yet. Could be technical or scientific research, tools, process improvement, experimental features, documentation, user research, competitive analysis, etc. This is "stuff to work on" if your hair isn't on fire and your tasks are mostly done. These can be defined in collaboration between the employees and the business stakeholders.
> Have bob start filling up his own task queue
What about looking internally about tools, techniques and approaches that can help him accelerate the team. It is outside of the product.
From what I have seen of hyper productive employees, there are two types:
The self aware junkie - they know why, how and what to do. You can ask them, and they will tell you. People won't necessarily agree or understand why it works, but they know. This ability to externalize and communicate allows for step function improvements in the org. IF the team is willing to try new things.
The naive "I dunno" - this is much harder, they do what they do, but they don't know how they do it. in this case you just need to fill up the hopper with more work.
Of course there are risks here, the velocity my end up making the system "their system" capturing their ideas, conceptualization, etc. If they have a great bar in communication (documents, diagrams, etc) then that can work quite well. But the risk is that people may not understand what it is they are working on in the end (see Tao of Rodney in Stargate Atlantis).
But ultimately this is between the engineer and their manager. They need to work it out. The engineer needs to work out what they really want, and the manager needs to work out how to provide.
In the workplace, if you get good at something, you are generally expected to work the same fixed amount, which means the company reaps most of the rewards of your gains in productivity.
On the SE thread, people recommend rewarding Bob by giving him more work, a promotion, or more money. One person suggests allowing him more free time. Were I Bob, I’d want more money and a promotion, but most of all I’d want more time. But that just isn’t how things are done in most workplaces.
I think most people in Bob’s shoes would just pretend that they are busier than they are.
Bob should stop doing any work himself and instead focus on teaching other developers. Most programming time is spend being stuck on problems and debugging, the mere task of coding is often trivial for most devs. A high achiever like bob could propably help people solve issues they are stuck on really fast. That in turn would 10x return the performance he can achieve himself.
Part of the value of a technical career path is to let high flyers teach experienced developers. While some people are good at training, it is its own skill. Some advanced IC's forget how to teach the basics, but are good at teaching advanced skills.
To be clear, I'm agreeing with you. I just wanted to add the caveat that Bob might fit best as a staff developer who trains senior engineers. He may or may not also be good at training juniors.
But if Bob is really getting bored, then it he isn't a fit with your company, and that's a decision he needs to make.
If you don't have an HR department to ease Bob's pain, I hate to say it, he's an adult and doesn't need to be coddled. Let him make his own choice to stay or leave. OP has been completely clear.
Hmm, a month? I wonder if the other devs are also a problem?
Where is the long list of items that have been shoved to the backburner?
What lean projects could be implemented that Bob can work on? i.e. Bob makes everyone more efficient.
What is the toughest project that exists for the team? Assign to Bob.
What ancillary projects exist in the business that Bob can tackle. Perhaps these aren't just Dev projects.
Good business is about best utilizing the resources you have. Bob in this case. You are wasting his time.
My interpretation on the comment, sounds very similar to my co-founder, who is an absolute learning machine.
For Bob, he clearly picks things up quickly, but from the sounds of things, they aren't extremely challenging tasks, and Bob sounds like the kind of guy who could benefit from going deep on something challenging, if that is what they want.
I guess my question is, if your company isn't able to provide the type of environment where Bob can thrive, why do you want him there?
Wouldn't it be better to help Bob find a job where he is adequately challenged, where he can grow into someone truly exceptional?
Yes, it's difficult letting good people go, but if you as an employer can't provide enough challenging work, then you need to do the right thing.
Think of it like a sports coach. If you've got the best player in the college league, and you know if you can just keep this player, you'd win the championship for the next 10 years, would you keep the player? Hell no! You'd figure out how you can help them get to the majors. What do they need to do to get there.
Either be or find a mentor for Bob to help him find his place in this world.
The worst thing would be for Bob to look up from his screen in 20 years, and think he could have been so much more.
If you were to have a conversation with Bob in 20 years, and you're looking back at what he had accomplished, did he continue working with you through that time? And if he did, was he happy with that? Or were you able to help him move onto something bigger, and what amazing things did he move on to?
Leadership is about training new leaders.
Bob is a kick-ass employee. Why not make him into a leader and have him figure out ways to make the other employees just as productive? He has to learn to multiply his effort. He doesn't need to be a manager to do that; he just needs to be made into a stronger leader and be given progressively larger scope.
But it gets ossified into "these folks are in charge of creating stories...tasks and no one else" and "these folks are queue-picking migrant farm workers just picking up tasks and doing them and nothing else".
You put an Engineering effort through this wire screen and it ends up mush. The Engineering gets lost in the dissection.
Let Bob read all the code, create his own tickets and get back to work. This whole question isn't "How to keep Bob busy" but is instead "How to rationalize our system that Bob is so clearly illustrating is broken"
It is clear that Bob has a lot of potential, but it crucial someone take the responsibility to mentor him and channel his zeal. This could be open source projects, building new side projects at work, and making him responsible for more than just a steady flow of client tickets.
People like Bob often spend all of their energy on mundane tasks, and burn out or just lose interest by 30.
As someone who just passed 30, and feels a tad bit bitter about wasting some of my potential, I wish I had someone to tell me what to spend time on, and what not to.
1) Normal Agile development and scrum cycle empowers engineers to take their own tasks from the queue at the beginning of the cycle, and focus on those. There is no top-down management unless at the beginning of the cycle some tasks are prioritized. This simply conveys to managers what is going on, for them to relay and forecast to other stakeholders. Bob doesn't have this, the manager doesn't have this. So, what are they doing at that organization?
2) "Promotion to a managerial role" is an antiquated concept, many tech companies are very familiar with this quagmire that developers don't want to not be developers, and so there are higher compensation tracks on the developer side in parallel to the managerial side, instead of one or the other for "advancement". The observation that this organization does not have this kind of leveling also says a lot about how it is managed.
Until these bottlenecks are filled, it is going to be difficult to address Bob's understimulation.
Your company's revenue is part new business and part renweals. The open source product will be a funnel for converting the FOSS users to new customers, while locking down renewals in those customers who use projects he contributes to.
Figure out your customers' stacks, and then pitch Bob on contributing to key libraries and technologies that underpin them.
That said, if I were his manager I’d be trying to help him find an opportunity outside the company that appropriately matches his ambition and skill.
That way, Bob gets a nice full queue and the team as a whole enhances their skill level.
Disclaimer: I don't work in IT and am not a programmer.
Say you have a team with several good performers and one very high performer that just blasts through their work. This can (and usually does) lead to other members of the team feeling they're not as good.
This can lead to them backing away from tasks they are good at, feel they're 'not good enough' and looking for another job (a loss for the team as they were good).
It can also cause friction as the very high performer will often snap up many tasks. Tasks which other members of the team may find interesting to work on. Again leading to morale issues.
Another point is that you should ask yourself how is this person performing so much faster than everyone else?
Are they cutting corners? Are they not planning things and introducing awful technical debt you will have to deal with in a year or two when they have left from boredom? Do they have some undiagnosed/unmanaged neurodivergent trait such as ADHD that may lead them to burnout? Are they 'throwing themselves into work' because of personal issues that may lead to a house of card style collapse if they reach breaking point? Are they abusing drugs?
Over the years I have worked with a few very high performers because of some of the above reasons. I am not saying all very high performers have something from the above list, there are just some people that are like machines on overdrive and always have been. But many times there is a reason behind it and a good manager will identify that for everyones benefit.
In my personal experience the very high performers I have worked with had a mixture of personal and drug issues. One of which lead to a terrible outcome that destroyed their career and family. For a couple of years they were the "rockstar 10x programmer unicorn" people dream of having. But over time problems become more common, internal team issues were almost all this persons fault, etc. They went from being a rockstar to a tremendous liability and resulted in several team members leaving due to the hostile environment they created.
I'm medicated now but I still have pretty strong swings in productivity. Fortunately, I found a job that can work with that. No one has a problem with me taking days off without notice (and sometimes without pay). Being able to take time to deal with episodes has avoided the stress and burnout that has cost me several jobs in the past.
I've also learned to use depressed cycles to re-read my code to make sure I can still understand it. If I don't, I've got an engaging puzzle to unravel and document.
Everyone has something about them that is different. Part of a good team and manager is supporting each others differences when needed.
Cries in new grad not being able to find work and being ghosted by companies after finishing their OA passing every test tears.
Getting gigs will not be a problem.
However, I'd be thoroughly unsurprised if Bob happened to be on the autism spectrum. And autistic people are counter-intuitive but very easy to handle: force yourself to be extremely explicit, and to stick to first-degree in your exchanges to a point that seems ridiculous (to you). That's it, really.
Run some code analysis metrics over his code.
Let's say he isn't.
Give him these challenges:
1. Increase unit test coverage. When it's at about 85% he can stop. 2. Increase automated acceptance test coverage. And so on.
That should buy you time.
Then tell him to learn to master refactoring and patterns and let him knock himself out improving code problem areas.
That's an endless challenge and he'll get old and tired soon enough.
If that's not the sort of place you work, assign him random tickets from random open source projects sponsored by your company. The first task could be to write a random task generator in a randomly selected language. Then, open an office pool and take bets on Bob's tasks. Make it interesting. The person who wins the pool gets to fire Bob.