Principles for engineers
Focus on delivering value to customers, communicate proactively, encourage critique, take initiative, debug scientifically, and practice habits.
Jun 6, 2021
2 min read
Principles
Focus on delivering value to customers
- Ask about the “Why?”. How does what you’re building help your customers make progress?
- If you understand this well, you can make better decisions while building.
- Iterate quickly in short cycles. This means small Pull Requests rapidly merged into main branch.
Communicate proactively
- Ask questions in meetings, especially to understand the “Why?”.
- Use threads in open channels (in Slack, for example) to communicate and bring people into the conversation as needed.
- Avoid relying solely on direct messages and sub-group conversations.
Encourage critique
- Learn to give thoughtful critiques of technical plans (see Design Docs). Focus criticism on the plan, not the person.
- Ask others for critiques of your technical plans, as early as possible.
- Thoughtful critiques, early in the planning process, help make technical plans stronger and ultimately save you time, because there will be less rework.
Take initiative
- Never accept being blocked. Communicate clearly if things are in your way, or are slowing you down.
- Don’t wait to be told what to do.
- Think of ways to improve the product and your team’s processes.
- Write down your hypothesis.
- Ask, how do I disprove this hypothesis?
- Test it to disprove it, and eliminate that hypothesis.
- Rinse and repeat to make progress towards understanding the root cause.
Practice habits
- Read at least 1 book on habits: Atomic Habits and/or The Power of Habit.
- Be intentional with your habits for:
- Learning
- Reading and audiobooks
- Sleep
- Nutrition
- Exercise
- Meditation
- Caffeine
- Social Media
- Set monthly goals for both good and bad habits.
Resources
Read more posts like this in the
Software Engineering Toolbox collection.