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.
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.
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.
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.
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.
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
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
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.
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
> 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 ¯\_(ツ)_/¯
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.
> 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.
> 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.
>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.
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.
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?
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.
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’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.
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.)