Effective Engineer by Edmond Lau

1. Adopt the Right Mindset

Focus on High-Leverage Activities

The core idea of the book is to increase leverage, which is defined as follows:

  • increase impact
  • decrease time invested
  • work on something else
  1. How can I complete this activity in a shorter amount of time?
  2. How can I increase the value produced by this activity?
  3. Is there something else I can work on that will produce more value?

Optimize for Learning

Learning is a high-leverage activity due to its exponential growth. As engineers build their base of knowledge, the combination of learned skills increases the areas to which an engineer can contribute. An engineer should regularly invest in active learning. The following tasks are suggested:

  • Study code for core abstractions at your company.
  • Write more code.
  • Take classes on broad topics related to software engineering.
  • Pick the harshest critic for code review.
  • Participate in design discussions, even if they are unrelated.
  • Pick diverse projects.
  • Select teams with a few senior engineers so you can learn from their experience.

Prioritize Regularly

To stay committed to high-leverage activities, regularly review how you rank activities. A simple ordered to-do list is ok, however, an Eisenhower matrix to compare an activity’s importance and urgency is recommended.

2. Execute, Execute, Execute

Invest in Iteration Speed

The book strongly advocates for continuous delivery, which is “the ability to get changes of all types into production safely and quickly”. Some of the benefits of continuous delivery are:

  • Allows small changes.
  • Eliminates overhead of release process.
  • Reduces context switching.
  • Allows for new development techniques.
  • Enables faster iteration.

Measure What You Want to Improve

It’s very important to find a good metric because metrics drive progress.

  • Is there some way to measure the progress of what I’m doing?
  • If this task doesn’t move a core metric, is it worth doing?
  • Maximizes impact.
  • Actionable.
  • Responsive.
  • Robust.

Validate Your Ideas Early and Often

Avoid investing time into products with an unknown chance of success. Work towards a minimum viable product (MVP) and validated with a prototype.

Improve Your Project Estimation Skills

Use accurate estimates to drive project planning with the following techniques:

  • Decompose tasks into granular subtasks.
  • Model how long a task will take as a probability distribution.
  • The person who does the work does the estimate.
  • Beware of anchoring bias.
  • Validate estimate against historical data.
  • Budget for unknowns.

Conclusion

I personally think that “Effective Engineer” is worth reading. It’s nothing completely new, but provides some tips and techniques that are easy to understand and adopt. Additionally it shares a mindset and breaks down the exact steps you can take to maximize your impact as a software engineer.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store