Engineering departments often face the difficulty of balancing competing priorities. With onboarding new clients, developing new features, and addressing technical debt, each initiative holds critical value. New clients generate revenue, strategic initiatives provide a competitive advantage, and managing technical debt ensures the long-term sustainability of systems. The question then becomes, how can an engineering leader guide their teams to prioritize these tasks, which all require engineering effort, effectively?
Strategies and Helpful Resources
To assist engineering teams in navigating these challenges, we’ve developed two resources: Pragmint’s Prioritization Decision Tree and Decision Record Template. Here’s how they can streamline your priority-setting process:
The Prioritization Decision Tree: A Priority Map for Developers
The Prioritization Decision Tree is a straightforward guide for developers, leading them through a series of questions to identify top priorities. It simplifies decision-making by:
-
Empowering Individual Contributors - decentralizes small and/or implementation-level decisions. It encourages ICs to break apart big solutions into small chunks. It also encourages people to find solutions that require 5% of the total investment, but return 80% of the value to prove a path forward.
-
Clarifying Broader Decision Ownership - helps team members eliminate confusion, reduce bottlenecks, and streamline collaboration across the organization. This ensures that the big decisions are made promptly and by the right people, while giving anyone in the organization the opportunity to raise an issue.
For example, if a developer needs clarification about prioritizing a new feature or technical debt reduction. They can use the Prioritization Decision Tree to evaluate the decision’s impact on upcoming releases and, when prudent, either take action by themselves or consult with the relevant stakeholders to make a well-rounded decision.
Once developers reach a point where they are directed to involve stakeholders, they can make use of the Decision Record Template.
The Decision Record (DR) Template
The Decision Record Template helps leaders prioritize decision-making, particularly regarding ROI. The template is used to collect information from developers and collaborators to list all the options and allow leaders to:
-
Focus on ROI: Leaders are guided to think through decisions with an eye on ROI, evaluating options regarding value and the timing of returns.
-
Document Decisions for Future Reference: The DR captures decisions, and the thought processes behind them, serving as a reference for evaluating the effectiveness of decisions based on their outcomes. This can also be a really useful resource when onboarding new team members.
-
Improve Decision Quality: Leaders can review options in an organized way, adding insights from different people to improve decision-making. Carefully weigh each option to better align with what the organization wants and can do.
Imagine an engineering leader grappling with the decision to onboard new clients, develop new features, or tackle technical debt to secure the system’s future. Here, the Decision Record Template enables the leader to collect and document team insights, directly linking them to each option. To choose the option with the most ROI, the leader uses the DR to detail arguments for all three options, considering long-term goals and resources. Once the leader decides to prioritize system reliability, they share the decision and its rationale company-wide through the DR, keeping everyone informed and showcasing the thinking and collaboration behind the decision.
Pragmint developed a Decision Record Template that emphasizes decision-making focusing on ROI. It prompts team members to document the considerations we outlined above.
Pragmint’s real-world example
During a project with Camp Gladiator, our team developed a system to manage and update customer information efficiently. The initial proposal required our team to undertake a complex process involving gathering data from various sources, storing it, and then analyzing it through a series of steps and tools.
We realized that an architectural decision of this magnitude isn’t one we could make by ourselves, so we followed a process similar to the one outlined in the decision tree to gather the correct stakeholders. Then we presented our alternatives, similar to the Decision Record format. From there, the choice became clear. Our stakeholders made the decision, and we got to work on the simplified architecture.
Key Takeaways
-
Not everything is a top priority. Even though it feels like everything needs to be done right now, that’s not true. You can use special strategies to figure out what really needs to be done first in your engineering team.
-
Identify the right person to make a call, then feed them context. Sometimes, decisions must involve more than one person. The Decision Tree helps developers know when to talk to other team members or leaders for decision-making. The Decision record helps leaders receive input from team members to make informed decisions, with ROI being the focus. Open collaboration in decision-making ensures that each choice considers diverse viewpoints and aligns with the company’s objectives.
-
Evaluate solutions through an ROI lens. Specialists, driven by passion, might over-engineer solutions, adding unnecessary complexity (“gold plating”). Keeping things simple and picking options that give us the most for our money, guards against this. This helps in properly planning resources and increasing value.
-
Document decisions. Documenting decisions helps everyone understand why certain choices are made, making the team’s direction clear. It allows teams to learn from past decisions, improving future choices. Plus, it keeps everyone on the same page, supporting a transparent and accountable work environment.