May 13, 2024
10 min read

How We Fixed Our Backlog Process

How We Fixed Our Backlog Process

TL;DR: We've overhauled our backlog management to ensure alignment with business needs and enhance productivity. This new system empowers stakeholders to manage tasks flexibly and maintains a continuous workflow through regular task replenishment.

In our process to refine our project management and backlog handling at Doppler, we identified several critical inefficiencies in how tasks were being distributed and prioritized. This realization sparked a comprehensive review of our existing processes, leading us to focus on optimizing for clarity, flexibility, and speed to better align with our business objectives.

The Goals of Fixing Our Backlog Process

Here’s what we aimed to achieve and avoid in our revamped process:

  • Goals:
    • Transparency and Agency: We wanted every stakeholder, from Core Product to Engineering, to have a clear view and say in the backlog priorities.
    • Flexibility for Engineers: It's crucial that our engineers have the autonomy to select tasks that match their skills, interests, and available time.
    • Adaptive Priority Changes: The ability for any stakeholder to adjust priorities quickly is essential to respond to emerging business needs effectively.
    • Optimal Team Velocity: We strive to maintain our engineering team's efficiency at the best possible level for our company size.
  • Anti-goals:
    • Engineering as Gatekeepers: We moved away from making our engineers the sole custodians of the backlog.
    • Rigid Deadlines: We eliminated inflexible deadlines that do not consider actual work pace and issue complexity.
    • Fixed Priority Cadence: We avoided locking stakeholders into setting priorities on a rigid schedule, often leading to misaligned business goals.

By focusing on these goals and steering clear of the anti-goals, we've started to see a more dynamic and responsive project management environment, significantly enhancing our productivity and job satisfaction across teams.

Stakeholders

At Doppler, a backlog stakeholder is any individual or team that has a vested interest in the features and improvements we implement in our products. Our stakeholder landscape is designed to be flexible, accommodating the evolving needs of our business and technology.

Currently, our stakeholder groups include:

  • Core Product: This group advocates for the introduction of new features and essential improvements. They also focus on analytics and the development of new tools to enhance product capabilities.
  • Design: Tasked with enhancing our product’s aesthetic, accessibility, and functional aspects, the Design team advocates for user interface improvements and user experience optimizations.
  • Growth: Concentrating on initiatives that drive product adoption and user base expansion, this team leverages analytics and tooling to identify and act on growth opportunities.
  • Engineering: This group is primarily concerned with internal tasks such as refactoring, reducing technical debt, addressing critical bugs, and implementing security enhancements.

Budgeting and Prioritization

Every 2 to 4 weeks, representatives from each stakeholder group convene to discuss the current business objectives and decide on a fair distribution of effort and resources. This meeting ensures that our efforts are aligned with the immediate needs of the business and allows for flexible reallocation of priorities based on emerging requirements. Examples of such redistributions include:

  • Allocating a higher percentage of resources to Core Product development to support the implementation of significant new features.
  • Shifting focus towards Growth for periods to experiment with new pricing models aimed at enhancing our self-service offerings.
  • Increasing the Engineering budget temporarily to address scalability challenges or significant technical upgrades.

Estimation and Task Management

Each stakeholder can tag issues in our project management tool, Linear, which helps organize and prioritize tasks effectively. Stakeholders request complexity estimates for tasks by either moving them to a Triage stage or tagging them with their respective labels, allowing the Engineering team to assess and provide feedback on the effort required.

This structured yet flexible approach ensures that all stakeholders have the necessary tools and authority to influence the product roadmap effectively and responsively.

Task Population and Selection

Managing a well-organized and efficient backlog is critical for maintaining the momentum of our engineering team.

The Role of the Backlog Manager

A designated backlog manager is responsible for the operational aspect of our task management system. This role includes:

  • Maintaining a Constant Flow: The backlog manager ensures that the "Ready for Work" view within our task management system is always populated with tasks that are prepared and prioritized for immediate action.
  • Re-Up Process: When the number of tasks in the highest priority section begins to dwindle, the backlog manager initiates a 'Re-Up' (see more below) to replenish it, ensuring a steady flow of work.

Engineer Task Selection

Engineers at Doppler have the autonomy to choose tasks that match their expertise and current capacity. Tasks are categorized into different time slots (T0, T1, T2) based on urgency and priority:

  • T0 Items: These tasks are the most critical and must be selected first. They are typically tied to urgent business needs or critical system issues.
  • T1 and T2 Items: Once all T0 tasks are underway, engineers move on to T1 and, subsequently, T2 tasks based on their strategic importance and deadlines.

This system allows engineers to plan their workload effectively, focusing on what needs immediate attention while also considering their personal development and interests.

Re-Up

To ensure that our engineering team can effectively address both immediate and long-term needs, we employ a periodic replenishment method known as the "Re-Up." This process is crucial for maintaining a balanced and proactive workflow within our backlog management system.

The Re-Up Process

During the Re-Up, the backlog manager performs several key actions:

  • Assessment of Current Velocity: The first step involves evaluating the team’s current work pace and completion rates. This assessment helps determine how many new points (i.e., units of work) need to be added to the backlog to maintain optimal productivity without overwhelming the team.
  • Shifting Existing Tasks: To ensure ongoing tasks are completed promptly and do not stagnate, all T2 items are promoted to T1. This shift helps clear the way for adding new tasks without causing backlog clutter.
  • Adding New Tasks: Based on the team's velocity and the current distribution of efforts among the stakeholder groups, the backlog manager allocates points for new tasks. Each stakeholder group is then consulted to select tasks that align with the assigned points and strategic priorities.

Stakeholder Engagement

Each stakeholder group participates actively in the Re-Up process by selecting tasks that reflect their current priorities:

  • Example Allocation: Each group is assigned a portion of tasks based on their focus area. For instance, Core Product, Design, Growth, and Engineering each choose tasks according to their assigned focus areas. Core Product, for example, would add tasks to the T2 section, which are then made available in the "Ready for Work" pool.

This collaborative approach ensures that all areas of our product and engineering efforts are considered and that the workload remains balanced across our team's different components.

Keeping the Engine Running

The goal of the Re-Up is not merely to keep tasks flowing but to adapt to the changing dynamics of our projects and the needs of our business. It allows us to be flexible and responsive, ensuring our engineering resources align with the most current business goals and customer needs.

Fixes, Swaps, Trades

Adaptability is a cornerstone of effective project management. To accommodate the inevitable shifts in priorities and urgent requirements, we've established a flexible system within our backlog management that allows for fixes, swaps, and trades of tasks among stakeholders.

Handling Urgent Fixes

Critical issues, such as security vulnerabilities or major bugs, require immediate attention and are thus categorized under T0. These tasks:

  • Are Prioritized Instantly: They bypass usual backlog procedures to ensure rapid resolution.
  • Do Not Affect Other Tasks: Their inclusion in the workflow is designed to minimize disruption, allowing other ongoing projects to continue without delay.

Task Swapping Mechanism

Flexibility in task management is enhanced through a swap system, where stakeholders can exchange tasks of equivalent points and priority. This system is useful for adapting to changing business needs without losing momentum on project timelines. Examples include:

  • Equal Value Swaps: A stakeholder from the Core Product might exchange a T2 task worth 5 points for one 3-point and one 2-point T2 task or swap a T1 task for another of the same priority and point value.
  • Minimal Impact on Progress: These swaps are structured to prevent any work already in progress from being wasted, thereby optimizing both time and resources.

Trading Points

Beyond simple swaps, stakeholders can also engage in trading points. This allows them to defer some tasks to a later time or prioritize others more urgently depending on shifting strategic goals. The flexibility offered by this system means:

  • Dynamic Resource Allocation: Stakeholders can reserve points to allocate later, ensuring they can respond to unexpected needs or opportunities.
  • Collaborative Adjustments: Trades and point reservations are conducted with the consensus of all stakeholders, maintaining a balanced approach to task management across different teams.

Evolving the Process

While our current system is designed to be robust and responsive, we are always looking for ways to make it even more adaptable and efficient. The flexibility of our processes allows us to continuously refine how tasks are managed. Through ongoing review and adaptation, we strive to maintain a system that not only meets today’s needs but is also prepared to evolve with tomorrow’s challenges.

If you like this post, you might also like our post about how we use Code Review Comment Prefixes for Clearer Feedback.

We’d like to hear about how you manage your engineering processes at your organization. If you’d like to share, feel free to email chandler.mayo@doppler.com.

Enjoying this content? Stay up to date and get our latest blogs, guides, and tutorials.

Related Content

Explore More