Photo by Austin Ramsey
As an engineering manager, crafting an engineering strategy is crucial to keeping your team aligned, productive, and focused on shared goals. Drawing from my experience and insights from Will Larson’s book “An Elegant Puzzle,” here’s my approach to develope an engineering strategy.
1. Implement Systems Thinking
Systems thinking is essential for an engineering strategy. It involves recognizing how various parts of your organization interact and influence one another. Larson suggests that systems thinking helps identify bottlenecks and inefficiencies, enabling smoother operations.
How to Apply Systems Thinking:
- Map Out Processes: Visualize workflows to see dependencies and interactions. For instance, if code review delays are causing issues, mapping this can help reassign resources to speed up the process.
- Identify Feedback Loops: Recognize positive and negative feedback loops to manage and optimize them. Regular team retrospectives can create a positive loop for continuous improvement.
- Holistic Approach: Consider the broader impact of decisions, looking beyond immediate outcomes to long-term effects. A microservices architecture might initially increase complexity but will enhance scalability and flexibility over time.
2. Develop Clear and Actionable Strategies
Creating a clear engineering strategy involves setting well-defined, achievable goals. The importance of making strategies that are ambitious yet realistic.
Steps to Develop Actionable Strategies:
- Set SMART Goals: Ensure your goals are Specific, Measurable, Achievable, Relevant, and Time-bound. For example, instead of “improve system performance,” aim for “reduce API response time by 20% in the next quarter.”
- Break Down Goals: Divide larger goals into smaller, manageable tasks. For instance, to improve API performance, you might optimize database queries, implement caching, and refactor inefficient code.
- Regular Reviews: Periodically review and adjust your strategy based on progress and changing circumstances. If certain optimizations aren’t effective, pivot to alternatives like load balancing or database indexing. No hard-feeling!
3. Foster a Collaborative Environment
A successful engineering strategy requires strong collaboration among engineering manager, product manager, and other stakeholders. My advise is building productive relationships to ensure everyone works toward common objectives.
Promoting Collaboration:
- Regular Communication: Hold regular meetings to keep everyone aligned. Weekly sync-ups and stand-up meetings can keep the team informed about ongoing projects and potential roadblocks.
- Cross-Functional Teams: Form cross-functional teams to leverage diverse skills and perspectives.
- Transparent Decision-Making: Make decision-making processes transparent to build trust and understanding. Document and share criteria and processes for prioritizing feature development.
4. Measure and Improve Productivity
Accurately measuring productivity is key to evaluating the effectiveness of your engineering strategy. Larson suggests using both qualitative and quantitative insights for a comprehensive view of team performance.
Productivity Measurement Techniques:
- Key Performance Indicators (KPIs): Define and track KPIs that reflect team performance and progress.
- Feedback Mechanisms: Implement regular feedback loops to gather insights from team members. Use anonymous surveys to collect feedback on team morale and workflow efficiency.
- Continuous Improvement: Use productivity data to identify improvement areas and implement changes.
5. Define and Uphold Company Values
Company values are critical in shaping your engineering strategy. Clearly defined values guide decision-making and behavior, keeping your team focused and motivated.
Establishing Company Values:
- Involve the Team: Engage your team in defining values to ensure they resonate. Hold workshops or brainstorming sessions to collaboratively identify core values.
- Embed Values in Processes: Integrate values into hiring practices, performance reviews, and daily operations. If “exceed” is a core value, encourage time for research and development projects.
- Lead by Example: Demonstrate company values through your actions and leadership style. If “honesty” is a value, communicate openly about company goals, challenges, and decisions.
For further read, I recommend Will Larson’s books “An Elegant Puzzle” and “Staff Engineer.”