Have you ever considered the various types of tasks within a team? Why do we often separate tasks into 'technical' and 'product' categories? Is this division a reality, or is it simply a reflection of our difficulty in articulating the value of non-functional behavior?
The Current Concept of Technical Task
Technical tasks are typically considered those that involve the underlying work on non-functional related endeavors. These can include activities like updating dependencies, improving performance, etc.
While they may not always have a direct visible impact on the end user, In reality, almost every task a development team undertakes has some level of impact on the product. Even tasks perceived as purely technical, such as improving code quality or optimizing performance, ultimately contribute to a better user experience and product reliability.
Understanding the Net Value of Tasks
Any team effort needs to have a clear purpose, whether it's technical or product-related.
If we approach our work with the previous quote in mind, any endeavor a team undertakes should yield a positive return on investment. Let's express this value as a simple formula:
where:
Value: The benefit or worth that a task or project brings to the organization, often measured in terms of revenue.
Cost: The amount of resources, including time, money, and effort, required to complete a task or project.
It's normally simpler to calculate the expected value of functional tasks because their impact on user experience and business metrics is more direct and measurable. However, even technical tasks, when evaluated through this lens, can reveal significant contributions to the product's overall value.
The benefit we will achieve from this approach is a more cohesive and efficient development process, where all tasks are recognized for their contribution to the product's success. This integrated approach to task management allows for more strategic prioritization. When all tasks are evaluated based on their potential impact on the product, teams can make more informed decisions about where to allocate their resources. This can result in more timely delivery of features and improvements, better risk management, and a more adaptable development process.
Example of Task Calculations
Functional Task: Adding a New Feature
Task: Implement a new user login feature.
Value: This feature is expected to increase user sign-ups by 5%, leading to an estimated increase in revenue of $5,000 per month.
Cost: The development team estimates that it will take a week to complete this task (around 40 hours). Assuming an average hourly rate of $50, the total cost is $2,000.
Non-Functional Task: Performance Improvements
Task: Optimize the application's performance to reduce load times and enhance user experience.
Value: Faster load times are expected to improve user retention by 15%, leading to an estimated increase in paid users and an additional revenue of $7,000 per month.
Cost: The development team estimates that it will take 50 hours to complete this task. Assuming an average hourly rate of $50, the total cost is $2,500.
With these examples in mind, it makes more sense to start with performance improvements and not working on the functional task.
Embrace a Unified Approach to Task Management
To truly integrate technical and product tasks, teams should adopt a unified approach to task management. This involves recognizing that every task, no matter how technical it may seem, plays a crucial role in the overall product vision. Here are some additional strategies to ensure this integration:
Unified Backlog: Maintain a single backlog that includes both product features and technical tasks. This ensures that all tasks are visible to the entire team and can be prioritized based on their overall impact on the product.
Cross-functional Teams: Foster cross-functional teams where developers, product managers, and other stakeholders work closely together. This can help bridge the gap between technical and product perspectives, leading to more informed decision-making.
Prioritize by Value: Prioritize the next thing based on its potential value, not by the category of a task.
Final Thoughts
In conclusion, the distinction between technical and product tasks is often more conceptual than practical. By recognizing the interdependence of these tasks and integrating them into a unified development process, teams can enhance both product quality and development efficiency. It's time to stop segregating tasks and start viewing them as integral parts of a cohesive product development strategy. This holistic approach will improve the end product and foster a more collaborative and productive team environment.
This is so true... I was in one team with separate backlogs: product backlog, tech debt backlog, non-functional backlog, support backlog, maintenance backlog... and we ended up with continuous negotiations with the PO to get some budget for anything that was not part of that backlog and impossible sprint commitments... Unconsciously, we were led to a deficient lead time and poor product quality.
Such great content, we have incorporated this article in our recent curated newsletter!