How to design a technical roadmap as a tech lead

202406291453
tags: #engineering-management

What is Technical Roadmap?

Definition

A technical roadmap is a long-term, comprehensive, actionable plan that aligns product direction among engineering and other stakeholders (PM, design, marketing, etc.).

Key steps

  1. Background and data collection
  2. Identify and analyze problems
  3. Tech stack selection and conduct technical design
  4. Aligns long term plans and outcomes with stakeholders
  5. Execution
  6. Iteratively evaluate and adjust based on results

Why design technical roadmap?

From a personal perspective:

From a company perspective:

Who should design technical roadmap?

A technical roadmap can be initiated either by executives (top-down) or by tech leads / team managers (bottom-up).

When should design technical roadmap?

A technical roadmap can be done bi-monthly, quarterly, or annually. It can also be initiated when a new product direction is kicked off, or when a new team is established.

Please note, we shouldn't wait until these timeframes to think of those problems. We should proactively think and identify these during our daily work.

How to design technical roadmap?

Step 1: Identify Problems

The book "Are Your Lights On?" explains how we can identify the real problems at work.

Finding a Problem

Induction

Identify a problem by finding repeated and common issues across teams.

AbstractIon: Middleware, platforms to support core infra capabilities (SSO, SMS, etc.)

Process Optimization: Sprint management, approval flow

Engineering efficiency: Debugging tools

Deduction

We can also identify a problem by thinking of the product and engineering goals.

Product goals:

Engineering goals:

Analyze a Problem

Clearly describe the problem

Does the problem truly exist?

Should you be the one to solve this?

Discuss a Problem

Discuss with different stakeholders:

Four key questions while discussing a problem:

  1. What's the correlation with the core business?
  2. What would be the impact after resolving this problem, according to our core values and long-term vision?
  3. Is there any simpler solution?
  4. Is this problem important to my team?

Step 2: Technical Design

Principles

The technical design needs to follow the principles below:

Architecture Overview

Use a pyramid structure to describe the high-level architecture:

  1. Background
  2. Problem Statements
  3. Research Outcome (Optional)
  4. Design Overview and Detailed Explanations
  5. Execution Steps
  6. Impact Estimation
  7. Resources Needed

In the Design Overview and Details section, we should use diagrams and images to visualize the architecture. This makes the logic and flow easier to understand.

The Design Overview and Details should also cover the following parts:

Step 3: Execution Plan

Design the execution plan

Separation of concerns with modules

Analyze the module dependencies. Determine whether they can be developed in parallel or not. The modules should satisfy the MECE (Mutually Exclusive Collectively Exhaustive) principle.

Prioritization

Prioritize work and projects using the following tools:

Who will take it / Who can take it

Breakdown execution steps

Each objective or direction should have:

Align the Roadmap with stakeholders

XFN team Collaboration

Basic Principles

Daily Tasks

Review progress periodically

Check the execution progress at regular intervals. Follow the PDCA cycle.


Reference

https://www.goodreads.com/book/show/1044831.Are_Your_Lights_On_