THE EFFECTIVE ENGINEER

How do you measure an engineer’s effectiveness? Is it by the number of hours she works? The amount of effort he applies? The number of tasks she completes? A hard-working engineer who pours his energy into a feature whose schedule slips and no one uses isn’t that effective. The Effective Engineer, written by Edmond Lau and published on 19th March 2015, will provide insights on becoming a practical engineer by optimising learning, focusing on high-leverage activities or prioritising frequently.

HOW THIS BOOK HELPED US?

Despite being a book for software engineers, you won’t find a single line of code in The Effective Engineer. The book helped us understand that, through prioritising our activities and assessing their leverage, we can meet our goals more effectively. The Effective Engineer provided us with approaches on how to increase leverage. 1. By reducing the time it takes to accomplish a particular activity. 2. By increasing the output of a specific activity. 3. By shifting to higher-leverage activities.

THE BOOK EXPLAINED UNDER 60 SECONDS

This book is not a comprehensive guide for everything that can help you grow. Still, it provides you with a consistent framework—leverage—for navigating which skills might be suitable investments of your time. Teaching and mentoring are passions of mine, and I’m excited to share what I’ve learned.

TOP THREE QUOTES

Thinking early in your career about how to help your co-workers succeed instils the right habits that will lead to your success.”

“To be effective engineers, we need to identify which activities produce more impact with smaller time investments.”

“Working extra hours can hurt team dynamics. Not everyone on the team will have the flexibility to pitch in the extra hours.”

BOOK SUMMARIES AND NOTES

Chapter one: Adopt the Right Mindset

Focus on High-Leverage Activities

How would you decide what to work on to meet your goals more effectively? The fundamental answer to this question is prioritising these different activities and assessing their leverage. Leverage is the value or impact produced per time invested.

Leverage = Impact Produced/Time Invested

Leverage is the return on investment for the effort that’s put in. Influential engineers get things done efficiently and focus their limited time on the tasks that produce the most value. They don’t get more things done by working more hours. Effective engineers increase their output in that equation while maintaining the limited time invested. Therefore, leverage is the yardstick for measuring how practical your activities are. Leverage is crucial because time is your most limited resource. Unlike other resources, time can not be restored, replaced or prolonged.

Increase your leverage in three ways;

  1. By reducing the time it takes to accomplish a particular activity.
  2. By increasing the output of a specific action.
  3. By shifting to higher-leverage activities.

These three approaches usually translate into three questions you can ask yourself about any activity we’re working on.

  1. How can I complete this activity in a shorter period?
  2. How can I increase the value generated by this activity?
  3. Is there something else I can spend my time on to create more value?

Use leverage to evaluate your engineering effectiveness. Concentrate on what generates the highest return on investment for your time spent. Systematically increase the leverage of your time. Come up with ways to accomplish activities faster, increase the impact of an activity or shift to activities with higher leverage. Time is your most limited resource. Find the habits that produce a disproportionately high impact for the time you invest.

Optimise for Learning

Adopting a growth mindset means accepting responsibility for every aspect of a situation you can change—anything, from enhancing your conversational skills to mastering a new engineering focus, rather than blaming failures on things outside your control. It means optimising for experiences to learn instead of occasions where you effortlessly succeed and investing in your learning rate. Learning grows exponentially. Knowledge gives you a basis to attain more knowledge even faster. The more you know, the easier it is to learn more stuff and become more creative. The earlier you optimise learning, the more time your knowledge has to grow. Your first job makes it easier for you to get a better second job. Because of compounding, even small deltas in your learning rate make a significant difference over the long run. Since you spend most of your time at work, one of the most compelling leverage points for increasing your learning rate is your choice of work environment. Ensure that beyond the initial learning curve, the work environment remains one where you can sustainably learn new things daily. Here are six factors to consider when choosing a new work environment.

  • Fast growth
  • Training
  • Openness
  • Pace
  • People
  • Autonomy

How you view your intelligence, character, and abilities profoundly affects how you lead your life. It primarily influences whether you remain stuck in your current position or achieve what you value.

Prioritise Regularly

A successful team precisely and frequently prioritise its work. Being an engineer is very exhausting. There are always more tasks than your time, and working on one job means not working on the other. Therefore, frequent prioritisation is a high-leverage activity since it influences the leverage of the rest of your time. The most effective engineers work persistently on improving their prioritisation skills. To remain dedicated to high-leverage activities, review how you rank your activities. It’s crucial to track all your to-dos in an easy and accessible list. From that list, compare what you’re doing and what you could be doing instead to repeatedly shift our time toward higher-leverage activities. Engineers can benefit from utilising checklists. Therefore, the first step in effective prioritisation is listing every task you might need. To-do lists must have two significant properties: they should be a recognised representation of your work and be easily accessible. A single master list is ten times better than a variety of sticky notes, sheets of paper and emails because these scattered alternatives can be easily misplaced and make it harder for your brain to trust that they’re comprehensive.

Favourite quote of the chapter: “Focus on changes within your sphere of influence rather than wasting energy on blaming the parts you can’t control. View failures and challenges through a growth mindset, and see them as opportunities to learn.”

Chapter two: Execute, Execute, Execute

Invest in Iteration Speed

Effective engineers invest heavily in iteration speed. Continuous deployment is but one of many powerful tools at your disposal for increasing iteration speed. Continuous deployment allows engineers to create and deploy small but incremental changes rather than the extensive and batched changes typical at most companies. That shift in approach removes a vast amount of overhead associated with traditional release processes. It makes it easier to reason about changes and enables engineers to iterate quickly. When someone discovers a bug, for example, continuous deployment makes it possible to implement a fix, deploy it to production, and verify that it works—all in one sitting. Continuous deployment is one of the most robust tools to increase iteration speed.

Move fast to learn fast. Move fast and break things. Moving fast enables you to build more things and learn more quickly.

Invest in time-saving tools. If you have to do something more than two times, write a tool for the third time. Tools are leverage that assists you in scaling your impact beyond the day’s conflict. Faster tools get used more often because they enable new workflows that previously were impossible.

Measure What You Want to Improve

Measuring progress and performance may seem to be out of your jurisdiction. Still, it’s an excellent tool for evaluating your effectiveness and prioritising your work. If you can not measure it, you can not improve it. In product development, it’s common for a manager to conceive of some new feature. The team celebrates for engineers to build and ship it without implementing any mechanism to measure whether the feature improved the product experience. Use metrics to measure and drive progress. Good metrics accomplish several goals. First, metrics help you focus on the right things. They validate that your product changes—and all the efforts you put into them accomplish your objectives.

When visualised over time, good metrics guard against future regressions. Engineers recognise the value of writing a regression test while fixing bugs: it verifies that a patch fixes a bug and detects if the bug reappears in the future.

Good metrics can also evaluate your effectiveness over time and compare the leverage of what you’re doing against the activities you could be doing instead. The metric you choose usually influences the decision you make and your behaviour. Look for a metric that, when optimised, maximises the impact on the team.

Validate Your Ideas Early and Often

Validate whether your ideas are practical. This validation can come from discussions with your team, user surveys, or running A/B testing with the ideas applied. With new ideas, you find low effort to validate your work. As you progress on the project you’re working on, always aim to get some feedback. For instance, when you start running a project, and it turns out to be more complicated than you anticipated, its leverage lowers. Something else might come up with higher leverage as that is happening. In such situations, dropping the current project and aligning your attention to the other is better. Frequently validating your tasks helps you determine the best decision to take.

Favourite quote of the chapter: “Reduce variance in your estimates and risk in your project by exploring the unknown early on. Don’t give yourself the illusion of progress by focusing first on what’s easy to do.”

Chapter three: Build Long-Term Value

Balance Quality with Pragmatism

Put in place an autonomous code review process. Different engineering teams have different attitudes toward code reviews. Code reviews are so ingrained in some team cultures that engineers can’t imagine working in an environment without them. Code reviews catch bugs and design shortcomings early. It consumes less energy. It’s time effective when addressing problems in the development process. Code reviews also increase accountability for code changes. You won’t add quick patches to code and leave the mess for another person to fix when you know that one of your teammates will review the code. Although they usually acknowledge that code reviews can improve quality, Engineers who don’t do them often cite their concerns about their impact on Iteration speed. They proclaim that the time and effort associated with code reviews is better spent on other product development features. Deciding on code reviews doesn’t have to be a binary choice, where code is either reviewed or not reviewed. Instead, think of code reviews as a continuous process. They can be structured in different approaches to r their overhead while maintaining their benefits.

Invest in Your Team’s Growth

Only when you look at interviews in the aggregate do you realise that hiring is a highly high-leverage activity. The smaller the organisation, the higher the chances that that person you interview will become an instant co-worker and the greater the leverage of those interviews. Here are a few higher-leverage strategies to utilise when improving your interviewing process; find time with your team to identify the qualities in a potential teammate you care about the most: coding aptitude, mastery of programming languages, algorithms, data structures, product skills, debugging, communication skills, culture fit, or something else. Coordinate to ensure that all the key areas get covered during an interview loop. Design interview problems with multiple layers of difficulty that you can tailor to the candidate’s ability by adding or removing variables and constraints.

Create a good onboarding process. Onboarding is a win-win situation for both the company and the new hires; the new hires receive valuable training, and the mentors get more things done. Conversely, a poor onboarding process minimises the team’s effectiveness. Productive output disappears when a new hire takes longer to catch up. Code quality reduces if new team members misuse abstractions or tools or if they aren’t familiar with team conventions or expectations.

Favourite quote of the chapter: “Interviewing new engineering candidates can feel bothersome. It interrupts productivity and breaks up our day. It’s time-consuming to write feedback on candidates and debrief with the team.”

HOW THIS BOOK HELPED SOFTWARE DEVELOPERS

“The Effective Engineer” by Edmond Lau can help software developers by providing practical guidance and strategies for becoming a more effective and efficient engineer. The book covers time management, communication skills, technical skills, and career development, focusing on actionable advice and real-world examples. Implementing the strategies outlined in the book, can help software developers improve their productivity, increase their impact, and advance their careers.

DevologyX OÜ
Harju maakond, Tallinn, Lasnamäe
linnaosa,
Vaike-Paala tn 1, 11415

+372 6359999
[email protected]
DevologyX Limited
Nakawa Business Park
Kampala
Uganda

+256206300922
[email protected]

DevologyX Pty Ltd
Tijger Park 3
Willie van Schoor Drive
Belville
Cape Town
7530

[email protected]