Part 2 of the What it takes for a software Development team to Succeed theme focusing on teamwork skills.
Teamwork skill is a concept used to indicate specific skills related to teamwork – excluding domain knowledge, software development skills, and experience – covered in the previous post. In this post I’m first using a six-dimensional Teamwork Quality framework introduced by Faraj and Sproull in 2000. This is not the only or the definitive framework but a very useful one. My findings about each aspect are grounded in experience – this is not a literature review. I’ll end the post with a more holistic take on the culture of a successful team.
Teamwork Quality – the Faraj and Sproull model adapted to agile software development – as outlined by Lindsjørn et al in 2016:
| DIMENSION | DESCRIPTION |
|---|---|
| Communication | Frequency and openness of the information exchange. |
| Coordination | Common understanding when working on parallel subtasks, and agreement on common break-down structures, schedules, budgets, and deliverables. |
| Balance of Member Contribution | The ability to employ the team members’ expertise to its full potential. Contributions should reflect the team member’s specific knowledge and experience. |
| Mutual Support | Team members’ ability and willingness to help and support each other in carrying out their tasks. |
| Effort | Team members’ ability and willingness to share workload and prioritize the team’s tasks over other obligations. |
| Cohesion | Team members’ motivation to maintain the team and accept that team goals are more important than individual goals. |
Communication
This is the crucial tool for successful teamwork. You need to talk with stakeholders and users to understand their needs and the constraints of your solution. You need to communicate to break down the bigger problem into doable and distributable tasks. You need to let others know what you’re working on and how far you are in your task. You need to use the collective wisdom of the team by asking for and giving help and feedback. You need to discuss with teammates when creating a solution with dependencies and to harmonize the solution. And more.
Putting group dynamics and psychology aside, you might be tempted to encourage explicit, specific and well formulated questions and answers, but that’s not how we humans work. On the contrary…
A good measurement for a healthy communication culture is the amount of informal communication going on.
Miss a simple ‘good morning’ to acknowledge that you have seen your teammate and that you come with an open and positive attitude and suddenly there’s a psychological threshold for your teammate to approach you with an important question blocking their work. And on the other hand, coming up with a completely novel solution to a nasty work-related problem while having a conversation over lunch with your teammate about something completely unrelated to work.
Rants, outbursts, and offensive language can ‘kill’ the efficiency of a team.
Often the only way to resolve the issue and restore the efficiency is removing the person from the team – which is not a silver bullet. A truly resilient team will learn how to negotiate interpersonal conflicts.
I’m not advocating (only) for good manners but describing the ‘secret sauce’ of a successful team – psychological safety. Without it there cannot be a culture of open communication where everyone is heard = meaning that everyone’s skills and expertise can be utilized for the good of the team. The impact of psychological safety to the success of the team is so immense that Google identified it as the most important common contributor in their best performing teams in their famous ‘Project Aristotle’ research. ‘Hard’ factors like: colocation, individual performance, seniority and length of tenure did not significantly impact team effectiveness measurements.
See also my post in which I dive deeper into the topic of communication.
Coordination
A group cannot work efficiently without coordination but there are many ways to organize it. Leaving it to a named Team Lead / Scrum Master / Project Manager / Whatever may not the best solution. A not so technically proficient Scrum Master may not have the understanding to efficiently coordinate the hunting of a nasty and ambiguous bug, but expertise is neither a guarantee of good coordination skills. Often teams of senior developers recede into a group of juniors waiting for tasks from a seasoned Tech Lead encouraged both by management and by their own narcissism.
We all have the basic skills to ‘take charge’ – its ‘hard-coded’ in us.
Group dynamics research has multiple examples of empirical tests where people unknown to each other have been able to perform tasks requiring coordination – led by a random teammate without prior expertise neither of the task or of leadership.
Some of us are naturally more prone by temperament to take the leading role, but we all possess the ability. Nurturing the leadership qualities within us is a crucial factor in increasing the team’s creative potential, resilience towards changes in team composition, and efficiency when allowing always the best fit to lead depending on the task.
Balance of member contribution
Many of us hated group work in school because of the uneven division of work. The key question in a team is:
Are you a free-rider or a contributor?
Our willingness to cover for other team-mates is limited. Especially if the free riding is done on purpose. In a healthy team, giving slack to team-mates facing stress at home or from caring for sick and/or elderly relatives is natural and does not backfire with a feeling of being used. It fuels us with the joy of caring for a friend. Also, a teammate asking for your help makes it easier to carry the extra load.
The difficult question is what to do when you are chronically understaffed in your team and escalations do not result in the extension of your team.
I know the wrong answer – it led me to burn-out. I tried to take the heat for the team – worked extra, took extra responsibilities and shielded the team from external pressure. All the above would be OK if for a short while, but not indefinitely.
So, what should you do? In hindsight, the only sustainable way is to quit.
No-one should sacrifice themselves for the sake of a team in normal work-life and no one should feel obliged to hang in there in an unsustainable situation for the benefit of their teammates.
Balance of member contribution is also about optimizing the diverse skills of team members. Having work divided in a way, that the person best capable of performing a task takes it and that the skills and expertise of every member get used for the common goal. This requires that team members recognize their own strengths and weaknesses while also being aware of the specific skills of their teammates.
Mutual support
A culture of asking for and offering help is the primary indicator of an efficient team. In a great team help is asked with a low threshold and provided urgently with empathy.
Some signs and ways to do this in practice:
Normalizing asking for and giving help in day-to-day Slack discussions. Seniors and leads can show example, sarcasm and belittling need to be immediately addressed and thoroughly rooted out.
Making yourself available to new team members one on one informally with empathy to lower the threshold of asking for help.
Always thank for help received, even when it did not resolve the problem.
When you ask for help even the task of formulating the question may already give you the answer or clarify the problem allowing for its resolving – regardless of the help received.
Effort
In the old Keynesian world, management assumed that their employees would not give their best effort without constant pressure and monitoring. We still reap the negative consequences of this toxic mindset.
In real life there is ample support for people naturally giving their best for the team if they feel they have autonomy and support.
Here we again return also to the balancing of the effort of individuals. Free riding must not be tolerated, and Team Leads need to keep a vigilant eye against both burn-out and bore-out.
Cohesion
The easy way to build cohesion in a team is via a common enemy. This is an effective but poisonous way to achieve cohesion. It’s not right and secondly, it can’t be sustained indefinitely.
Real and sustainable cohesion draws on camaraderie and shared experiences. One of the many benefits of teammates getting to know each other outside of the work context is that it builds bonds and nurtures understanding towards their varying life situations. Out of the office events and informal discussions build bonds between teammates and increase the sense of belonging to the group.
Team Leads can boost the unity and morale of the team by publicly celebrating team’s successes and learnings. They should also raise awareness in the outlying organization about the team’s achievements.
Also…
We need more talk about the excellence of the team than the excellence of individuals.
The Culture of a Successful Team
To draw a conclusion there are solid building blocks to build an effective, resilient, and sustainable team. Effective, because of business needs and for the satisfaction of ‘getting things done’. Resilient, to be able to cope with the ever-changing environment and customer needs. Sustainable, because we want to continue succeeding without burning out.
The culture allowing effective, resilient, and sustainable success needs to have a strong foundation. I’ve used my ‘Vitruvian Teammate’ to summarize the culture.

Values = Foundation
The foundation needs to be grounded in solid values of Equality, Compassion, and Justice to foster powerful Intrinsic Motivation for the team to build on. These values need to be enforced, your team relies on this foundation, you cannot slip or give excuses. No external motivators – such as salaries or perks can ever match the power of intrinsic motivation. Basing your teamwork – especially, its leadership – on a few core values helps you in the multitude of decision-making. Instead of thousands of details to remember (which you will never remember correctly), you should rely on deriving your approach from the core values.
Support = Outlying Organization
Surrounding the team is the organizational layer that brings its support to the team. Most teams will not need much support especially if this ‘support’ comes in the form well-meaning company-wide rules and regulations. Often this feels like diminishing of the autonomy of the team. The best the organization can do is giving Structure and Clarity – clarity to foster meaning and purpose as well as paying the bills and salaries of the team-mates. It’s crucial for team members to feel that the organization gives them more than just their ‘daily bread’.
Autonomy is a key in maintaining the intrinsic motivation and allowing for flexible and resilient task management – self-governance. As a dedicated team lead you need to understand the boundaries of your role. You should never hinder working self-governance – don’t fix it if it’s not broken. Your role is to coach and help your team mates to improve their own self-management skills as well as their coordination skills.
No team should invent their way of working from scratch – that’s wasteful. Instead, they should choose a Framework to base their way of working and ultimately tweak the framework to their particular needs. In the beginning, it’s better to go by the book before making radical changes to the framework. I’ve typically used the label Agile here and for 90% of software teams (according to the Agile Alliance) this may be true, but then again, some teams might feel more comfortable working under a title more related to their skill such as DevOps. Whatever the label, it needs to stem from the nature of the work and from the needs of the team. In some cases, where teams collaborate extensively it makes sense for teams working in collaboration with dependencies to agree on a common framework which includes cross-team collaboration, such as LeSS or SAFe.
The outlying organization can help in providing new teammates when needed and helping the team in finding talent that increases the team’s existing skill and experience portfolio. This means increasing the team’s Diversity – in every possible dimension: skillset, seniority, gender, nationality etc. But no amount of diversity can help without Inclusion. Without inclusion the benefits of diversity are lost. The end goal should be a sense of Belonging – but this is for the team to work on.
A team is not alone so the whole organization needs to work with an ethos of Optimizing the Whole stemming from Lean thinking. This helps the team understand and come to terms with the difficult situations where the work of the organization needs to be re-organized or a change in focus makes a team’s purpose for the organization obsolete or significantly less important. The resulting expansions, cuts, or even endings of teams need to be justified based on values and by the principle of optimizing the whole. Every team should feel a belonging to the outlying organization not fearing having to work in another team in the organization.
The Secret Sauce = Psychological Safety
Finally, we come to the team level. The single most important ingredient is Psychological Safety. Extensive studies show how it explains best the difference between good and great teams – see for example Google’s Project Aristotle. Psychological safety is the groundwork for open communication, mutual trust, a culture of helping each other, resilience to threats and change, and to sustained excellence. Contrary to a common misconception – in the words of Amy Edmondson:
Psychological safety is not about being ‘nice’, lowering performance standards, or ensuring constant comfort and positivity. … Instead, it enables candor and healthy friction.
Psychological safety is the ‘secret sauce’ behind all teamwork skills.
Learning and Constant Improvement = The Drivers
The drivers of a sustainably successful team need to base themselves on Learning and Constant Improvement = Kaizen, as coined in Lean Thinking. The very reason comes from the environment in which we work in software development – we work in a field which is constantly evolving and in an environment that is constantly changing. Thriving in this evolution and change can only happen via learning and constant improvement. This is the logic behind having retrospectives or finding and following code quality metrics.
A good team consists of individuals with a strong drive for self-improvement and learning as a way of increasing intrinsic motivation and meaning in their work. A good team also shares learnings and thinks about common learning goals – discussing them and committing to them. Good teams set targets for their constant evolution – better code quality, better performance, less bugs, lowered running costs, better work satisfaction, less work related stress and exhaustion, even happiness of working in the team. A good team recognizes the need for ‘soft’ goals to keep up the intrinsic motivation and to be able to sustain the targeted high quality and efficiency.
Trust, Cohesion and Balance = In the Heart of Each Teammate
In the heart of every teammate of a great team is a sense of trust towards their colleagues – trust in the abundance of understanding, help, and support when needed. In the same heart the team has a place of its own – Our Team. A collection of colleagues that are more than just colleagues a group of people I feel a kinship with – cohesion.
Finally, in the heart there is the balance between life and work. You work to support your life, your loved ones are the special team (well, sometimes your loved one can be in your work team as well – and that’s a great thing) and your judgement is never compromised by work-related demands. Your life comes first. Otherwise, you cannot be sustainably efficient. Sometimes you need to step back and work the extra mile at work, but then you also need to recover. This is an extremely difficult balance to maintain and should be supported by everyone in the team.
Skills, Expertise, Communication, and Coordination = The Bread and Butter of Your Daily Work
Communication and Communication I’ve covered already above and Skills and Experience in the previous post. These are the core skills you used to ‘get things done’.
Impact and meaning = Fuel for your Intrinsic Motivation
Intrinsic motivation needs to be fueled. You need positive feedback, but you also need to feel that what you do at work is something that has Impact and Meaning to the world around you. Something that Rutger Bregman has coined as Moral Ambition. Impact and meaning also surface in Google’s landmark ‘Project Aristotle’ study in the top 5 drivers for team excellence.
Sometimes its just enough to just sit down as a team and discuss about the impact and meaning of the software you create – even better if you can discuss with your users. These discussions clarify your thinking and raise points of view you might have missed yourself.
Ethics = Your Values
I started the foundation with values, and I will end it with another set of values – your own. Your Ethics drives every aspect of your work; every decision is guided by your ethics. Ethics too is something to improve and cultivate. Read, discuss, and reflect – are these really my values and ethics, what choice should I make, which is more important?
A solid ethical base helps you as a teammate to cope against ethical stress – ethical stress should be a red light demanding immediate attention. Sometimes you can resolve your ethical conflicts with e.g. a customer request, by thinking about the problem from their point of view, but typically your conscience is correct, and you need to raise and address the ethical conflict. Psychological safety and a vivid open communication culture are the key helpers, because they allow you to take up your ethical concerns with others to get support and the ‘right’ viewpoints to communicate the ethical conflict to the customer or the outlying organization.
Going against your ethics is not sustainable, it’s not right, but it’s always bad business. Ethical faults will ALWAYS surface and ruin your customer relationships or in case of internal conflicts ruin internal communications and efficiency.
References and further reading
Forsyth, D. (2018). Group Dynamics, 7th Edition.
Edmondson, A. (2018). The Fearless Organization.
Edmondson, A. (2023). Right Kind of Wrong: The Science of Failing Well.
Google re:Work. Understand team effectiveness.
Bregman, R. (2025). Moral Ambition. Stop Wasting Your Talent and Start Making a Difference.
Skelton, M. & Pais, M. (2019). Team Topologies: Organizing Business and Technology Teams for Fast Flow.
Lindsjørn, S. D. et al (2016). Teamwork quality and project success in software development: A survey of agile development teams. The Journal of Systems and Software 122 (2016), 274–286.
Faraj, S. & Sproull, L. , (2000). Coordinating expertise in software development teams. Manage. Sci. 46 (12), 1554–1568 .