How Google Sold Its Engineers on Management
hbr.org
hbr.org
For example, it might take just "four lines of code" to change the Chrome's SSL padlock into a smiley face, but that would be a significant change, that would require hundreds of training docs' to be updated, and potentially re-training of end users.
More likely it's highly dependent on where that code is, your exact manager chain, etc. It could just as easily be that you picked the week a new manager started or a new process was put in place that turned out to be terrible and was so rolled back.
Absolutely. There are many good and valid reasons. The net result though is the same in terms of the impact to GP's personal productivity. People tolerate bureaucracy to different degrees, and it's a personal balance for everyone.
The six months of process was the minimum and all I wanted to change was a goto, eliminating a dead code branch. I can't even imagine if I had tried to make deeper changes.
Having said that, there have been times when I wished Google had a process that would keep some of their odder mistakes from happening. Most recently the android calendar client changes. No month view, really?
The amount of review you mentioned could be excessive or just the minimum because the entire product was sensitive or high risk. With no context it's hard for us to judge.
On the second point, no real potential for career growth are precisely what drives good IC's out of the company. You feel managers shouldn't have to do IC roles because it's bad for their career? It's also then bad for IC careers. This is the typical manager viewpoint, they don't want to do IC work because it's beneath them and their only goal is to get promoted, get more power, and make more money but not make the company more successful. These are the money and power motivated people that you don't want.
Long story short, it's not difficult to "sell" managers when the alternative is anarchy.
I think managers are toxic in an engineering organization, and a disincentive toward expertise; Rational intelligent engineers would be foolish not to abandon their expertise for a more rewarding (financially, politically, effort-wise) management track. That said, I consider it even more foolish to have nothing in their place. Managers serve a variety of roles that will be filled, implicitly or explicitly in any tribe/organization. Further, they resolve the matter of hierarchy and eliminate political position jockeying (while exacerbating other forms of politics).
If you pay attention, you'll see that modern software organizations are straining on the verge of breaking with current management styles. No viable alternative has reached mainstream (except maybe holocracy), but in the coming decade, one will.
In my company, we're replacing the classic management hierarchy with something closer to a federated republic where the various roles of management are broken into separate roles for separate individuals, with the goal of placing engineers on top with multiple peer-based support roles. Something close to this will be the software organizational hierarchy of the future.
[1] http://www.slate.com/blogs/business_insider/2014/04/25/googl...
If we can solve staffing and performance reviews in the framework then the role can likely go away.
https://labs.spotify.com/2014/03/27/spotify-engineering-cult...
...............#........Ratio
VP.............100......10
Director.......1000.....5
Manager........5000.....6.18
Other..........30900
That's basically what Google is sitting at. It isn't all that exceptional. Probably the main difference is that there's less sales title inflation vs. some other tech companies.
# Ratio
VP 100 10
Director 1000 5
Manager 5000 6.18
Other 30900Fire team. 3 of those plus a sergeant is a squad. 3 of those plus a more senior NCO is a section.
(And at most of those levels "3" is really more like a range between 2-5.)
Anyway, my point is that McKinsey are selling "knowledge" that they didn't create...
My job has a number of facets. One is to help provide mentoring to junior engineers. I have seen entry level engineers who never had any mentoring at all, and they end up stagnating. I have seen, in some cases, the same engineer, moved onto a team with a strong technical lead who believes in a lot of 1 on 1 mentoring, and watched that engineer undergo dramatic growth.
I also know a number of engineers who never got that sort of technical mentoring, and I watched as their career stagnated.
So that is the first part of my job.
Another part is to provide technical direction. I have smart people working for me, problems tend to have more than a single good solution. Put these two facts together and there is, on occasion, some disagreement about how a problem should be solved. At that point I step in and make a decision so that something can be done. Design by consensus does not work. I have seen "democratic" teams spend over two months debating the merits of various solutions that both had about equal, but different, benefits and drawbacks.
At some point, someone just has to make a decision.
I also am responsible for things like enforcing a coding standard (yes it is arbitrary, but I have long term responsibility for the code), reminding developers to write their unit tests, and worrying about our branching structure.
Next up, I am here to be the voice of my team. I represent my team in meetings, presenting the technical aspects of our plan, coordinate our APIs with other teams, and provide technical input to other teams' discussions.
I work with UX, PM, Marketing, and upper management to ensure the product's overall success. When technology adoption decisions need to be made, I am the one going around campus meeting with other tech leads to understand what they have to offer. When external companies present respond to an RFP I am the one going over their proposal, emailing them back asking for additional benchmarks or to clarify their measurements.
And finally I am the one that shit rolls to. If my guys make a decision, I am the one that goes in front of management and takes responsibility. No one yells at my developers, no one talks down to them, no one hurls insults at them. If one of my engineers makes a mistake, I am the one who stands up in front of our GM, and the first thing out of my mouth is "it is my team, I take responsibility for this happening."
When things get to hot at a meeting, I'll get a text message requesting my presence. I tell each one of my employees, "I am the one who is getting paid money to be yelled[0] at, if someone is mad, you direct them to me."
I really don't understand how a manager with 50+ reports can manage all of this. The guidelines I've seen is that at more than 7 or 8 reports you just don't have time for anything but the most basic of career management advice help.
Managers are supposed to meet 1:1 with employees for an hour each week, any less than that and things start to feel sort of distant, I know from first hand experience when I don't meet with my manager for several weeks! Combine this with the technical and non-technical roles that managers have to fulfill, and I do not see how 50 DRs could ever work.
Can't just these "democratic" teams solve these problems by a vote measure?
That'd be nice, but without some sort of formal decision making process, discussions end up going on forever.
Speaker of the House is a role that exists for a good reason.
Ex-MSFTee and Google SDE here - At Microsoft my manager served both as a manager in a traditional sense, as well as a tech lead. At Google, my manager and tech lead (TL) have always been distinct roles filled by different people. My manager, though an experienced dev himself, leaves all the various aspects of daily technical leadership to his TLs and focuses on just people and project management. From a line management perspective, both my TL and I report to the same manager.
My experience is that this organization allows managers to manageably have a lot more DRs than my managers at MSFT could. Another benefit is that the TL role is a natural fit for people who do want to step into a clear role that allows them to increase their impact and leadership as senior engineers but are not interested in traditional people/career management work.
A manager manages people mostly by process: a lot of things they look at can be quantified as metrics. So it's alright to have 50 reports (one hour on each a week seems reasonable). A tech lead needs to be able to get to details while still need to have an overview of everything. And then there is the need to keep up with the industry and that means a few hours of paper reading at least every week.
What else is that manager expected to do?
Correct. My manager has 4 TLs reporting to him. My TL has a team of 7 not including himself, which is actually on the higher extreme. My previous TL had a team of 4 which is more typical. For career/HR-y management aspects I interact 1:1 with my manager for those, as does my TL. TLs will naturally offer career guidance/mentorship informally by virtue of technical seniority (where applicable) as well as feedback to managers and promo committees that will feed into conversations regarding the technical readiness for promotion for someone on their team.
I have a reservation with tech leads who stop writing code as in my experience they'll stagnate (the time frame is maybe 2,3 years).
TLs at Google stay quite technical (and mine certainly does) and write code as a routine matter of course.
I think i am currently going on this direction. Assuming i don't have access to such thoughtful companies as yours (my country's sofware industry is underdeveloped), do you know how could i get that kind of technical mentoring needed for my career?
Technical wise, if you want to get deep into a sub field (deep learning seems to be the buzzword these days, no pun intended), then pick some open source projects in that domain and try to contribute to it.
Then, you need to hire a "manager manager" - this would be a manager that manages the other managers. Put them in radically different time-zones, and make sure that they're from completely different cultures and back-grounds.
Require the devs to communicate to all managers, and make sure that the new manager is also not aligned on the actual goals with the other two, creating conflicting goals.
I'm exaggerating the situation at my company. Or am I?
Yahoo, in comparison, around the same timeframe had 16,000 employees and almost 300 VPs.
Guess which one has grown, and which one has stagnated?
The result is that, to get anything done, a large fraction of the staff are VPs, and many VPs do not have any direct reports.
Good management takes a lot of skill, and if you happen to be in a position to contribute to the strategic and tactical vision of the company, even more so. I, for one, would love to have more input business level (working on it).
That work does provide value... though the salary variance between software developers from high to low is greater than managers... And I would say that few managers are worth as much as a good engineer.
But there are good managers. I've been lucky enough to have them, yes.
Hmm, I suppose that depends on where you live- where I am, there are literally hundreds of bald eagles that nest here annually. I see scads of them regularly and can easily find them during the nesting season whenever I want to do some bald eagle watching.