An Elegant Puzzle, deep dives into pretty much every aspect of being a tech leader at modern software companies. The Author, Will Larson has worked at Yahoo and Digg, moving on to being an engineering manager for two years at Uber before leaving for Stripe. He’s currently left Stripe and is CTO at Calm. Quite the CV.
I’ve nicknamed the book “The Bible” as I’ve found myself referring back to it on multiple occasions since owning it. I’d recommended anyone who’s considering purchasing to buy the physical book and not Kindle version, I find it much easier to highlight, and reference later down the road.
One of my favourite aspects of the book is it focuses on many “real life” situations that occur at software companies, from managing tech debt to hiring processes. You get a real feeling that the author has been at the “coal face” of the management for many years. Some examples that stood our from the book: What to do when our systems are slowing us down, but we have too many migrations? Saying no, when there is so much work, but not enough people. Good ways of paying down tech debt.
The book is split into 6 chapters, all of which are independent of each other and can be read in any order. Some of my personal highlights from the book are:
- Organizations: topics on organization and team design
- Tools: systems thinking and tools to manage change at the org, team and individual level
- Approaches: common, but difficult situations engineering managers often find themselves in and dealing with these
- Culture: efforts that can shift the culture within an organization
- Careers: hiring, evaluating performance, promoting and retaining people
- Appendix: tools to operate an organization at the line manager, middle manager, and manager of managers level, as well as the reading list.
If you’ve just started a new job, create a 90 day plan that outlines what you’ll achieve over the coming 3 months. You can then use this as a reference to benchmark performance as you learn more about the role.
Make sure you check our the framework for presenting to senior management in Chapter 3. I think I’ll do a full episode on this alone but this system has really helped me when it comes to knowing what and how to present.
Another great piece of advice for software engineers is to build a relationship with your manager. The author goes on to list some things your manager should know about you:
- What problems you’re trying to solve
- What you like to work on
- How you believe you’re being measured
- How busy you are
- Your goals and growth areas
Something that resonated with me is the 4 states of an engineering team, which can be:
- Falling behind: Backlog is growing weekly
- Treading water: Critical work is done but can’t pay back tech debt
- Repaying debt: Starting to pay back tech debt
- Innovating: Low tech debt, morale is high, working on new features
Again, something I find really useful is the book will then explain in detail how you can move your way out of each stage whilst giving you clear steps to achieve this.