Effective engineer

Preview:

Citation preview

EFFECTIVE ENGINEERBY EDMOND LAU

HOW TO BE MORE EFFECTIVE AS AN ENGINEER?• Adopt the right mindsets• Focus on high-leverage activities• Optimize for learning• Prioritize regularly

• Execution• Improve the iteration speed• Measure what you want to improve• Validate your ideas early and often• Improve project estimation skills

• Build long-term value• Balance quality with pragmatism• Minimize operational burden• Invest in the team’s growth

FOCUS ON HIGH-LEVERAGE ACTIVITIES

• Reduce the time to complete a certain activity• Increase the output of a particular activity• Shift to higher-leverage activities

OPTIMIZE FOR LEARNING

• Adopt Growth Mindset

OPTIMIZE FOR LEARNING

• Seek work environments which are conducive for learning• Dedicate the time on the work for learning

PRIORITIZE REGULARLY

• Track To-Dos list in a single easily accessible listHow do you keep track of To-Dos?• Which activities to prioritize

Urgent Not Urgent

Important CrisisPressing issuesDeadlines

Planning and preventionBuilding relationshipsNew opportunitiesPersonal Development

Not Important InterruptionsMost meetingsMost emails and calls

Time wasting

PRIORITIZE REGULARLY

• Limit Work-In-Progress Tasks• Depends on person but generally 1 or 2

• Protect maker’s time

IMPROVE ITERATION SPEED• Invest in time-saving tools• Shorten the debugging and validation loops• Master your programming environment• Get familiar with your IDE• Learn a scripting language• Get familiar with Unix Shell commands• Automate your workflows• Make unit tests fast

• Tackle non-engineering bottlenecks• Manager’s approval• Communication with other teams

MEASURE WHAT YOU WANT TO IMPROVE

• Pick the right metricsBug fixed vs Bug Outstanding?Short Click-through rates vs long click-through rates?

• Instrument everything• Healthcare.gov launch disaster

• Ensure data integrity (Do you measure correctly?)• The only thing worse than having no data is the illusion of having the right data.

VALIDATE YOUR IDEAS EARLY AND OFTEN

• Find the cheapest way to validate your idea• Prototype• Mock-up• A/B testing

• Get feedback early and often• Commit code early and often• Code reviews

IMPROVE PROJECT ESTIMATION SKILLS• Estimate based on small tasks• Think of estimation as probability distribution not as best-case scenario• Beware of anchoring bias• Validate estimates based on historical data• Let the person who do the tasks estimate• Allow others to challenge the estimate• Define specific goals and measurable milestones• Tackle the riskiest task first• Be caution of rewrite projects• Don’t sprint in the middle of marathon

BALANCE QUALITY WITH PRAGMATISM• Standard code convention, styles?• Establish code review process

• Catching bugs early• Increase accountability• Sharing good practices• Sharing knowledge of codebase• Increase long-term value

• Good abstraction can significantly improve output • MapReduce

• Automated testing (unit test, integration test)

MINIMIZE OPERATIONAL BURDEN

• Embrace Operational simplicity• Choose the simplest technologies for the task (Instagram)• A New Feature, A New Tool = Potentially introduce complexity

• Build System to Fail Fast• When a problem occur, it should fail immediately and visibly

MINIMIZE OPERATIONAL BURDEN

• Automate Mechanical TaskWhy don’t we want to automate?• No time• Lack of familiarity with automation tools• Underestimate the future frequency of the task• Tragedy of the commons

RESPONSE AND RECOVER QUICKLY

• Anticipate failures and hone ability to recover• Ask what if• Self-healing?

INVEST IN THE TEAM’S GROWTH• Make hiring a priority• Build a good boarding process• Ramp up new engineers as fast as possible• Impart the team’s cultures and values• Socially integrate new engineers onto the new team

Codelabs? BootCamp?Mentorship? Talks?

• Share ownership of the code- Mentoring and pairing- Rotate types of tasks across the team- Document complex workflows, designs,..

INVEST IN TEAM’S GROWTH

• Build collective wisdoms through post-mortems  • Build a great engineering culture

Recommended