What is Bucket Sort?
Bucket Sort is a sorting technique that places items in buckets, or categories. These items are then prioritized or ranked in order of importance, first by category and then by specific items within each category.
Karuna Sehgal, a full-stack web developer, describes bucket sort as commonly used, “a sorting algorithm, in computer science. Bucket sort works by distributing the elements of an array into several buckets. Sorting each bucket individually, either using a different sorting algorithm or by recursively applying the bucket sorting algorithm.”
Why is Bucket Sort Important?
In product management, the backlog (i.e., the development team’s to-do list) functions as a list of all projects and initiatives related to a product. Contents of the backlog vary significantly from team to team. However, what’s universal across product teams is that the prioritization of the projects and initiatives that live in the backlog is how they decide what to develop next. If a project or initiative isn’t on the backlog, it will most likely not get done.
Bucket sorting gives product teams a way to focus development and resources on the most impactful projects and initiatives that will delight customers and create a competitive advantage. However, it still allocates development time to other projects and initiatives from the backlog.
This approach paves the way to faster, more streamlined prioritization of development efforts by giving greater focus to big-impact initiatives, thereby helping companies achieve product excellence by delivering innovative, impactful products or features and getting them to market quickly.
Steps to Creating Development Buckets
There are three key steps to creating development buckets:
Step 1: Identify development categories
Start with the most impactful development items (i.e., the things that will delight customers and create a strong competitive advantage). Other categories to consider include (but aren’t limited to): near-term customer enhancements, infrastructure updates, changes to existing functionalities, and bug fixes.
Step 2: Define development time:
Assign the amount of time you want to spend on each of the categories identified in the first step. Assign the largest percentage of development time to big-impact items, with lesser percentages assigned to categories like customer enhancements or bug fixes.
This part of the process provides a great opportunity for product teams to debate how to prioritize best and allocate development time.
Step 3: Prioritize items within each category
Finally, list the specific items that fall within each development category. For big-impact items, refer to your product strategy to guide prioritization. For other categories, rank in order of priority.
There should also be plenty of opportunity for good discussion during this step about assigning priorities within each category.