Skip to content

Engineering Strategy and Planning

Any organization needs planning. Strategic planning can divide the work into smaller pieces, reveal challenges, reduce risk, and improve delivery estimations. Each company has yearly and quarterly plans. Within each company, there are multiple departments and teams. Each entity needs to align with the company strategy. It’s hard to do than said. There are multiple things to think about when you get into the details. In this post, I will go through some strategic planning exercises.

First things first, we need to find out areas of work that we can align with the company strategy. There would be one or more areas to cover. We can’t do all of those. Intuitively, one can think about the area that would be more fruitful than the others. The leverage is about the impact that a particular area would bring. We can perhaps think of area impact in terms of correlated numbers. For instance, the number of users or number of projects. The higher the number of projects or users, the higher impact is. We need to be cautious in some small areas. We still need to address them.

Engineering strategy and planning

After finding the areas to work on, we need to find projects in these areas to deliver. There might be more than one project for each area. We need to associate these projects with the overall company strategy. For example, if we finish project X, we would improve the availability of our backend database by α amount. It then improves the availability of the API we provide for our customers by δ. Once we identify these projects, then we can conduct opportunity and risk analysis. Opportunity is the improvement we expect. The risk is project failure due to reasons such as sickness, attrition, cost-cutting, and so forth. Some projects would have high risks and opportunities. We need to balance these out. We can perhaps deliver less risky projects for 70% and risky projects for 30%. In addition, we need to size these projects. We can only do so much. We need to pick projects based on their risk, opportunity, and level of effort. Note that team/s can’t work on these projects full time. We need to take operational or engineering health work into account.

The next thing is to track projects. Software projects aren’t tangible. If we were to construct a bridge, we would see the construction progress. Nevertheless, we don’t have such luxury. Thus, the best thing we can do is incremental development. It makes delivery more predictable. Some work has a big bang effect. We need to minimize such parts. Increments are crucial to avoid or mitigate potential downturns. We also need to check our metrics to observe the promised improvements. Sometimes projects won’t go in the direction we want. We often estimate wrong. Issues arise. Therefore, we need to refine the project. We might need to take things out as we wouldn’t be able to deliver on time. An approach here is to categorize tasks as a must, should, and could. We can then remove some of them to enable timely delivery. Even then things can slip. Don’t be disheartened. We just need to be transparent with stakeholders.

In consequence, we need to find areas to work on. These are works that align with company strategy. We then find projects for each of these areas. We conduct an analysis of size, opportunity, and risk. We then find metrics to measure projects. Lastly, we track, review and refine projects.

Oh hi there 👋 It’s nice to meet you.

Sign up to receive awesome content in your inbox, every month.

We don’t spam!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.