Several years ago, I worked for Cambridge Technology Partners (CTP), a consulting company that specialized in Rapid Application Development (RAD). 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, and technical teams, and extreme teamwork.
CTP 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 -- or, impossible -- projects 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?
People work together in one of three modes; non-cooperation, cooperation or collaboration.
People sometimes find themselves in non-cooperation mode due to differences in opinions or a lack of communication. This results in teams working against each other or doing redundant work. I have heard of senior managers who cut staffing when the project falls short, claiming that the team’s large size is causing it to operate in non-cooperation mode and reducing the number of members will change the dynamic and improve teamwork.
People operate in cooperation mode when they divide the responsibilities and identify touch points (contract). In mathematical terms this is similar to 1 + 1 = 2. It means they are doing what is expected of each of the roles, but nothing beyond.
People work in collaboration mode when they build off 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. This mode involves a lot of negotiating, challenging assumptions, and learning/building on each other’s perspectives. Several of our competitors suffer from the same collaboration challenges, so by collaborating we may gain 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.
Thought leaders value collaboration so much that they often don’t want to call people working together without collaboration a team, and instead prefer to just call them a group.
What makes collaboration so difficult?
We are a society that values freedom and democracy, which means we all have the freedom to do things our own way. This approach gets us into the “throw things over the wall” mindset -- we complete our part (such as requirements document or design document) per the agreed upon contract and let the person on the other end proceed 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 the need 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 need to patiently explain to others what we do and why, while at the same time, remain open to criticism and be willing to change the way we do things. Similarly, we need to take a keen interest in others and how they do their work, while keeping an eye out 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, and 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 follow up on, while sprint and release planning provide more structured and extended opportunities for collaboration.
Through retrospectives, teams periodically reflects on the collaboration experience and provide 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 for granted. When I observe Agile teams closely as a coach, teamwork does not come easy at first. It’s especially difficult for people who have been working in siloed environment for a long time, because there is a natural tendency to go back to the old way of doing things. It gets better with every sprint, however.
It is a wonderful thing when developers, product managers, testers and writers build off each other to create something unique and drastically simple. Any team can be collaborative, but it takes lot of motivation and effort from everyone.