From ancient Greek, synergy literally means “working together.” More practically, Aristotle first defined synergy as when “The whole is greater than the sum of the parts.” A development team that collaborates is a synergized team. Literally, working together, they will produce better software than when the team members work independently of each other.
But merely saying the team needs to collaborate is not enough. If it were that simple, every company, every dev team, would be fully synergized from the get-go. Yet, some companies are the Apples and Googles of the world and some are the bankrupt Borders and Hollywood Videos of the world.
It takes two things primarily to engender and sustain collaboration in a software development team: Culture and technology.
A culture of collaboration requires nurturing, nurturing which begins with the fundamental element of trust. Without trust, collaboration cannot take root – so lead by example and take steps that support trustworthiness. Promote people who are trustworthy. Reduce inequalities in pay or other measures to make people on the team feel like they are as valued as their peers. Explain why being untrustworthy is counterproductive. Give team members the incentives they need to come to work beyond just a paycheck. Establish common goals everyone can buy into and support.
Collaboration isn’t something that can be measured directly, but using the right tools, social networking analytics and team surveys, you can gauge how well the team is collaborating overall and how well individual team members are collaborating with their peers.
Build a shared mental model of your strategies and goals to give people something concrete around which they gravitate when it comes to working together. Bring the team together to establish goals, strategize ways to reach them, and put a mechanism in place to ensure the team stays on track.
Use tools and technologies that facilitate collaboration. If you implement code review applications designed to ease collaboration, the result is naturally more collaboration. Give coders the ability to connect around the project where they quickly and easily see who said what and how things are going.
If you automate workflows, you build collaboration into them. The dots are already connected. The system guides the project along via the collaborators in the order you establish. If you implement audit trails with reporting and metrics, you provide accountability not just to the team members individually, but to everyone collectively.
Put project management tools in place that enable everyone on the team to determine how the project is progressing. These tools help guide and improve traceability, accountability, integration, defect tracking, compliance requirements, and more. Everyone has access to the information they need to succeed as well as the ability to share improvements in the project as a whole.
Synergy is the glue that turns individual team members into a cohesive force that collectively and collaboratively drives success in any organization. The more complex the project you’re working on the more important collaboration becomes; no one scientist built a viable spacecraft. Even Wilbur Wright had Orville to collaborate on the simplest of aircraft.
You can’t just turn collaboration and the synergy it brings on with a switch. Put the pieces of the puzzle in place first. Introduce collaborators before the project begins, make them familiar with each other and their working environment, help them develop at least an initial level of trust.
Good collaboration spurs innovation because everyone is working together in ways beyond how they would if they were individuals connected to each extraneously versus part of a synergistic whole. That’s should be goal No. 1.
Next up in our series: Habit #7: Sharpen the Saw