Several years ago, I worked for Cambridge Technology Partners (CTP), a consulting company that specialized in RAD (Rapid Application Development). CTP’s hallmark was Rapid Solutions Workshop (RSW), in which, we would build a prototype of a real application in three weeks. Key to the success of the workshop was rapid consensus building between client business & technical teams and extreme teamwork. CTP had mastered the art of teamwork so well that they were mentioned by Ed Yourdon in his book Death March on how a company can manage death-march projects (meaning impossible) through exceptional teamwork. Agile Sprints remind me of the RSWs. Exceptional teamwork is critical to any team that wants to get results with Agile.
How do people work together?
When people work together, they can be in one of the three modes; non-cooperation, cooperation or collaboration.
People can be in non-cooperation mode due to either differences in opinions or lack of communication. This will result in the teams working against each other or doing redundant work. In mathematical terms, this is similar to 1 – 1 = 0. I have heard about a senior manager who would cut staffing when the project falls short. His assertion is that the team is in non-cooperation mode because of its size and reducing its size would change the dynamics and improve teamwork.
People can be in cooperation mode, where they divide the responsibilities and identify touch points (contract). In mathematical terms this is similar to 1 + 1 = 2. This means they are doing what is expected of each of the roles but nothing beyond.
People can be in collaboration mode, where they build off of each other’s strengths and knowledge to create something that is exceptional and beyond their individual abilities. In mathematical terms this is similar to 1 + 1 > 2. In this mode, there are lot of negotiations, challenging assumptions and learning/building on each other’s perspectives. Several of our competitors suffer from the same collaboration challenges; hence by collaborating we can get a competitive advantage. At the basic level this could be as simple as dev and QA collaborating to determine what and how to test, resulting in reduced testing effort and earlier discovery of defects.
On the subject of leadership, thought leaders value collaboration so much that they do not want to call people working together without collaboration a team but just a group.
What makes collaboration so difficult?
We are a society that values freedom and democracy. This means I have the freedom to do things my way and you do it your way. This approach gets us into the “throw over the wall” mindset in which, we complete our part per the agreed upon contract (such as requirements document or design document) and let the person on the other end take it from there. This approach allows us to maintain our freedom and work in our own siloed environment without interacting with anyone, avoiding any conflicts and needing to learn anything beyond our own skill set. Toyota believes that this does not work even in an assembly line environment where there is a repeatable, well defined process. Collaboration can be hard because we will need to explain others patiently what we do and why we do it that way, be open to criticism or change the way we do things. Similarly, we will need to take a keen interest in others and how they do their work with an eye for improvement.
Other possible barriers to collaboration are the biases and hierarchies we have in our head based on our background and skillset. This can be an asset if we respect/value the diversity of opinions or it can be a liability if it prevents us from learning and respecting others that come from different backgrounds and skillsets. To collaborate, we will need to suspend some of the biases and not only understand the viewpoint of others, but build on it to create something exceptional.
How does Agile help with teamwork/collaboration?
Agile forces people from different backgrounds to work together on the Agile team. By creating a self-managed, empowered Agile team, all barriers or departmental silos naturally go away.
Agile practices such as release planning, sprint planning, standup meetings provide the time and space for teams to collaborate and build relationships with each other. Daily standup meetings help teams identify potential collaboration opportunities that they can then followup on. Sprint and release planning provide more structured and extended opportunities for collaboration.
Through retrospectives, a team periodically reflects on its collaboration experience and provides feedback to each other to improve it. Teams also evaluate results from the sprint to determine if collaboration could produce better results.
The end of the sprint review or the demo gives a sense of accomplishment and meaning to the team’s work, motivating the team and reinforcing the value of collaboration.
Teamwork is something that most people take it for granted. As a coach, when I observe Agile teams closely, it does not come easy at least initially. It is especially harder for people who have been working in silo-ed environment for a long time. There is a natural tendency to go back to the old way of doing things. It gets better with every sprint. It is a wonderful thing when developers, product managers, testers and writers build off of each other to create something unique and drastically simple. Any team can be collaborative but it takes lot of motivation and effort from everyone. Reason Agile promotes teamwork is not an accident. One of the Authors of the Agile manifesto, Alistair Cockburn specialized in teamwork.