The three buckets exercise
March 2024
Focusing a software development team is about providing direction, clarity, and purpose. It optimizes resources, improves efficiency, and fosters a positive and productive working environment, ultimately contributing to the success of the team and the projects they undertake.
It involves narrowing the scope of vision, requiring the discipline to say no to certain things and concentrate solely on what is truly important. Achieving this state for your team involves several steps, but it begins with aligning everyone on a clear understanding of their core responsibilities, skills, and priorities.
With that in mind, let’s get on with it!
Write down all the things your team does
While it’s possible to undertake this task individually, involving your team in the process is a more effective approach. Collaborating on this effort serves as a team-building exercise, but, more importantly, it empowers your team and makes their commitment to the outcome stronger.
Bring your team together and structure the workshop into three parts. The initial phase involves listing all the current activities your team is engaged in. This list can include various entries, aiming ideally for a compilation of skills but initially accepting any input. Examples may range from complex features, technologies, and deployment processes to onboarding new members and feedback loops.
Continue gathering ideas until there is a natural lull. This pause provides a suitable segue into the second part of the exercise.
This is an example of what you can get in this first phase:
Store front-end, Product pages, internal systems UI, API for customers, Integrations with third party services, Spin up servers, terraform for new system, UI design, journey mappings, feedback surveys, packaging of products, stock allocation, customer service internal system, internal knowledge system.
Synthesising
Once you have compiled your list, take some time to categorize the entries based on overarching skill themes. Again, you can do this by yourself, but it works better if the whole team is involved.
This step is super important for the team to get what you’re looking for. Make it clear you want a list of general skills the team uses and why they use them. If the themes seem too broad, like just saying “Databases,” ask questions like ‘What exactly do you do with Databases?’ It’s not just about listing technologies; it’s about the everyday skills needed. Using a database is different from managing it, and doing data analysis is not the same as storing data for a user profile. Always aim for specific answers from the team.
From the previous list, you can get the following list of skills:
Front-end development Back-end development Infrastructure development UX expertise
The three buckets
Lastly, you want to group those general themes in three buckets.
Alpha. What are you best at? What gap can you fill?
This bucket is the skills that differentiate your team from any other team. Anything in this bucket is what the team should focus on.
Beta. What are you good enough at?
This bucket is the skills that your team is good enough at. They are not giving you a great advantage but they are needed. Some of this skills you still want in your team, but some of them you want to remove or outsource to some other team
Gamma. What are you not good at?
This bucket is the list of skills that your team shouldn’t be doing at all. Anything here should be delegated to a different team.
For example, let’s say that your team is customer facing, you might want to get something like this:
- Alpha: Front-end development, UX expertise
- Beta: Back-end development
- Gamma: Infrastructure development
Or maybe your team is in charge of your company platform back-end. Then the result might be:
- Alpha: Infrastructure development
- Beta: Back-end development
- Gamma: Front-end development, UX expertise
After you get your list sorted in the three bucket, you have a clear idea on what your team should stop doing, reducing their cognitive load in the process.
Conclusion
In summary, focusing a software development team involves aligning everyone with core responsibilities and skills. Through collaborative efforts, the team lists their current tasks, categorizes them based on skill themes, and groups these themes into three buckets: Alpha (strengths), Beta (competencies), and Gamma (areas to avoid or delegate). This process provides clarity on what to focus on, maintain, or eliminate, reducing cognitive load and enhancing efficiency for project success.
And remember, this is just step one. After understanding what the team is focused on, the next step is to find the team mission, but that’s material for another article.
That’s all!