Engineering Management
github.com
github.com
- The Manager's Path, by Camille Fournier
- An Elegant Puzzle, by Will Larson
- Team Topologies, by Matthew Skelton and Manuel Pais
- Thinking in Systems, by Donella Meadows
- Also see: references cited in the above and other works by same authors
Disclaimer: Not a seasoned EM and definitely not the first to recommend these on HN.
A edited collection of blog posts with other material that does a very good job describing how to tackle the transition from Engineer to Manager.
- “The Truth About Managing People” by Stephen Robbins https://www.pearson.com/us/higher-education/program/Robbins-...
An invaluable “Cliff Notes” style book about many topics (truths) in management. Each topic (“truth”) gets a page or so overview, key points and links to the standard “references”.
One other point I'd add that isn't covered particularly well in this list: the process of becoming an engineering manager and interviewing for the job[1] are both challenging processes unto themselves.
[1] https://blog.tryexponent.com/how-to-prepare-for-an-engineeri...
I do agree The Manager's Path is a good one though.
Some other favorites are High Output Management by Andy Grove, Managing Transitions by William Bridges, The Toyota Production System by Taiichi Ohno, Measure What Matters by John Doerr, Peopleware by Tom DeMarco, The Innovator's Dilemma, etc.
I have been EM for 5+ years now. There are number of factors on which I have zero control. M1 and M2 are doing often have no power besides sprint, agile processes. For whatever reason people are inherently unhappy. I have seen this happening in 3 different companies.
Compensation is major factor in unhappiness. But, lately it’s also the work that makes people unhappy. No one likes to do Oncall or operational or migration work or deal with mess left by earlier group.
Almost every single engineer think that they know better. I see large disagreements and often grunting agreements. You can apply advice like this all day long , but if compensation and work items are not satisfying, team will be unhappy.
Now, don’t get me even started on the hiring. It’s bizarre practice of leetcode, every tom,dick,Harry copying large organization processes like Amazon and Google.
I am actually quite frustrated in my manager career as someone who is not new the management. I am thinking if director and above level roles are more IC type but have better control over their career. Middle management is powerless in almost every aspect as far as I can tell. Please advice if you know how to get better.
Compensation is important up to a point but nobody likes feeling like they are wasting their time and powerless to make positive change.
> No one likes to do Oncall or operational or migration work or deal with mess left by earlier group.
No one likes doing these things if they don't see the point, if there's no buy-in and the work is just a directive from above, if everybody feels like they are treading water and not making any progress, etc...
There are too many possible contributing factors to list them all but most solutions involve listening, communicating, and making small changes that compound over time.
Build teams that: make progress, understand why their work is important, have meaningful feedback loops.
Some good starting points:
[1] The Management Flywheel - https://skamille.medium.com/the-management-flywheel-c076f398...
[2] Work is Work (In which returns diminish) - https://codahale.com/work-is-work/
[3] Model, document and share - https://lethain.com/model-document-share/
[4] Why limiting work-in-progress works - https://lethain.com/limiting-wip/
The best characteristic for a good manager is that they care. This list to me highlights a path for "how to be a bad manager". I hope people don't follow this.
To be clear, it does have value but the title here could be made clearer.
Some of these are pretty good!
Is anyone actually a fan of those `awesome` lists? They get starred and everyone tweets and retweets them but in theory it sounds like something awesome, while actually being pretty dull and quite useless in the long run.
In this case specifically, where engineering management is something intrinsically people focused, oh great, a bunch of links to email providers. This is some prime content spam.
It'd be better to recommend one or two books.
At least the comments in this thread are useful and interesting.
I wrote this list for EMs in my org so they can have a handy list of tools and a good point to start digging deeper.
Of course, sharing such a long list will inevitably cause the TLDR effect. https://www.psychologytoday.com/us/blog/boundless/201903/the...
It's also too much indirection since HN is already a list of articles: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
It's better to post the most interesting specific item from the list.
It generally appears they take care of “other stuff” but are generally expensive proxies (in time, cost, clarity… “truth”) with a sprinkling of HR nonsense like personnel management, hiring and firing.
However, that's not why I chose to reply to your comment.
> HR nonsense like personnel management, hiring and firing.
Hiring and firing is right up there in terms of factors that decide the fate of a company. It absolutely cannot be considered 'nonsense', at least if you want the company to be around for a while.
Who wants to spend time: writing new job descriptions, interviewing, handling administrative duties, setting expectations with the executive team, working out cross-functional team logistics, making sure people aren't overworked, making sure company and personal career goals align, creating opportunities for training, deflecting insane requests, onboarding new members, purchasing equipment for people, let alone doing technical things like participating in architecture discussions, doing code reviews, pair programming, and as a rare treat maybe actually fix a bug?
My teams tell me I do right by them, and I hope that is true. If I ever went back to being an IC though I'd be thrilled to have a manager willing to shield me from all of this busy-yet-necessary work. As a former engineer I understand the value of being able to keep your head down distraction free.
Obviously this is general advice, and not specifically to you, but if I don’t see my EM adding value, then it’s little different than then not seeing me move tickets.
Again, thanks for the thoughtful response.
As someone who has struggled with little information about what it even means to be a proper EM in our industry it bugs me to be stereotyped so hard. Yeah, there are absolutely terrible managers and they deserve to be called out, but some of us really try to put effort in and create genuinely valuable relationships in both directions.
Oh God... How that view has changed. As a manager, if you're actually trying to make your team's lives easier, it's bloody hard work. I started out as the first IC and sort of had my role take shape from there.
I know where the skeletons are, and spend a great deal of time making sure my people know about them before falling victim to them. I'm often troubleshooting cross-team problems, and either localizing the nebulous stuff to a particular team, or getting the best teams to work together to resolve the issue in the same room, talking, and understanding each other. I'm sanity checking requirements, auditing everyone's meetings, to make sure important things propagate beyond team's silos.
I'm constantly switching between an understanding of work about 3 weeks minimum ahead of everyone else, and now, trying to figure out if divergences from what's planned is just statistical noise or something to worry about.
Then there is the HR side. Everyone has their own bucket of stuff, and it's my job to help make sure they have the tools they need to overcome it. Sometimes this means looking up weird jurisdictional things, rewriting a job description, shuffling around work, book or resource recommendations, or sometimes long after hours calls or the occasional emergency interference running. There's also making the hard calls on whether someone's forseeable future is going to be upset or not. I'm not jaded enough to just not care anymore, so I always try to make sure if a hard call has to be made, I can make sure everyone involved leaves with something in the sense of a possible new direction. That's not part of my JD but something I just feel like should be done and I'll continue to do until a really unlucky streak of bad hires beats it out of me I guess. I hope by that time I won't need to do this anymore.
The way I see it, I'm sacrificing my ability to shut up and engineer the stuff I like (software) to make sure my teams can concentrate on just doing what they are best at, and I'm context switching too much to do reliably anymore. The fact is, all these "odd-jobs" have to get done to ensure the organization runs and someone has to do it... Might as well be the one who knows the org best until I've got others trained up and confident enough to do the same.
Re: Expensive proxies I try to act as the anti-proxy. When I see bad communication, I try to get people circled around in the same room looking at the same things. My goal is not to say X has it all wrong to Y, and Z, but getting X, Y, and Z all saying the same thing about the same thing.
Sometimes you have to unlearn organizational habits to come to terms with what's actually going on. My higher ups may share your sentiment of that making me an "expensive proxy" but after the second or third projectt that has to get redone, eh, the grumbling quiets down.
Haven't been fired yet! So there's that!
The toughest is probably the third, making good people want to stay around, especially when you're a middle manager who has limited power to do anything meaningful like give raises or promotions or pick projects to work on. The most powerful tool is to form good personal relationships with reports without blurring the line between manager and peer (common rookie manager mistake). Beyond that it's mostly about delivering near constant small feedback (positive and negative, mostly positive unless someone needs to be fired), shit-shielding from stuff that drains productivity, and giving opportunities to grow and learn whenever possible.
I'm still not sure that achieving this by hiring consultants is a good idea, but it is better than nothing.
And it happens that consultants become employees, so i take comfort in that.
If you want to have an argument that none of this is engineering but development then I’m more on your side.
But yes, this is software-centric. There are lots of other engineering disciplines that operate differently.
There are many other areas a good manager should cover:
- hiring & internal talent pipelines
- career progression - mentoring, coaching, 1 on 1s
- performance management - promotions and firing
- budgeting and other finance areas
- if required vendor management, purchasing, dealing with legal etc
- cross team / org collaboration; working with your peers (other managers and leaders)
- managing upwards - reporting status, flagging risks and blockers and asking for help/time, advocating for the team and projects etc
- providing clear direction for the team while balancing that with shielding them from crap so they can focus
- for services - Service Ownership, Cost to Serve, On call, Security and Compliance, Legal liaison for open source use, post mortem retro’s etc
- general admin; vacation scheduling, expenses, it escalations, tracking mandatory training etc
- product management and long term view - either owning it, working with an agile product owner within the team, or working with product management org
- anything else that would fall through the cracks otherwise to keep team on track - “servant leadership”
This is just off the top of my head as a former manager and manager of managers.
Depending on your org and methodologies there may be others who own lots or the above, either within the team or elsewhere. As the manager though the buck still stops with you.