"The Effective Engineer" by Edmond Lau is a practical guidebook that offers insights and strategies for software engineers to maximize their impact and productivity. It provides a comprehensive framework for engineers to excel in their careers and deliver high-quality work consistently.
Lau emphasizes the importance of focusing on high-leverage activities that yield the most significant results. He advises engineers to prioritize tasks that have a long-lasting impact and align with the company's goals. By understanding the broader context and strategic objectives, engineers can make informed decisions about where to invest their time and effort.
One of the key concepts explored in the book is the idea of leverage. Lau encourages engineers to seek out opportunities to create leverage by leveraging existing resources, automating repetitive tasks, and collaborating effectively with teammates. By doing so, engineers can amplify their impact and accomplish more with the same amount of effort.
Lau also highlights the importance of continuous learning and skill development. He encourages engineers to adopt a growth mindset and actively seek out opportunities to improve their technical skills, as well as their communication and collaboration abilities. The book provides practical advice on how to acquire new knowledge, stay updated with the latest industry trends, and become a lifelong learner.
Furthermore, "The Effective Engineer" delves into the significance of effective communication and collaboration within engineering teams. Lau emphasizes the value of clear and concise communication, active listening, and providing constructive feedback. He also provides strategies for effective collaboration, such as establishing a shared sense of purpose, fostering a culture of trust and psychological safety, and leveraging diverse perspectives to drive innovation.
Throughout the book, Lau offers numerous real-world examples, anecdotes, and actionable tips that engineers can apply in their day-to-day work. He addresses common challenges that engineers face, such as managing time, setting priorities, and dealing with distractions. By following the principles and techniques outlined in the book, engineers can become more efficient, impactful, and successful in their careers.
Overall, "The Effective Engineer" provides a comprehensive roadmap for software engineers to optimize their productivity, deliver exceptional results, and thrive in their professional journeys. It serves as a valuable resource for both aspiring and experienced engineers who aspire to make a meaningful impact in their organizations.
It's not uncommon, when talking to an engineering manager, VP of Engineering, or CTO, that they will talk wistfully of the days when they "used to code". Many times I've heard "I don't code as much as I'd like to". Before I stared studying engineering management in earnest, I would feel puzzled by this state of affairs, that the leaders were uncomfortably removed from their previous work and love of actual building. After all, they are in charge, and they get to decide what to spend time on.
However through a long reading list, and also by actively cultivating a network of mentors experienced in engineering leadership who generously meet with me regularly, I've learned that this state of affairs is both expected and desirable. Edmond Lau does a great job in this book of explaining why this is the case through is concept of "high-leverage" tasks.
He encourages all engineers to prioritize intensely and regularly, even offering a number of point-based approaches to prioritizing tasks. At the IC level, this almost always involves writing code, fixing bugs, building features. It also may involve working on infrastructure, or developing tools.
However at the management level, it is often the case that the highest-leverage tasks you can be doing involve accounting for and enabling the productivity of a whole other individual, entire team, or group of teams.
The manager who takes 3 hours of heads-down time to write a feature is, in that time, taking their eyes off of the ball in some sense. They may not be noticing that 5-50 other engineers may be blocked by some issue that has come up, or may not be properly focused on their own high-leverage tasks. They are taking their eyes off of the metrics that allow them to assess their teams' performance and ability to fulfill commitments and estimates they've made.
In that time other issues may be brewing that could be gotten in front of. The effective manager knows that their highest leverage tasks now involve empowering, focusing, and removing blockers for many other people. Their choice of tasks to perform will either be force multipliers or force dividers. And that is why the most effective and responsible managers code less and less.
Lau does a phenomenal job advocating for the importance of good organization, task prioritization and task planning. At the time I read this book, my personal task planning system had grown to ineffective as the number of things I wanted to accomplish. I have traditionally kept this information in flat text files that I edited with Vim. I organized them in large nested lists and took advantage of Vim's excellent code-folding functionality to navigate the structures.
Over the years however, these structures grew to literally be thousands of lines long. The venerable age of some bits of this list resulted in a significant psychological barrier to adopting new methods. This alone should have provided impetus to realize that they could be made more effective. Yet, even as web technologies advanced, I still found reason to justify keeping this information in flat text files.
When I finally did try other options, it was frustrating and unsuccessful. I tried unsuccessfully to allow them to be edited on multiple devices. My first attempts years ago to get Google Drive to edit plain text files failed. I had more success with iCloud, but the code folding control wasn't possible on mobile or tablet. I probably even tried to run vim on android at one point. It turns out that the modern world hates plain text files.
My next effort was to move these monstrous lists into Apple Notes. This had the benefit of being easy enough to manage across devices, and it allowed me to share some lists with collaborators.
Reading Lau's chapter on prioritization and task ma