Many teams today have chosen to follow an Agile approach to software development. Despite the proven benefits of such an approach, many of these teams still fail to realize their full potential.
One reason is that while these teams may place a priority on perfectly implementing their chosen Agile methodology, such as Scrum, XP, or Kanban, they neglect to consider the impacts to the human side of those methodologies. One of the most promising of these human practices is the balanced team.
In this article, you will learn to:
“A team management philosophy that has people with a variety of skills and perspectives that support each other towards a shared goal.” - balancedteam.org
The typical balanced team mix for product development is a product manager, product designer, and engineer(s) dedicated to a single product development effort. This is in contrast to another common team structure where some roles, such as product management and design, are shared across many product efforts.
When we work within the construct of a balanced team, we ensure that all these perspectives blend and inform each other so that we build products that are desirable, usable, feasible, and viable.
Our product development teams are:
The following are the most common roles you will see on a balanced team for product development. However, your team’s roles may differ slightly depending on your product.
|Engineer||Engineers implement product functionality, working from a prioritized backlog of user stories. Engineers guide the implementation and help you understand the technical implications of product decisions. You will help them gain an understanding of what product success looks like. You will work together to validate your backlog’s prioritization.|
|Product Manager||Leads a team to discover and deliver a product that creates meaningful value for their company and users. They facilitate decision-making in service of shipping successful features. To do so, product managers need to clearly understand who your users are and what they need, what impact the business expects from the product, and who your stakeholders are. They also need to collaborate closely with your team.|
|Product Designer||Deliver value in the form of User Experience Design decisions. Their job is to deeply understand the users in order to define solutions that are desirable, useful, and usable. Product managers work closely with designers, pairing on user research to validate critical user and solution assumptions before adding development work to the backlog.|
At VMware Tanzu Labs, we assemble balanced software product development teams in order to ensure that the products we are building are:
Each member of the balanced team represents one of these areas.
The product should be something that users want and that solves real problems. A designer’s primary question is, “How is the user affected?” More than anyone else on the team, designers help us answer these fundamental questions: “Is this an important problem to users?” and, “Does this design solve the problem?”
Reflection: if designers become too focused on user needs and cannot connect with business needs and technical feasibility, they will focus on solution ideas that cannot be implemented and/or will deliver no return on investment.
The product has to support a sustainable business model. The product manager’s primary question is, “By solving these specific user problems with these specific solutions, are we creating valuable user and business outcomes?”
Reflection: if product managers become too focused on the business and cannot connect with users, they will likely focus on solutions that don’t solve any real needs and thus don’t get used.
Product implementation has to be feasible and robust. Engineers’ primary question is, “What technical implementation will satisfy the project and product goals best?” Engineers help us debate the feasibility and merit of potential solutions while remaining mindful of technology constraints.
Reflection: it doesn’t help for engineers to come up with feasible solutions that don’t solve problems for users, or to home in on solutions that are desirable and viable and yet not feasible. Engineers should offer alternative solutions that are more feasible (or cheaper) if they know them to be available.
When sitting next to each other, or sharing virtual space, team members constantly communicate and collaborate. Teams are focused on delivering customer value through working software in small, iterative releases, and are self-organizing in that they can adapt common tools and practices to what works best for all members. Communication among team members tends to be informal, favoring spontaneous conversation over lengthy meetings.
Balanced teams have a host of benefits, some top ones are:
|Consensus building||• Having a balanced team dedicated to a product and highly collaborative during product development allows for rapid context sharing and fewer meetings.
• The different disciplines can break out of their siloed domains and create more room for compromise and collaboration.
|Modularity of the team||Shared product knowledge on the team across disciplines allows the team to not get blocked when a team member isn’t present.
• Creates more flexibility for team members to rotate to other teams and easily onboard new members.
|Autonomy in decision making||• A shared sense of product ownership allows the team to feel confident in decision making, empowered to lead, able to ask another team member for help, and knows when to gather input from outside of the team.|
|Cross Domain Empowerment||• Having cross discipline balanced team members like a Product Designer and a Developer pair with each other to review UI implementations together allows for much less documentation like requirements and design specification. It also creates empathy and respect for other practitioners. Designers can more easily understand technical constraints the more time they spend with developers and can incorporate those learnings into future design concepts.|