Building Happy High-Performing Product Teams — Part.II

Abby Tan
7 min readMar 19, 2023

--

👉 Part. I

Cultivate a Positive Culture

A safe and inclusive environment that promotes trust, respect, and productivity is essential for the team to thrive.

🤗 Foster Open Communication

There are two parts in open communication - expressing oneself clearly and respectfully, as well as actively listening to others, being receptive to feedback, and being open to ideas.

Team get-togethers such as outings or offsite meetings could be a good starting point to help build rapport among team members. Regular 1:1s and team meetings also provide lots of opportunities to encourage sharing feedback, opinions, and ideas. It is important to emphasise listening, respect, and empathy. Be very mindful to balance skepticism and draw focus on solutions. Ensure everyone has a voice and is heard, valued, and included in the decision-making process, without fear of judgment or retaliation.

🙌 Establish Mutual Accountability

One of the main characteristics of a high-performing team is the high level of mutual accountability. This is supported by clear team goals and well-defined responsibilities. For example, if a team practices scrum, they collectively set a sprint goal during sprint planning, and have tasks broken down and assigned to individuals in order to accomplish the sprint goal together. Each team member is clear on what needs to be completed and how their work contributes to the success of the team as a whole.

Depending on the team's maturity, having team members take turns in Feature-Leading could be a great way to help promote both individual accountability and personal growth. By assuming a leadership role in feature development, team member develops a deeper level of responsibility and ownership, which leads them to adopt a more granular perspective of software delivery. The experience can help develop new skills or refine existing ones — project management, risk management, communication, and decision-making.

→ On this note, MUST check out this amazing article on Feature-Leading by my brilliantly talented friend Scott Gangemi💡 You will find an in-depth level of clarity, practicality, and insight on the “Feature Leading” approach, which will help you improve collaboration, delivery time, and quality like never before. Game-changer! 🚀

🤝 Encourage Cross-functional and Across-Teams Collaboration

Collaboration brings diverse perspectives and drives both innovation and success. Note that collaboration is not limited to within the team but also across teams and departments. Encourage team members to build relationships with colleagues within the team, and across other teams and departments. Break down silos.

Identify collaboration opportunities across teams and departments. For example, if an initiative is closely connected to another domain, consider involving relevant domain experts to provide advice and expertise. No one can be an expert in all fields - promote knowledge sharing across teams and departments; leverage the knowledge and skills of subject matter experts (SMEs) to make our work more effective.

Recognise and celebrate cross-functional and across-teams successes, create a sense of shared accomplishment, reinforce the value of collaborative culture, and inspire teams to continue seeking future opportunities for collaboration.

🤙 Maintain Sustainable Productivity and Delivery Pace

With the team, we need to take each other accountable and commit to maintaining a healthy delivery pace that balances a sense of urgency with effective workload management and safeguards the long-term growth and well-being of the team.

Side note, a few words on estimation and forecasting,

  • Balancing between project constraints — time, scope, cost, resources, risk, and quality. For instance, say there is an unnegotiable hard deadline, consider negotiating the scope and/or adding resources.
  • Ensure estimation comes from the team who owns the initiative. Confidence in estimation is built on good domain knowledge, clarity on requirements, and breakdown of manageable tasks, with considerations on complexity, effort, and risk.
  • Update forecasting as the project progresses. The target date to ship is projected based on estimation against team velocity and team capacity plus contingency buffers. Often a ballpark estimation is given at a project’s early stage, however, the forecast should be updated as the team delves into the details and removes the assumptions. Low confidence in estimation likely leads to unrealistic forecasts which can cause undesired side effects such as conflicts, stress, and burnout from crunch time. Bring stakeholders into the journey as the info unfolds, do not wait till the red flag is raised on the target date.

At times, crunch time is inevitable and it could cause significant damage to the team’s health if it is not handled properly, especially when it spans a long duration. To reduce the likelihood of it happening,

  • continuous effort is required to maintain a healthy backlog balance between delivering new capability and tech debts
  • question why, and identify the most important work to do. Priorities need to reflect the product values because there’s a limit to team capacity regardless of how great a team is. While we commit to building A we cannot deliver B — the expectation is made clear with stakeholders.
  • establish an iterative product mindset. In most cases, we do not need to build a full blue sky in one go before reaching the customers. The long time (late) to market could be a disadvantage. Shipping frequently not only shortens the feedback loop but also reduces the risk of deep in (wasting effort) building the undesired feature/product!
  • the team needs to be comfortable making pragmatic decisions and accepting a certain level of risks. There are times when technical compromise is needed to support overall success —however, this is 100% case by case, for example, considering the implications caused by future data migration, we probably do not want to take a shortcut to skip implementing a proper storage process.

🎉 Celebrate Success and Boost Resilience amid Hurdles

Recognising and celebrating both team success and individual success is an important aspect of building positive team morale and motivation. It shows that team members’ efforts and contributions are valued and appreciated. Celebration can take many forms, from verbal praise to tangible rewards. If possible, allocate a portion of the budget to treat the team for their achievements.

All journey has its highs and lows. It is inevitable to encounter mistakes or setbacks along the way. Embrace them as growth opportunities as a team — conduct retrospectives and encourage open discussion about how to improve in the future, and follow up with actions! Share both the frustration and laughter together. The team will emerge stronger with the learnings, and develop the agility to adapt to future challenges and changing circumstances.

🤩 Create Space for Creativity and Innovation

All work and no innovation make the team a dull team. Encourage a growth mindset. Provide dedicated time and breathing space for team members to explore new ideas, experiment with new approaches, spike with the latest tech, and continue developing craft at depth.

On a larger scale, this can be done with a hackathon week; on a smaller scale within a team, we can have a dedicated idea board to collect team members’ ideas and embed brainstorming time into regular meetings. Ensure to log action or tasks resulting from these sessions, such as research and technical spikes, into the team’s backlog and priorities them accordingly with other BAU tasks. That way, it ensures these creative and innovative ideas are not forgotten and get executed! These tasks can be allocated in team members’ “ramping down phase” at the end of wrapping up an initiative.

💪 Support Individual’s Growth

Both team growth and individual growth are crucial and intertwined with each other. The team stops growing if the individual is not growing. Be sure to understand team members’ passions and career aspirations to identify opportunities within and outside the team to support their growth.

For instance, if a team member is interested in up-skilling in other disciplines, encourage cross-discipline pair programming or mob programming for learning within the team, and/or mix up tasks for further development. There may be times when a team member has interests outside of the team’s scope of work, such as participating in a working group at the discipline level, which is a great initiative and can help one continue developing in-depth craft. As an EM, you’d help team members build a business case to get time in contributing to valuable work outside the team, while also keeping in mind that the team’s work takes priority. In this case, I’ve found that discussing and planning early helps to manage both team and individual expectations.

Balancing the team’s delivery output while fully supporting each individual’s growth could be challenging, however, if you manage to identify ways to align both the team’s collective goals and individual goals can work wonders in boosting engagement and team spirit.

🆙 Continue Evolving as a Team through Execution

Every team’s growth journey is unique. There is no one-size-fits-all approach to team development. Just because a particular strategy worked for Team A doesn’t necessarily mean it will be effective for Team B, and even within the same team, what works at one point in time may not be as effective later on.

The structure and process are guided by the team’s growth and maturity, rather than being predetermined or imposed. It is the process that should work for us, not the other way around. Hence a team’s ways of working are never set in stone and we need to continually adapt the approach to fit the unique needs and circumstances of the time. High-performing team persists in coming up with ideas and seizing every opportunity to enhance things, always strives for improvement, and sets itself up for long-term success and growth.

Lead with Integrity

I firmly believe that “Leading by example, Leading by influence” is the most effective way to develop and coach teams. It starts with authenticity and requires attentiveness, commitment, and consistency. Listen to your team and learn from everyone.

Be the cheerleader, the coach, the enabler! And all that takes time, effort, and patience. Of course, it is immensely satisfying and fulfilling when you witness the team bonding together, caring for each other, growing wiser and stronger, and continuing to excel and achieve both team goals and individual goals ✌️

--

--

Abby Tan

Sharing my experiences and perspectives on effective team building and software product development. Let's learn together!