Establishing an Engineering Vision (Eng Strategy pt2)
Crafting a multi-year vision and staying accountable
Part One
Why go bigger? Why write a vision?
The need for a vision beyond the upcoming quarter becomes increasingly apparent as companies grow and diversify their engineering teams into multiple squads. Engineers begin to encounter decision-making scenarios that require a level of autonomy and foresight not previously necessary. They crave a deeper understanding of the company's long-term goals to ensure their decisions are aligned with a broader strategic vision.
This extended perspective is crucial to:
Provide a broader strategic context that bolsters engineers' confidence in their day-to-day decision-making.
Enable engineers to identify and escalate issues that may require leadership to revisit and refine the company's strategic direction.
This step is crucial to align the growing independence of engineering teams with the company's overall goals, ensuring that today's tactical decisions smoothly support long-term strategic objectives.
Let's walk through the process of defining your engineering vision to ensure it aligns with day-to-day activities, and establish a process to ensure accountability for statements made within that vision.
Phase Three: Define a vision
Team Size: 10-20 Engineers
The Process
As is illustrated in the diagram above, we will use our past decisions and reviews, to (1) identify key themes, which will aid us in (2) crafting a strategy statement, which we will (3) map back to the key themes leveraged. With this statement and themes, we will then (4) weave a narrative for what the business will look like three years from now and (5) review our progress quarterly during our existing Leadership Review process.
1) Identify your themes
Similar to how the Leadership Review is informed by lessons learned through multiple decision documents, the engineering vision is informed by lessons learned through multiple leadership reviews. I recommend taking the last year or so worth of leadership reviews and jotting down scratch notes on key themes that are emerging. It doesn’t have to be fancy. The goal here is to ensure your vision is grounded in actual decisions being made and not some theoretical world that you wish existed within your engineering teams.
Here are some examples of themes I’ve seen in the past:
New features deserve tech debt - Accept technical debt on new features with a plan to revisit that debt in six months if the feature gains traction.
Protect our finance system - Invest in further hardening of a financial system to reduce the risk of production incidents. Treat this part of our system differently than the rest of the experience.
Leverage off-the-shelf tools - Choose an off-the-shelf piece of technology if it places more power in the hands of the company's internal administrators of a system.
Emphasize development speed - Choosing not to add additional acceptance tests because of the incurred tax per release which reduces development speed. We know that this adds risks to our releases but we accept this for every area beyond our finance system.
Harden architecture to protect data quality - Choosing to invest in an additional data layer to ensure that the business trusts the data that comes out of the system. We chose this because we realized our internal teams were making decisions based on incorrect product data insights. This led to subpar strategies for product development.
2) Draft your strategy statement and 3) enumerate key themes
Constructing an engineering strategy statement involves articulating a clear, inspirational, and forward-looking declaration that guides the engineering team's aspirations and objectives. It should resonate with the team's values and ambitions, providing a roadmap for future achievements.
Take the sourced themes and simplify them down to a core set to influence the strategy statement. Every technology team’s goal is to deliver a product but what is it that makes your team unique? What do those identified themes tell you about what is important for your team? Why is it important? Let’s take a look at the 5 examples of themes above and construct a strategy statement:
"Our strategy is to rapidly innovate while strategically managing technical debt, fortifying financial systems, empowering teams with efficient tools, and ensuring data integrity for informed product strategies."
Key Themes:
rapidly innovate: Ties to the theme of accepting technical debt for new features. Innovation often involves moving quickly and making calculated compromises, like accepting technical debt to get new ideas off the ground with a plan for future refinement.
managing technical debt: Directly references the theme "New features deserve tech debt." It acknowledges the strategic acceptance of technical debt as a part of the innovation process, with a commitment to revisit and resolve it as necessary.
fortifying: Relates to "Protect our finance system." This emphasizes the special attention and resources allocated to strengthening and securing the financial systems against risks and incidents, treating these systems with extra caution.
empowering: Connects to "Leverage off-the-shelf tools." This highlights the choice to use readily available technologies that empower the company's internal administrators by enhancing their capabilities and efficiency.
data integrity: Ties to "Harden architecture to protect data quality." It underlines the commitment to ensuring the reliability and accuracy of data, which is fundamental for making informed decisions and developing effective product strategies.
4) Imagine a world 3 years from now
Crafting a narrative that projects three years into the future helps make the strategy statement and themes more tangible by illustrating the practical outcomes and challenges of strategic decisions, showing how abstract concepts translate into real-world impacts. It provides a concrete scenario that teams can visualize, fostering a deeper understanding of the strategic direction and its implications on the company's growth and market position. Let’s keep going using our example from above:
Example: Imaging three years out
Three years later, our company has significantly evolved by embracing technical debt to fuel rapid innovation and secure a leading position in the industry. This strategy enabled the quick introduction of new features, surpassing competitors and attracting market attention. Through it all, financial systems remained highly secure and reliable, thanks to focused investments.
Tech Debt Impacts
However, this journey introduced challenges. The technical debt that initially accelerated our growth started to show its drawbacks. Key features essential to our offering encountered scalability and stability problems, requiring a shift of resources from innovation to maintenance.
Navigating Speed and Security
The focus on speed, although beneficial for agility, created security vulnerabilities outside our main financial systems. These issues, albeit limited, affected our reputation and led to a reevaluation of our approach to risk. Additionally, our reliance on off-the-shelf tools, while enhancing efficiency, sometimes limited our flexibility due to vendor dependencies.
The Efficiency Dilemma
Moreover, prioritizing rapid development sometimes resulted in overlooked bugs and user experience issues. These, while fixable, highlighted the need for a careful balance between agility and product excellence.
Quality vs. Agility
Reflecting on our strategic choices reveals a complex balance between driving innovation and managing the realities of growth. These choices have led to notable successes and valuable lessons in handling the trade-offs of our approach. As we move forward, the experiences of the past three years guide our ongoing efforts to innovate while maintaining our commitment to quality and reliability in a constantly changing tech environment.
5) Incorporate it all in your Leadership Reviews
At this point you’ve set the foundation for your engineering strategy but you haven’t ensured accountability towards the key themes and your three year vision.
In our quarterly leadership reviews, it's important to assess how our ongoing projects and strategies align with our vision and themes. Leveraging our example, we need to review our progress and the effects of our decisions, such as managing technical debt, safeguarding our financial system, choosing effective tools, speeding up development, and guaranteeing data accuracy. By doing these assessments, we can pinpoint any misalignments, understand their causes, and adjust our actions. This process helps us stay on course with our vision, adapt to challenges as they arise, and ensures our company continues to grow and maintain its competitive edge according to our long-term objectives.
I recommend using a stoplight scoring system against those themes to reflect on how we did in the previous quarter.
Green - anything marked as green does not need attention.
Yellow - this is where tuning and minor adjustments can be made.
Red - these themes likely needed more heavy handed influence to ensure they get back on the right track.
Leveraging the example from our last article, we can now add a vision review section to the leadership review. I’ll include the full new document to ensure it’s clear how the Leadership Review has evolved from your first iteration when the team was smaller:
2024-Q1 Leadership Review
Date: 3/29/2024
Past Quarter Decisions:
Implement Tailwind CSS
Hold off on service layer refactor
Keep payments service in monolith
Themes with Stoplight Scoring
Managing Technical Debt 🟡
While progress is being made, the increase in technical debt requires ongoing attention and action. Next Steps: Prioritize a review and action plan for addressing critical areas of technical debt.
Safeguarding Our Financial System 🟢
Our financial systems have remained secure and stable, showing the effectiveness of our current measures. Next Steps: Continue monitoring the security and stability of our financial systems.
Speeding Up Development 🔴
The push for development speed has led to significant challenges in maintaining code quality and sustainability. Next Steps: Implement measures to balance development speed with code quality and sustainability.
Choosing Effective Tools 🟢
The successful integration of tools like Tailwind CSS demonstrates our effective tool selection process. Next Steps: Maintain our effective tool selection process to support development efficiency.
Guaranteeing Data Accuracy 🟡
Data integrity issues have emerged as a concern, impacting decision-making and trust in our product insights. Next Steps: Address the emerging challenges in data integrity to support informed decision-making.
Quarter Reflections:
General Feel: The team is increasingly concerned about the rising technical debt, a byproduct of our rapid development pace to keep up with market demands.
Biggest Win: Implementing Tailwind CSS stands out as a major success, significantly improving our UI development speed and bringing a level of consistency that was previously unattainable.
Biggest Challenge: The sales season's intensity surpassed our expectations, pushing our systems and strategies to their limits and resulting in an accumulation of technical debt across multiple projects.
Next Quarter Goals:
Focus Areas: Our primary objective is to devise and implement effective strategies for managing and reducing the technical debt that has accumulated. This involves revisiting past decisions, like delaying certain refactors and the continued reliance on a monolithic architecture for our payments service, to evaluate their long-term impact.
Risks: The prospect of sustained high sales volume, while beneficial from a revenue perspective, poses a significant risk of further exacerbating our technical debt issue. It's crucial to balance the need for rapid development with the imperative to maintain code quality and system stability.
Consolidated Action Items
Pat - Conduct a targeted technical review by 4/15 to prioritize refactorings and address the most critical areas of technical debt. Why? To systematically reduce our technical debt in areas that impact our scalability and stability the most.
Pat - Form a technical debt task force by 4/20 aimed at identifying and implementing quick wins for debt reduction without hindering development speed. Why? A focused group can accelerate the identification and resolution of technical debt, ensuring our innovation pace remains unaffected.
Bob - Introduce mandatory code reviews for speed-related decisions by 4/10 to ensure they align with long-term goals. Why? To prevent compromises in code quality and maintain a balance between rapid development and sustainable practices.
Jane - Develop a streamlined process for integrating and testing new features by 5/15, aiming to reduce the impact on development speed while improving code quality. Why? Streamlining these processes will help us maintain high development speed without sacrificing the quality of our output.
Jane - Evaluate and propose a new data validation framework by 4/20 to enhance data accuracy across systems. Why? Reliable data is crucial for informed decision-making and maintaining trust in our product's insights.
Oli - Initiate a cross-functional team review by 5/5 to assess the impact of data inaccuracies on product strategies. Why? Understanding the business impact of data inaccuracies will guide us in prioritizing fixes and improvements.