Best Practices for Building Effective Processes in a Product Development Team
Product development is a complex journey through the whole product lifecycle, from its idea to release and beyond. Ultimately, the main goal of the product development is to transform product backlog elements into tangible product increments.
While there are numerous frameworks that can be used as a guide for the development process, the Scrum framework stands out as the most popular and even “default” choice. It describes a set of meetings, tools, and roles that can be implemented for efficient product delivery. It allows organising the tasks and breaking them down into meaningful short and long-term goals, fosters ownership and learning from experience.
The Scrum methodology can be integrated into a higher-level design thinking framework such as Double Diamond or Triple Diamond. These approaches consist of phases (four phases for the Double Diamond, three for Triple Diamond), where the development process would correspond to the Delivery phase.
Key Features of Product Development
Based on the Scrum methodology, a product development process comprises the following key features:
Product backlog: A prioritised list of tasks aimed at enhancing the product. Product backlog items, or PBI, must be a small enough increment of work to be completed during a single sprint.
Cross-functional development team: A team comprising diverse competencies necessary for executing any development task from the product backlog.
Iterative process: the whole development process is divided into short sprints with backlog items selected based on priorities. The recommended Scrum sprint duration is 1-4 weeks, so I would suggest aiming at two-week long sprints. The iterative nature of the process ensures consistent delivery of product increments and allows for backlog adjustments as needed.
Building a development process
To implement the simplest development process, you need to perform the following actions on the given prioritized product backlog:
Take the most important tasks into the sprint backlog.
Complete the tasks from the sprint backlog.
Repeat the process.
As this is a pretty basic structure, it has several shortcomings.
It lacks intermediate sync points to ensure transparency in the development process.
It does not include feedback from stakeholders (users) which is crucial for refining the backlog of the product.
Development process is not being improved.
To address these limitations, the Scrum framework offers various practices that you can integrate in the development process.
Conducting Daily Scrum meetings where team members can discuss the sprint progress.
Holding Sprint Review meetings to showcase completed product increments and gather feedback from the stakeholders. The feedback is later used for adjustments of the product backlog.
Organising Retrospectives to assess sprint outcomes and formulate ideas for enhanced teamwork and efficiency.
Here is an example of a two-week sprint:
Addressing nuances in development
Not all aspects required for building a successful development process can be covered by Scrum. These items include:
- Managing technical backlog items.
Tech backlog implies technical improvements which do not result in the product increment but help create new product increments easier in the future. I would recommend dedicating 10-15% of the sprint to these tasks.
- Addressing bugs.
Bugs are issues that cause the developed solution to perform incorrectly or fail to deliver expected results. Depending on the defect, you can either estimate it and turn it into a Product Backlog Item (PBI) or, if it is difficult to estimate, reserve a time-box for fixing it (using the Spike approach, for example).
- Executing retrospective action items.
Retrospective action items are tasks aimed at improving development processes. Depending on the task, you can either assign it as a Product Backlog Item (PBI) in the sprint or dedicate some other time for implementation.
- Refining the product backlog
To maintain the iterative nature of the development process, it's important that tasks taken into a sprint are properly refined and estimated. For this purpose, the team formulates a "Definition of Ready" and ensures that only ready tasks are included in the sprint. Refining product backlog items and bringing them to a "Ready" state is a separate task that needs to be done in parallel with sprint tasks. To facilitate this, separate meetings can be conducted, during which the team can collaboratively work on refining backlog items.
This is how our sprints schedule looks after we add weekly Product Backlog Refining meetings:
Additionally, to clarify backlog items, it may be necessary to perform exploratory tasks that help the team understand and assess backlog items (making them align with the Definition of Ready).
Conclusion
In essence, a development team's workload encompasses various tasks, including sprint items, technical backlog items, bug fixes, retrospective actions, and refining future sprint backlog items. A balanced allocation of time to each task type, while maintaining focus on product, is crucial. For instance, you may agree to dedicate no more than 15% of sprint time to tech backlog items, which would leave you with enough time to complete your sprint goals and streamline product development.
Key Takeaways:
Explored the intricacies of product development.
Introduced Scrum as a framework for structuring product development processes.
Created a sample product development process based on the Scrum Framework.
Identified which tasks are not covered by Scrum and proposed their integration into the development process.
With this, you can build an efficient process of product development and ensure that all necessary processes are taken care of and the time dedicated to each type of task is just right. You will be able to iterate and refine not only the product features but also the internal processes and approaches.