I figure it's only a matter of time before I'm let go. Five years of equity down the drain, but I've already tried to fix the situation and upper management just doesn't care. The new CTO doesn't know me well enough to care about the past, when times were good.
Another lesson hard learned was realizing it’s not my job to do everything like an IC. And especially not my job to personally fix all people problems. I’m merely just here to guide and coax along the right path. And give lots of specific feedback on what’s good and what’s not so good.
A hope maybe this helps the grandparent poster. Your post resonates heavily with where I was at a year or two ago. Being a manager ain’t easy. I’d argue much more so if you were a really strong IC.
I've known since university I'm bad at delegating things. Do I just have to learn by doing it?
Finally, what do you mean by IC? I'm pretty sure I'm not an integrated circuit, but I've never gotten the head X-ray to check for sure.
Another topic might be communicating the lack of bandwidth for the work. Maybe there’s scope creep or too much work on the plate and some needs to be dropped.
As far as learning delegation, yeah, that’s how I did it: trial and error. For me finding really competent people who I trust and who want opportunities to grow and take on new responsibilities has helped a lot as a kind of prerequisite.
And yeah sorry IC = Individual Contributor, i.e. not managing anyone.
Second, since you’ve presented this to upper management and they aren’t understanding, I’d take that as a serious signal to look for a new opportunity.
If you do want to stick it out, the best advise I have for you is to 100% drop coding even though you think you can’t. Allow yourself to whiteboard, pair program and review PRs, but don’t allow yourself to be the owner of single programming ticket.
Suddenly you’ll have a lot of time to pour into training, equipping, and leading your team. You’ll probably be surprised how much they improve.
It still might not work out, but given you already know how to be a programmer, taking a shot at 100% managing for a while gives you more opportunity to learn than sticking with the status quo you’re saying doesn’t work.
If you’re really struggling and would like more help, I’ve been doing some coaching lately and I’d be happy to book a chat. My gmail is the same as my HN username :)
Maybe I should have gone the teaching route, I'd have other people to blame. But a good manager should protect their employees, not the other way around.
Thanks for listening. I guess I'm just complaining on a throwaway because I don't have anyone else to talk to.
No documentation?
Good software engineers are not necessarily good writers, so even when there is documentation it's not always helpful either. Especially to completely new people in a project without background information. For security related work, how much background can you assume? How in-depth does the documentation have to be? etc etc..
Documentation, even when it's there, doesn't always fix this.
My employee number is under 25, but it's still just pretend equity at this point.
A. What is the value of your equity?
B. What is the likelihood of it vesting in the next 5 years?
C. How much "total benefit" (salary increase, stress decrease, etc) would you gain from moving to a different company over the next 5 years?
If A*B < C, move.
Heck, even 5 years might be too long of a consideration here.
Source: How Google Sold Its Engineers on Management https://hbr.org/2013/12/how-google-sold-its-engineers-on-man...
The more I move away engineering, the more I feel the unreliability of human beings, and its stark contraction to machines.
Of cuz, machines, when sufficiently complex, becomes unreliable as well. But by operating still within that boundary, one can already do exceptionally things.
People managers essentially are dealing with a completely different entities than machines. Rarely one can operate on 2 different entities and still perform exceptionally.
Ultimately employees move the company machine, whether their job is to code, sell, manage, or clean toilets.
Aha, so it takes one full-time manager to manage one 10x programmer ...
In all seriousness, is it time to get rid of the 10x meme? People have strengths and weaknesses; people have areas they've experienced before and things they've never done. Some people are going to work faster than other people on certain tasks - that's life.
Nope, you can't reduce the differences between people's skills into "they had more years of experience with X (but fewer with Y)".
First, there are people who spent decades working with the same technologies, and still somehow failed to learn the essentials. Some people simply have almost zero curiosity and zero desire to self-improve. (Giving specific examples is risky, because they sound completely made up. An Oracle database expert, who doesn't understand the necessity of having a primary key? A Java developer who never heard about Map, so he kept implementing it over and over again as a set of methods, for each variable separately?) Being 10x more productive than these people is quite simple. But it is also possible to be 10x more productive than the average developer.
Just consider than "10x more productive" doesn't necessarily mean typing on the keyboard 10x faster. You can save time by using a library; this includes understanding and using the standard libraries instead of reinventing the wheel. You can save time by using the right abstraction, instead of copy-pasting all over the code. You can save other people's time by documenting the code you wrote. You can save testing time by writing unit tests. You can save everyone's time in the future by having a clear project architecture. -- Furthermore, you can increase the team's productivity by teaching your colleagues at least the basics of these skills.
There are people who are this good at the things they do regularly. (Which also happen to be the things I do regularly, so it is humiliating to see the level of skill I will probably never reach.) And they can still learn new things with at least the same speed as anyone else around them.
Neither of those examples surprise me that much. It’s not that uncommon that being able to produce something that vaguely works well navigating a messed up organization is what it takes to be productive. The bar on not being a totally messed up organization is low but tons of places don’t clear it.
...otherwise - being a bit of a history nerd - I’ve run into the idea many times in discussion of how military units have evolved over time. Much of the thinking about ideal squad sizes began in WW2 - don’t have single thing I can point you at though
From my professional experience, it’s obvious that there are coworkers that can output even 100x impact qhen compared to peers. When judging entrepreneurs it’s visible some people’s multiplier/productivity is in the million-times compared to others.
Given automation is at the core of our work as devs, why do some people think 10x isn’t credible?
In my experience it's a lot more common that I see people churning out 10x the AMOUNT of code (or some other insane metric) which generates an enormous amount of work for everyone else to keep up with, fix, maintain, understand, etc. These people are praised for their output. But are they making the TEAM 10x more productive? No way.
Prolific output doesn't always mean 10x value created. I know people know this, but I think the reason people are sick of the trope is because they've been burned by a "10x'er" that was all output, not actual value.
Producing 10x value is actually.. really, really hard.
As a practical example, consider 4 people beating Windows Mobile with what later became Android.
They did this by breaking systems (DNS, build pipelines, etc), producing code so bad that it had to be rewritten from scratch, and distracting everyone on the team through drama.
They also did it through endless requests for help - not the kind where they learn from it, though. The kind where they ask the exact same question next week of someone else. They would cycle through asking everyone on the team about the minutiae of their job, because they had no idea how to do it themselves.
I realise that the idea of the '10x rockstar' is an unpleasant one. But I also know that the best people I've worked with over the years were at least ten times better than the worst.
Let me add that I enjoy teaching folks, that I enjoy being a multiplier even if it means I won’t be an additive. I am also an apologist, and willing to believe that people are adding important ingredients to a team or output that aren’t immediately obvious or visible.
But -x folks exist.
Unfortunately the -x folks often DO have significant skills at hiding their negative impact.
Any who remain employed, while being persistently -x (or -anything) would have to.
Especially in many mega-big organizations, in non-dev depts, the "Manager" is also tasked to: build and perform analytics, do VERY HEAVY ad-hoc reporting (aka Directors bombarding you with 10 different mini-projects weekly) and at the same time you have to run the projects with 5-10 people, meaning driving the ship, having huddles, handholding, coaching, mentoring, reviewing, be present in 40% of the meetings, etc.
I don't know how much hands-on is a programming 'boss' of 10 people. But if it's no coding at all, I am happy for you and I wish the same for me.
In my experience it takes six or more people to fully occupy a manager. Ten seems to be about perfect. You can go higher than that (and many do) but at a certain point you’re not evenly investing in all your people anymore, you’re mostly focusing on a few at a time.
Obviously the hardest part of this is if you don’t have 6+ people to manage. My answer to very small teams is not to have a manager at all, just have a technical lead and trust that a group of 1-5 people can work out their own crap.