I am glad I stumbled upon An Elegant Puzzle: Systems of Engineering Management by Will Larson last week while listening to a podcast. I immediately took audible monthly subscription to read it. While listening to the book, I felt as if Will Larson has been talking to me over a fireside chat and sharing his long experience about how he learnt leading engineers and engineering teams after many trials and errors. I had so many aha moments that when I finished the audible this morning, I ordered the physical copy of this book from Amazon. I suspect I am going to refer back to this book every now and then to make my work life easier. I highly recommend this book to all engineering leaders.
Here are some of the notes I took along the way.
- There are 3 major management levels.
- Line Management – Usually managers and senior managers under this category who manage a team of engineers. Each such managers should have 6 to 8 direct reports. In a 100 company organization, a line manager needs to have at least 5 reports. Some companies have TLM (Technical Lead Manager) positions where engineering manager is supposed to be hands on. TLMs should have no more than 4 direct reports.
- Mid Level Management – Usually Directors and Senior Directors under this category who manages team of teams. They should have 4 to 6 managers as direct reports. In a 100 company organization, each such director needs to have 20 dotted (direct and indirect) reports.
- Leadership – VP of Engineering or CTO are under this category. They manage a whole organization. In a 100 company organization, they should have 40 people within their dotted reports.
- No engineering team size should be less than 4.
- A team takes a long time to gel together. So don’t dissemble them easily.
- It takes 8 engineers in a team to support 2 tier oncall rotations.
- An untrained engineer (for example, new hires) is one-third productive of a trained engineer. An untrained engineer may take about 10 hours of time per week from a trained engineer.
- Each interview takes about 2 hours of time from each engineer to prepare, take interview, debrief etc.
- Only trained engineers should be in oncall rotations.
- Almost every platform team is working on a critical scaling rewrite.
- Most teams work well when it has 8 engineers. For more than that a new team should be spinned off.
- If your engineer is taking more than 3 interviews a week, it’s an act of mercy to give that engineer a month off every 3 or 4 months.
- From Accelerate, 4 measures of developer velocity to track –
- Delivery lead time – time from creation of code to its use in production
- Deployment frequency – how often the code is deployed in production
- Change fail rate – how frequently changes fail
- Time to restore service – time spent recovering from defects
- Feedback loop of systems upstream/downstream impact –
- code review rate
- deploy rate
- defect rate
- recovery rate
- debug rate
- There are 4 sources of staffing teams –
- team members who are ready to fill the position right now
- team members who can grow into the position in projected timeframe
- internal transfers from within your company
- external hires who already have the skills
- Communication is company specific
- start with conclusion while presenting to senior leadership
- provide a narrative of where you are and where you want to go
- prepare for detours
- How new managers get stuck –
- only manage down,
- only manage up,
- never manage up,
- optimize locally
- assume that hiring never solves a problem
- don’t spend time building relationships
- define their role too narrowly
- forget that their manager is a human being
- How experienced managers get stuck –
- do what worked in their previous companies
- spend too much time building relationships
- assume more hiring can solve every problem
- abscond rather than delegate
- become disconnected from ground truth
- How managers of all levels of experience get stuck –
- mistake team size for impact
- mistake title for impact
- confuse authority with truth
- don’t trust the Team enough to delegate
- let other people manage their time
- only see the problems
- How to partner successfully with your manager –
- you need them to know a few things about you
- things you need to know about them
- you should occasionally update the things you know about each other
- Tasks can be handled in three ways –
- close out
- solve
- delegate
- Measuring teams –
- retention rate
- referral rate by cohorts
- attendance rate for recurring events and team lunch
- quality and completion rate of coffee chats
- How to interview for director candidates –
- Partnership – partnership to peers and teams they manage
- Execution – support team on operational excellence
- Vision – can they present a compelling, energizing vision for their team and scope
- Strategy– can they identify the necessary steps to transform the present state into their vision
- Spoken and written communications – can they convey complicated topic both in written and spoken forms while remaining engaging and tuning to their audience
- Stakeholder management – can they make executives and other key stakeholders feel heard
- Three sources for candidates –
- referrals from existing employees
- inbound candidates via your job site
- sources candidates that you proactively bring into your funnel
- An engineering manager should spend time cold sourcing (for example via LinkedIn) weekly one hour.
- Sprints are running well if –
- team knows what they should be working on
- team knows why their work is valuable
- team can determine if their work is complete
- team knows how to figure out what to work on next
- stakeholders can learn what the team is working on
- stakeholders can learn what the team plans to work on next
- stakeholders know how to influence the team’s plans
- A rigorous process should have some level of redundancy
- Every team needs to have a clear set of directional metrics and easily discoverable dashboard
- A use snapshot of team snippets each sprint will have –
- what they are doing
- why they are doing it
- what they are planning to do next