Strategizing for Success in Software Engineering
In software engineering, having a solid strategy is crucial for achieving success.
In software engineering, having a solid strategy is crucial for achieving success.
Strategies Are not Goals.
First, it’s essential to understand that strategy differs from the goal. The goal is the result we want to achieve, while strategy is our approach to reach that goal.
Strategy is a set of cohesive hypotheses to reach an outcome. Each team, project, and company can have different strategies based on specific outcomes.
A Practical Example
For example, let’s focus on a strategy for an engineering goal. At Pinterest last year, my group, the Shopping Experience Engineering org, was focused on enhancing the user experience to help users shop in the Pinterest app.
Our goal was to build user experiences perceived as reliable and responsive. Our strategy was to reduce the number of bugs and page load latency, as we believed that improving quality and performance were essential to achieving this goal.
A Strategy Should Be Cohesive.
A successful strategy should be cohesive, meaning all its elements should work together to achieve the desired outcome. It’s essential to have a clear understanding of the goal and to develop a set of coherent hypotheses, like in the above example, where quality and performance work well together.
A Strategy Can Change.
It’s also crucial for strategies to be flexible, as the world of software engineering is constantly changing. Teams should always be open to new ideas and willing to adjust their strategy if necessary. For example, if our API infrastructure had issues, our strategy could change to focus on API stability instead of reducing the number of bugs.
In conclusion, understanding the difference between strategy and goal and identifying the best strategy for your team is crucial for success in software engineering. Additionally, teams should always be open to new ideas and flexible in approaching their desired outcome.