Engineering teams and departments without a unified vision and strategy are all too common in our industry. In a small setup of around 20-30 people, perhaps it can even work without an engineering strategy.
But as a company gets bigger, it can get very chaotic and difficult to focus without one. In this article, I want to stress why it is important to have an engineering strategy in place.
The Importance of Having An Engineering Strategy
Without a specific engineering strategy, it can create distraction and cause friction between teams. People start running in different directions, as everything can seem worth working upon. This further creates indecision and confusion.
Without a clear strategy, teams often end up taking on anything which comes their way. This results in small teams working on too many different projects, leading to siloed knowledge and a lack of collaboration within the organisation.
An engineering strategy gives focus, clarity, and direction to everyone involved. When you are moving at high speeds, a small difference in your direction can make a huge difference to where you end up in the future.
How to Draft an Engineering Strategy?
Look At The Past
You can start by asking yourself how have you made decisions in the past?
Is there a common thread you can hold on to? Or do you want to start from scratch?
Do this exercise together with your team and see if you can come up with some mutually agreed themes which reflect your decisions in the past.
Get the team together and brainstorm. You do not have to set the strategy alone. People will take more responsibility and ownership if they have been part of the process that defined the strategy. Ask open questions. Seek and listen to feedback.
At the end of multiple such sessions, you should know the role of engineering in supporting the business. This process can take time, so do not force it to finish within any pre-defined time interval.
What is the business strategy?
The engineering strategy has to support whatever the business strategy is. You want your teams to care about your product, business, and the customer. When teams understand the business well, it leads to high ownership. This results in mutual trust between people of different teams and departments, as they advance towards a common goal together.
Values and Principles
What are the values and principles that will guide your architectural and technical decisions? Can you come up with engineering guidelines based on these principles? Such an engineering guideline will answer questions like when to choose a new language or technology, when to fork a new service out of an existing one, and what are the default frameworks, cloud providers, tools, and service providers that you want to use.
It is important to mention that this process of setting up an engineering strategy document will be iterative. Once you take then above steps and come up with an initial draft, keep it open for feedback before finalising. It would be wise to go through a few drafts with the entire team pitching before finalising it.
Even after final publishing, it is a good idea to revisit your engineering strategy document at regular intervals – like every quarter or six months. As you all know, the technology landscape changes very fast and you don’t want to have a strategy that promotes a dated tool or technology for no good reason.
The Outcome of an Engineering Strategy
The Engineering Strategy should further lead to 5 – 10 time-bound objectives that will take your company and its engineering forward in the next year or two. OKRs are a good format to break them down quarterly for individual teams.
A good objective sets a direction and provides enough freedom for your teams to decide for themselves how they reach there. It should be prescriptive and not descriptive so that the teams feel empowered to make their own decisions.
The engineering strategy will also identify what processes need to be introduced or improved to support the business better. This should address immediate requirements in the short term (< 6 months), as well as long term (1-3 years) requirements.
These processes can cover topics like how to make better decisions together, how often do you want to roll out to production, how do you want to test and ensure the quality of rolled out code, how do you want to onboard and train new people, and so on.
Over time, your Engineering Strategy should answer questions like:-
- What values and principles drive decision making in the organisation?
- What role do technology and engineering play in supporting the business vision, strategy and objectives?
- What tools and technologies do you use? And why?
- When and how to decide to introduce new tools and technologies?
- Where are you headed in terms of architecture, culture, and knowledge sharing? Do you have a roadmap to reach there?
- How do you hire new engineers and bring them onboard smoothly?
- How do you connect technical work (like deployments, automated testing, code reviews) to business objectives?
- How do you divide roles and responsibilities within the organisation? What are the expectations of different roles?
- How is performance measured and evaluated? How and when promotions happen?
To sum up, a good engineering strategy frees up mental space so that people know what to execute upon, and how will it help the company move ahead, and more importantly, in the right direction.
For more information and specific steps to create an action-oriented strategy, you can refer to the Good Strategy Bad Strategy: The Difference and Why It Matters book. In this book, you will see many examples of detailed strategies from the world of business, nonprofits and even the military.