CTO day 2: downsizing the team
danlebrero.com
danlebrero.com
You begin to sail the raft, you start fishing while out in the open seas. You reach another island and sell the fish, figure out that is the way you can have an easy life since you can pay other people to procure food, water and wood with fish. You build a better boat, hire more people and repeat the process.
You now have a huge rowing boat that goes very far out at sea since there are no fish left close to land, you now fully depend on the people on that boat to make it alive to the next island. There are people who row, people who fish, people to cook, people that are on the lookout for fishing spots and islands.
Your partner notices a guy who eats more than the average rower on the boat, but rows less. You throw him overboard. A fire starts near the rowers, but the rowers continue rowing. Turns out the guy you just threw overboard he always put out fires. You find another rower, tell him to put out the fire. He throws water over it. It is now worse. You figure out the fire is the cook's fault for using too much oil. He only used so much oil because the lookouts thought fish oil is good for their eyes so they can see more ahead. You know this to be only partially true, but they don't seem to understand and even though the fire happened they still demand their food fried in fish oil.
You throw one of the lookouts in the water to make an example. The lookouts stop eating deep fried food. Now the people who fish complain they work too much. Turns out the deep fried food gave the lookouts energy to shout at the people who fish where to fish at. Now, the people who fish need to stop what they're doing and go to the lookouts for information. Because of all the extra effort the people are doing, you are now out of fresh water in the boat.
Congratulations, you now know how a CTO feels like.
1) It'd all be better or at least the same without any external interference from you
2) The positive outcomes to the business are more a result of external factors like market expansion, word of mouth, a new fad, rather than your own contribution
Both are important tasks because it's easy for business to start thinking of engineering as just a cost centre (which is the easiest way to make sure your company will never use technology efficiently to multiply its revenue) and because hiring engineers costs can be a significant part of your company spend
It would have to be for a while to shake out issues, but if you suddenly discover you need the person, then they're not gone. You also get to experiment with different team combinations to see if the problem was a management issue, or if they would be better suited in a different role?
Obviously you still need to fire people now and again, but this large scale firing followed by huge hiring cycles always seemed a bit odd.
It makes zero sense to keep people who are being fired, they are being fired for a reason.
If you're talking about normal employees. They can take holidays anytime (what's the holiday allowance in the US?). Large companies usually have a concept of sabbatical, you can take a large break (let's say 3 months) after some years of service.
The problem addressed here was "is my reason valid". If you fire someone for the wrong reason, and then everything crumbles, having them on paid leave for 1 month or 2 won't hurt the company financially, and allow to test "how are we doing when X is not there anymore".
Gotta go through HR and due process, that typically sets the bar to assaulting coworker and stealing from the company.
Are they cannibals? :-D
The captain should be the one to jump overboard in your story.
It's not heartless, it's just stupid. It's like screwing in a lightbulb with a hammer.
> And I didn’t want to do the task so, consciously ignoring Mr. Weinberg, I transformed the ordeal into an optimization problem, for which I wrote an application to help me with.
Treating people like robots is probably the worst way to solve people ops problems. It's like managers learned nothing from the failures of stack ranking, whiteboard interviews, brain teasers, and other similar "optimization" methods. These ill-judged solutions show a clear misunderstanding of the scope and context of the problem at hand.
In fact, it's pretty antithetical to being a good engineer.
What about personalities/coordination/how people actually interact.
Product A might be filled with people who are use to taking charge, and Product B might be filled with people who are more reserved about their opinions.
This is a dreadful way to solve this problem. If it were that easy, his job as CTO wouldn't exist and we could simply plug it into a SaaS AI that spits out optimal hiring strategies.
Nonetheless, I appreciate the insight/sharing publicly.
It's very hard to build the perfect team from the get-go. However, you can probably build a pretty good team over time. In my opinion, it's better to make an average decision than no decision at all; you can improve from average to something better as you go along.
So no, I don't see that particular part addressed well or even at all through those three sets of keywords and I've seen companies be utterly destroyed because they fired a guy they thought wasn't contributing enough who just happened to be the glue holding the whole thing together.
This is not a software problem, and it can't be approached with the same toolset that you would use to figure out register optimization, it is first and foremost a people problem. The OP is seriously out of their depth and too full of themselves due to their recent promotion to realize this.
That realization won't be long in the coming though, I predict that within six months there will be another blog post about how he left this toxic company behind to go somewhere else without realizing that he was part of the problem all along.
For reference, I give you his blog post from six months ago:
https://danlebrero.com/2020/06/10/you-dont-believe-in-clean-...
Another option would be to choose the team on who you just "like the most". Maybe this would have been more to your liking? It's more human, I guess. However, notice that there is still a criteria and still an evaluation phase, you can't avoid it (unless you pick by random).
None of this means that you have to use text-to-speech and have the computer read out the list of names who were fired. You can still go to each team member and talk about it, like a human.
Sometimes a person that is regarded as low skill can motivate other team members to hugely increase their productivity by building a positive atmosphere.
Umm - Isn't that just part of the job? Most workers are expected to at least not _negatively_ impact the working environment, while being at least as competent as their co-workers.
This actually sounds more like someone trying to get co-workers to cover their short-comings for them...
CTO: I can't do that on my 2nd day.
CEO: I thought your interests align with the company. It is your job to align everyone under you to our direction.
CTO: Yes, of course. Right away.
If it's the best reply they can come up with, they're not competent enough for the position.
It's the CEO's job to be able to weigh different kinds of risks and make a decision. So bubbling up your concerns is the correct answer.
Intra-team relationships are super important, as are the degrees to which the team members have arrived at the company, how long they have known each other, whether they knew each other prior to their arrival and so on. Before you know it you have a mass walk-out on your hands with those that have options leaving first.
The best way to deal with this is to do it very gradually and taking great care to not inadvertently wreck the core structure of the tech department.
You can spin it however you want, come up with some great arguments, but if the CEO decided to fire people, I don't think he takes that decision lightly so when he/she presents that decision you can count that it really is the last option he has.
It all comes down to trust. Trust your CEO that he has no other choice, maybe explore alternatives. But if he is a really good CEO, even if you fight it and argue for it, you'll wind up at the same conclusion he did. In fact, 9/10 you'll wind up at the same conclusion he did. Remember, it's his job to convince and lead people so he's probably better than you at that.
It's absolutely fine to face à situation that is new and that you feel you lack knowledge and experience on. But as a leader and the guy in charge you should not refuse to deal with it, you need to find a way and people to advise you. Don't think that CEOs, Generals, Heads of States, etc know everything, no they know how to seek information and advice but the final decision and responsibility is on them.
One the contrary, it is perfectly fine to ask for enough time to be able to accurately assess the situation.
The complete lack of empathy on display here is proof positive for me that this person does not have what it takes to be a successful manager.
I've just taken my company through a 50% drop in revenues and we've survived, stronger than ever, not a single person got laid off and all our bills are paid. That didn't happen because I treat my co-workers, partners and employees as replaceable cogs and if I would give my second in command the order to get rid of 50% of our workforce I would expect some serious pushback on that. Not that I would ever do that.
If you don't agree with a course of action then by all means do make your point in a constructive way.
But once the decision is made then you cannot shun your responsibility and refuse to implement it. Either "disagree and commit" to the best of you ability or quit.
This article is proof positive of that, it misses a whole slew of important considerations and will likely result in a mass exodus of the people that keep the company running within the next couple of months.
I've had to lay off people before, this is not how it is done.
well i have no insider knowledge of any kind, i just looked left and right beyond the blog post instead of making assumptions.
This company is dysfunctional. They have a CTO that doesn't report to the CEO but where the CEO will cross their lines of command to give direct orders to the CTO anyway, they treat their employees like they treat their docker images (like cattle, instead of like pets), they promote people internally and make their first marching orders to take the axe to the org chart, specifically the team from which they got promoted out of.
This won't end well.
Just read this thread and see how many people are wrong-footed by the article.
Honestly, i think your reaction to having an assumption collapse is rather terrible
The computer in this story was nothing but a human's pencil and paper.
I used better evaluation criteria when figuring out who to kick out of my World of Warcraft guild than this guy used on his employees. Anyone that defends OP's post clearly has never led a team of anything or been in charge of people.
Writing a program to "optimize" who to fire is bonkers and shows a clear lack of leadership strategy.
You are all welcome.
Secondly, when you are making a decision like this which impacts the course of other people’s lives, I personally believe that you should use a level of structured decision making rather than a gut feeling of who ‘fits into the team’ best.
Overengineered? Probably, but at least it showed a clear thought process. Also he stated he considered team dynamics once he had some candidate options.
An organisation told an engineer to fire someone.
He built some software that told him to fire himself.
He then fired someone else based on Role & Salary parameters.
Then gives advice on treating people like adults when firing them.
Does anyone else find this whole thing macabre and absurd?
( I'm not being negative - Im not against the great / funny article and an attempt at a novel approach, the whole thing just seemed completely unethical dystopian and useless - highlighting what a hard problem this is to solve - I would do no better - infact I would have been the problem - I think I just wouldn't fire anyone ).
No, these were parameters to the software he wrote.
I wasn't sure if I was reading a satirical take on a lot of grandstanding out there. But reading the comments here the author probably means it to be taken at face value.
People don't like the fact that he wrote an app and tried to deal with the problem objectively. But, really, how is this so different to any other objective approach?
Here in the UK there is a significant body of legislation around the process of making people redundant, so it would have worked differently, and particularly it will work differently for larger numbers of redundancies.
There is always some sort of objective scoring criteria. For larger redundancies these are agreed with employee reps as part of the consultation period. You might be able to get away with less rigour if you're only making a handful of people redundant. Regardless, those scoring criteria and the scores associated with them are going to end up in some sort of model, which might be as simple as an Excel spreadsheet, but there's nothing to stop you implementing it in code. The model is generally published as part of a consultation pack so that staff can understand how they are being evaluated, and provide feedback via their employee rep.
The end result is that the people sorted at the bottom, however many you need, are made redundant. It isn't nice. But it is objective, and it's important that it be so, because that's as close as you can get to any sense of "fairness" - not that it's going to feel fair to the people losing their jobs. You have to be able to justify these decisions, to demonstrate that you've gone through a fair and objective process to arrive at them, because you might land in court if somebody challenges your decisions.
It's not nice, and it's always going to seem heartless to some people. But that's part of leadership: sooner or later you are going to have to make decisions that some (or even many) people don't like, and that you don't like either. In many of these cases there will be no perfect choice and no perfect outcome. There is no avoiding it. If you aren't willing to deal with this, don't become a leader.
Pooling diverse judgments is a way to produce more robust predictions. An explicit model can help multiple people engage. Daniel did not mention discussing the re-designed org with any of his team. A less top down approach than his might have included seeking feedback about direction and team composition from members of the team itself.
But it's not objective at all. He still subjectively evaluated each individual employee, and fed this into the program as an input, in order to help him find configurations that fulfill certain conditions.
And this is a good thing. I'm not 100% sure what you mean by:
> There is always some sort of objective scoring criteria. For larger redundancies these are agreed with employee reps as part of the consultation period.
...but if I am guessing correctly, then this is fortunately NOT what he did here.
Any objective metric in a field where there's no clear way to measure performance will always be extremely poor, despite employee reps' / unions' love for them. What would this metric be? I can remember one example (not in CS but in another hard-to-measure-output field), where it is just how long you've worked there. So if there are 5 people doing job X and 2 need to be fired, the newest 2 get fired.
I'm entirely confident in a former team lead, now CTO's ability to beat the accuracy of that metric with his subjective evaluation of each individual's abilities (regardless of whether he uses a program to help him optimize based on that information).
The problem people have with this is that they think the person making the subjective decision might have some kind of bias. And some bias definitely exists, pretty much 100% of the time. But in reality, even a biased boss who's worked with those people for a while is likely to evaluate SD employees more accurately than some arbitrary metric. If you don't deserve to be fired, but get fired anyway, it's equally unfair whether it was because the boss really likes a shitty employee who should have been fired instead, or because the shitty employee has more tenure at the company and they're firing the newest people, or because they threw a die to pick whom to fire.
And his first step should have been to the CEOs office to find out why this clusterfuck was thrust on him out of the blue.
He’s showing he’s not a leader, just a Jr Manager given a fancy title.
Of course, OP has no requirement to do anything for them, but the easiest way to make yourself feel less bad is to make the results less bad for the person affected. Doing all of this did nothing for the person fired, except get them fired.
This would only really be feasible for a small team, such as this.
If you actually have a likely other job, sure. Otherwise the old "I know guy at Google who can look at your CV" is just a way to make yourself feel good, and it will be seen that way too.
The problem is veterans will see right through you and discount your efforts, unless you have that amazing job. And juniors will think you're helping until they realize you aren't, and they'll be disappointed in you.
Just as important to build (some...) trust and preserve culture among remaining employees.
Imagine this from the lens of remaining employees: A) The new big boss wrote an algorithm to fire our friends B) The new big boss had to make a tough decision to fire our friends but went out of his way to do right by them
Which one sounds better? I think the algorithm was a good idea to explore possibilities, but I'm not sure about the subsequent blog post.
There are recent examples of these layoffs among tech companies who had to make a pivot due to Covid and took approach B. Ritual is the one that immediately comes to mind for me.
This reminds me of how Toyota did it: they calculated roughly how many workers they'd need in a plant (counting expected future optimisations), then they went ahead and just said, "This is how many we think are needed to do the job. As you can see, we have been forced to fire 25% of you. The rest of you have a lifetime guarantee of employment with us."
And, critically, they didn't back down on that guarantee. That always struck me as really understanding how important it is to build trust among the ones that remain.
There's no easy way to do this stuff. It's ugly no matter how you approach it.
Dumbest move ever. If on day #2 you think you know enough about an organization to start hacking away dead wood then you are way out of your league.
> Senior: creates the plan. > Mid-level: follows the plan. > Junior: needs to be taught to follow the plan.
This person is a horrible leader and failure if they think this way.
This tells you all you need to know about the rest of the article.
And indeed:
> “The ideal team would be one that has all disciplines covered at a senior level with multidisciplinary people working in just one team, and with enough overlap to avoid a bus factor of one. Additional people will bring additional capacity.”
It’s just the tired old foolish mirage of fungible full-stack teams where there’s no such thing as specialization of labor.
This article is basically a farce of bureaucratic management mediocrity.
Every team is fungible in the long run. If you have someone who is specialized labor, either they handoff to someone who is non-specialized now, or they do it later when they leave the company.
Edit: I think your response to dmak covers this, thanks.
All engineers, whether junior or senior, need lots of autonomy to propose and try plans. No engineers needs to be “taught to follow the plan” - that is career death.
Meanwhile, the risk of political motives and malicious intent or self-preservation is much higher among senior staff, especially as they become ex-technical.
Finally, many products need teams of specialists in various areas, and their team structures don’t resemble fungible full-stack wishful thinking. A good leader tries much harder to give them what they need instead of imposing the fiction they are fungible.
So, overall the leader of this post is
- overly reductionist
- failing to protect autonomy
- failing to protect specialization
- failing to deal with reality
- mentally representing “senior” vs “junior” as “creates orders” vs “follows orders” which puts political authority as a central cultural value.
These are all classic, well-known leadership mistakes.
I guarantee the company in this example is full of under-appreciated engineers treated like cogs.
Even the overall premise of the layoffs is suspect. Nowhere does the article even ask the question of why the critical project failed in the first place. Why was staffing preemptively overallocated?
If you fire these people, will you have to hire and retrain new people later when things change again? How costly would that be relative to retaining them now?
Why aren’t there senior leaders being fired? The failure of a project with such wide spread ramifications surely isn’t down to a bunch of little guys.
Here’s what happened:
Using the same overly reductionist, chain of command failed ideas described in this post, other leaders pursued a bad strategy and allocated resources poorly. Now, to avoid being punished and paying the consequences of their failed strategy, i.e. actually firing executives and senior leaders who caused this problem, they need to scapegoat it as an IT downsizing and they need some inexperienced twerp (this CTO) to spas out pretending like some critical calculus was applied to make the heartbreaking least-bad fewest cuts they could.
It’s disingenuous to the core. Absolutely this is shitty, low-accountability leadership.
That makes no sense to me. If I’m laid off, what could we possibly have to discuss? I’m sure HR would have all practical severance, benefits, legal information. What else are we gonna talk about?
I’ve been through a round of layoffs at a bank, and seen many more. Once you go down to HR you never go back to your desk. I’ve been on both sides of that, and honestly it seems the most sensible way to do things.
[Edited] - as I thought you were asking a slightly different question. My bad.
And they built the company without him. Pretty sure he’s unnecessary.
I did a mass termination many years ago, and those guys are still in touch with me. I made sure to telegraph that things weren't going well for the company.
One guy had a pregnant wife at home, he still laughed it off. Wrote to me the other day.
:/
Thanks for sharing.
First, he’s likely close to 15% of the budget, so problem solved.
Second, you join a company either so incompetent or venal that they didn’t give you notice they were on the verge of a substantial revenue loss. You’re the CTO, you are one of a small team of leaders with biggest stake in company, and supposed to be part of these discussions. Even before your official start day and especially day one.
So what was it? They knew this was likely to happen but didn’t tell you because they were afraid you’d back out? They are unethical, liars, untrustworthy, I quit.
They didn’t see this coming because the VP of Sales never flagged it as a risk? Ok, the Vp of Sales is either not being transparent or us incompetent, either way fire them, or I quit.
The execs at the top of a small startup need to be a team, brutally honest and transparent with each other. No hiding information, working together to solve problems.
Or I quit.