161 comments

[ 2.7 ms ] story [ 279 ms ] thread
Growing up, when I got good at something, I was able to channel the gains in productivity into more free time. This gave me ample incentive to get good at things.

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.

I think the SE thread mentions that he’s paid by the hour. Which for someone like Bob is quite a poor way to manage them!
Tell him to fill the rest of his time clearing tasks and bugs for open source projects the company depends on.
Best answer here, unleash Bob to fix openSSL or Linux kernel performance improvements or something.
I think training others or leading others is the way to go here. Giving him more work leaves you with the risk of Bob not being available one day for a period of time leaving the rest of the company struggling to fill the hole in productivity that was left after him.
What a great problem to have.
Generally yes having a very high performing member on the team is a good thing. However there are situations where it can cause problems with the team morale and dynamic. As well as sometimes very serious/catastrophic issues.

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.

My productivity can be crazy high when I'm manic, but the code tends to be a bit beyond my own comprehension when I look back on it months later. I also tend to skip tests because they are a "waste of time".

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.

It sounds like you have excellent understanding of yourself and have a supportive work place/manager/team which is fantastic.

Everyone has something about them that is different. Part of a good team and manager is supporting each others differences when needed.

Until that guy burns out and crashes.
Bob shouldn’t be working at a place where he’s only allowed to work on tasks that are assigned to him by a manager, and twiddle his thumbs when he has none. He should be able to create his own tasks, do some experiments, R&D, self-directed training, open source work, whatever he finds compelling.
Yea, this is where I like the amazon model of ownership. It’s something like:

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.

Absolutely, but this is a particular feature of product-oriented tech companies. Enterprise could maybe work like that but usually doesn't. Consultancy absolutely can't. This is why it's so important to work in Silicon Valley and not just any software development role.
>Why you don't promote Bob?

>Bob doesn't want to lead or be a manager,

pretty sure at amazon or any "big tech" you get fired for this

Isn't this exactly what Staff+ roles are for? Being able to continue getting promoted but staying on an IC track.
At amazon the engineer track has leadership level roles:

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

you get fired if you dont make it to IC3 or 4 (depending on company) eventually, and getting promoted to those levels does require leadership. sounds like bob just wants to work on bug fixes forever, there is no path to promotion there.
There are different types ics. You absolute can stay as a type of programmer who concentrate on your own project with 0 people leadership. But you do need tech leadership. You are taking this kind of project because your are technically sufficient and that's your leadership.

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

For that kind of person even IC1 is not a good fit instead I usually recommend they will do better as a QA Engineer, Support Engineer etc. in FAANG or software engineer at a non-tech company (gov contractor, healthcare etc.). At least at FAANG companies IC is not just coding, it’s mentoring, providing technical leadership, writing design docs, oncall, etc. This is not leadership in the sense of a people manager it’s being able to provide constructive feedback to other teammates and positively influence your team’s codebase, architecture and product. Basically being able to lead technical decisions and technical strategy.
SDE2 is a terminal level at Amazon FYI
SDEIII at Amazon is 100% expected to lead other engineers at Amazon, including on defining and delivery complex cross org projects.
Can SDEIIIs have/hire supportive staff to deal with the managerial tasks the don't like?

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.

Uhhh no...? On the contrary in big tech u can stay ic up to even director level. Manager level ics are very common. It's the opposite of what you described
You know why these companies don't really exist, right? Because the majority of people just won't work in those environments, and they are also the environments where it is really difficult to keep track of what people are doing.
I’m not sure it has to be one or the other extreme. Plenty of places have the “20% time” where you’re free to work in a self-directed way, learn about new stuff that interests you, etc. Maybe for this hypothetical Bob, that 20% is more like 50%, but it doesn’t mean that everything has to go totally wild west.
Right, this will probably solve OPs problem for sure.
They don't exist on a company-wide basis, but I've seen plenty of companies where engineers who are capable of setting their own tasks are allowed to do so. (As a sibling comment points out, this is very common in the stereotypical big tech companies, and in fact your promotions are typically based on the scope of things you can get done on your own initiative.)
30+ years in software engineering, ~20 in management, and I've never had difficulty keeping track of what people are doing. Can you elaborate your experience of environments where this isn't possible? It sounds like just the clusterf*ck companies?
I work in fintech, my experience is if you're operating this way you'll have an even harder time to get recognized.
The counterpoint to this is if you aren't specifically assigned tasks you're basically expected to go through the backlog to hunt for things to do. In most companies the backlog is never empty and so you don't really get any time for any of these ancillary tasks. This is part of the reason performance optimizations and other improvements never get done. PMs are encouraged to stuff backlogs full of nonsense related to new features because that's what the people up top want to see. When the reality is, allowing your engineers even 8 hours of unstructured time a week will often produce better work.

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.

> The counterpoint to this is if you aren't specifically assigned tasks you're basically expected to go through the backlog to hunt for things to do. In most companies the backlog is never empty and so you don't really get any time for any of these ancillary tasks.

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.

Common answer is you don't get paid more.
As much as most people don't like to admit it this is also the reason I tend to not vigorously hunt for work in the backlog after hitting my requisite sprint goal plus a few points. Realistically bug fixing like a mad man is what makes us look at each other as good engineers. Managers, however, will see this and raise your sprint points next time making your goals that harder to achieve. Goodhart's law raises it's ugly head every time JIRA is used. Unpointed work can be seen as a boon (in the right company) but in most companies today working on something unpointed is "cowboy" and you're more likely to get in trouble for it. Even if the marginal benefit is positive.
Plus, I may have downtime to dumpster dive for old tickets but my manager / peers usually don't. So try to I avoid creating PR work for others unless the ticket is relevant to the feature-being-developed or a one-line fix.
All the things you've mentioned if there's no bugs to fix sound really boring to do. They're also high effort, low reward (most of the time). I'd rather do something else that I enjoy, than do any of that since I'd get paid the same amount if I did it or not. Not everyone works on something that they're hyper passionate about, or that is very useful to people, to the extent that they'd work on it if they don't have to
Thats more a question of having a balanced team size, ownership and accountability.
> All the things you've mentioned if there's no bugs to fix sound really boring to do.

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!

Yes that's exactly my point. Different people have different preferences so it's strange when the parent comment mentions that their mind boggles when other engineers say they don't have anything they want to do ¯\_(ツ)_/¯
> The counterpoint to this is if you aren't specifically assigned tasks you're basically expected to go through the backlog to hunt for things to do. In most companies the backlog is never empty and so you don't really get any time for any of these ancillary tasks.

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.

>you're basically expected to go through the backlog to hunt for things to do

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.

Why should I feel a sense of ownership over something everyone, myself included, know I do not own? Really why?

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.

there are several tiers of companies, tech product focused companies tend to pay more, but they also require you to have sense of ownership for the product. Companies decided to pay more to have self-driven engineers that figure out by themselves what to do, rather than hire nanny for each engineer that gives and monitors tasks.

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

You can not own anything and be a self starter. I build things because it corresponds to more money, not because I consider my project my "stake". I couldnt care less what happens to it. I will make it maintainable for my own sanity and improve it so long as they pay me. I don't "own" anything. When I'm laid off I don't get to keep anything. So why should I care any more than I have to?
I'm not paid enough. Real ownership comes with a guarantee of future employment. Given my at will employment state I try to stay as disconnected from my work as possible. I work hard out of professional duty. Ownership is a scam sold by the C suite to get young developers to give up their 20s for 0 dollar options. If I feel a sense of ownership and I am suddenly laid off I'll feel angry and sad. If I view my work as a professional obligation to receive money then when I get let go I can disconnect and not feel any regret.

Never own anything unless a board of directors decides your fate.

Funny, I guess this is a personality thing. There is no amount of money you could pay me to work somebody else’s todo list without the autonomy to scratch my own itches or shape my own work’s direction.
> if you aren't specifically assigned tasks you're basically expected to go through the backlog to hunt for things to do. In most companies the backlog is never empty and so you don't really get any time for any of these ancillary tasks.

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.

(comment deleted)
Sounds like he needs more meetings to attend. That should help equalize his productivity.
Quick!! Schedule a few syncs on his/her calendar. That'll show him how to be productive!
I’m going to be contrary and cynical say that something funny is going on here.

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.

To (3)'s point, the manager doesn't realize what's possible and the current devs are actually working 4 hours a week. Bob is exception, and _actually_ working 40 hours a week and getting 10x done.
The question wasn't posted by the manager though, but by someone on the team.
I don't think that was explicitly stated
The poster was the tech lead, per one of their comments.
A tech lead and a people manager can be the same person
It was explicitly stated in the comments ...

> 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.

It is stated by the assertion that the poster doesn’t think the manager is stemming tasks pre-fire. This implies they are different people.
There are people in this world who are very smart. Those people can be much smarter then you.

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.

Just the opposite actually: I used to work in academia and I’ve met some incredibly intelligent people who were leaps and bounds more insightful than 99.9999999% of people I’ve ever met (including more so than myself, obviously).

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.

Are you sure you've known several folks who each have a one-in-a-billion talent level?
No, but I can use contextual clues like other accolades to extrapolate from my own experience with that person here (like being a Nobel laureate, for example).

To your point though, more like one in 100 million I suppose if I’m to be more accurate.

I would doubt that even most Nobel laureates would qualify as 1 in 100 million. There are nearly 1000 living Nobel laureates out of 7.7 billion, so the rarest they could possibly be is about 1 in 8 million.

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.

So you're surrounded by Nobel laureates and that is a factor in your judgement? Did these laureates gain the prize through productivity and intelligence? Does it prove you're not in a bubble and that your experience is broad enough to validate your suspicion?

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.

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 :).

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.

>Is this some kind of nihilistic moral relativism thing you’re playing at here? Otherwise I’m unclear what your point is.

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 would I care about your judgment at all?

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 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.

It was a rhetorical question, I thought that was obvious. Thanks for the useless answer.
You thought wrong. Please work on your communication skills next time you open your mouth or write something here on HN. Don't want to be pissing someone off or violating the rules. Thanks.
Perhaps your bubble simply doesn’t contain enough people with sufficient communication skills to help you pick up on rhetorical questions.

Also, someone who isn’t expecting an answer doesn’t pedantically repeat their condescending question across the thread.

I don't expect an answer. But it wasn't a rhetorical question. It's along the lines of "If you disagree with me or have evidence proving otherwise please offer it. I don't think you have such evidence but I am open to hearing it."

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.

nice try? never went to UCSB.

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.

bro I didn't go to github, or use your username to get your info. Well if you're not from UCSB, then someone else is getting a nice surprise in the next couple of weeks.
Yes, you did. It’s far too specific and confident an accusation to be anything else.

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.

No there's other ways. But Probably still got the wrong person. Too late though and I honestly don't care enough. You're an ass hole either way.
(comment deleted)
Depends how finely you define the talent.

I may well be the best rubyist that can program while captaining a tall ship. Thats a 1 in 7 billion talent

Weird math tangent: the higher dimension a cube is the greater the fraction of the volume is a corner, until at some point the overwhelming majority is in the corners.

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

This makes me wish I had studied more math
You're going off-track. Neither GP nor OP are talking about a person emphasizing their own productivity. OP is only "look at Bob being productive, how do we handle it" and GP criticizes your first reason to be critical of Bob. Not sure why you're inserting the whole "appearing to be productive" assumption here.
The response to me was that I must be in a bubble where I can’t imagine someone being significantly smarter and more productive than myself or my cohort.

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.

There are times in my career I was like Bob, lightening fast productivity, even relative to very smart people around me.

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.

>people I've ever met

that's a bias.

Sure, everyone in existence has a bias of some variety. I don’t think that needs stating.
> everyone in existence

That's a bias.

(RIP everyone not still in existence)

Academia is a series of bubbles. It very much depends on which school you went to.

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.

Well that’s silly, by that logic no one is ever qualified to ever be skeptical about anything because every single person in existence lives in a bubble of their own variety.

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 ;).

It's only silly if you're unable to comprehend what's implied and need everything spelled out to you explicitly.

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?

>An emphasis on, or even appearance of, productivity

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.

>incredibly intelligent people who were leaps and bounds more insightful than 99.9999999% of people I’ve ever met ... 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.

100% This.

This doesn't mesh with the intelligent people I've met. Not all of them are on a quest for deep understanding of everything. It's more that they happen to have deep understanding because of high intelligence, not because of a strong desire to understand.
Intelligence has almost nothing to do with productivity. For example, who's more productive:

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.

Right. I know a few really incredible engineers. Maybe not this fast but its certainly possible for people like this to exist. It's funny that people think, "No one can be that good!".
I agree. To me, this sounds like the “smart guy” who if left unchecked will leave a trail of destruction.

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.

4) Bob is outsourcing his work.

Joking, but it is a possibility.

Yes, I thought about putting this down but thought it was a bit uncharitable.

It is a thing that’s happened obviously though.

Someone savvy enough to outsource their work wouldn't be worried about losing their job for having an empty queue, they would spread it out over the week. Adding more tasks increases the likelihood of getting caught
(comment deleted)
Agreed.

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.

Given the setting described in the linked Stack Exchange question, could they not send the other two developers on training courses/ skill building courses?

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.

One of the replies mentions it but I think letting him do open-source contributions on company time is the best solution here. Getting a voice in the community for libraries that the company are using is very valuable.
If it were at all possible I'd give Bob a 4 day week, let him work on personal R&D stuff, or promote him to a level where he can use his competence to solve bigger problems. If there are no more challenging problems to work on it's time for Bob to look for a new job as his career will be suffering.
The solution is pretty simple and given out in the answers below :

> 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

Reading the bullets for a minute I thought I was Bob, but I've never done Android for real, so no, but the rest mostly fits. I'm maybe not quite that productive, either, but close. I have the advantage of being old and curious, and working with the same codebase for the last 10 years.

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.

This is the lifestyle to which I aspire. Can you provide your “most helpful tip” that got you to this place?
comfypotato, sorry for the delay in replying, I only read Hacker News morning and evening.

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.

Thank you very much for this thoughtful reply. I can very much relate to enjoying programming; it's a hobby. It would be nice if everyone could make a living off of their hobby like I do (guitar playing, for example), but I'll be content with my lot on this.

Seems like I could break your "tip" down into "write a lot of code" with an honorable mention to "coding standards help".

Management is about extracting value, which is what most of those on replies on StackExchange are doing.

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.

Leadership is a worthwhile activity for sure, but if “Bob” doesn’t get enjoyment/satisfaction out of it, then it could be perceived by him as more of a punishment.
> 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.

Hmm, a month? I wonder if the other devs are also a problem?

Looks like they accidentally hired a high performer.
Someone needs to check that he's not creating shit at a million LOC per hour.

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.

One thing I might suggest is find out what open source products your customers are using and get Bob to contriubte to those products from his corporate account on behalf of your company. If the projects are related to the company's line of business it will increase the firms profile hugely, and make you the go-to company for those customers as they can't afford not to choose your expertise that they already depend on.

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.

My message to Bob: if you're the smartest in the room, you're in the wrong room.
well that certainly depends on compensation and a bunch of other factors
This reminds me of the WWI and WWII flying Aces. Germany had a lot more flying aces and lot higher "highscores" for their pilots than the allied or entente forces. The reasons was simple: Germany send their high value pilots out a lot more to get these results, risking losing their best pilots, while the british deliberatly made sure their best pilots immediately became instructors teaching their skills to other pilots.

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.

This is a very good challenge for Bob. It is very much a "practice teaching and see how it goes" thing. It may not be something Bob is good at, though it may be something he can improve.

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.

The entire piece is catering to Bob's anxiety. As one of the replies mentions, it is about communication.

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.

They don’t want to lose Bob. They need to promote him to ease the workload of the overloaded manager and mentor the other developers. Bob can be a force multiplier. They could take on more business or expand their product. The manager is the problem not Bob.
Multiple problems here that give insight into the organization itself:

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.

The post is so well written and stylized it sounds fake. "Bob" is just far too perfect to believe. Is this a genre - a kind of hypothetical fiction designed to spur interesting conversation (and SO upvotes?)
Bob sounds autistic. Not exactly perfect. The anything I cam do to help response isn’t great. He doesn’t sound capable of identifying opportunities without direct guidance.
Bob has either outgrown that company or needs a vast increase of scope. If scope increase, figure out how to coach him because it won’t click initially.

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.

I keep a constant queue of things I need to be better at and read up on. I think every engineer should as a matter of professionalism. If an organization has a shortfall on human resource management, why should Bob incure the cost and spin grey cycles? You can be proactive by investing time into understanding strategic okrs and make strategic bets on what work COULD be high reward and pull something off the back log, but then youre gambling with your tome, and to be quite frank, its disrespect from leadership in the sense that they are given large sums of money to do THAT work and are either abdicating it or mismanaging.
Bob should be fired. He clearly shows no independent initiative and burdens his colleagues with his insatiable need to be given "tasks" like a robot. Is he a robot? Is it really BOB the Multivac we are talking about here and not a human being at all? If not fired, his time should be padded out with Turing tests to determine whether he is indeed an AI. If he is human, the most compassionate thing his management could do is to assign him tasks that deepen his humanity and prepare him for a life that isn't just being told what to do next. "Read this novel by Friday", "Watch this film and write a report on its meaning and relation to your own experience", "Take a walk along the river and report all the things you saw".

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.