Over the weekend, my wife and I had a conversation in which we didn’t need to complete our sentences or thoughts as we moved the conversation forward. We have built such a strong relationship that we just know. Does this represent a perfect state of collaboration? (I need to stop and credit my friend Mike Cottmeyer in raising my awareness of activities unrelated to software development that may illustrate principles that are related… See his recent post called Peace, Love, and Agility? )
Recently, I’ve been learning about the challenges of using offshore resources to augment software development. How does one maintain collaboration in light of the many barriers that may exist in an offshore partnership? Does success in delivering customer value depend upon the ability to create a collaborative environment?
Collaboration creates trust, purpose, a sense of value, and a passion for the delivery of customer value. Successful collaboration spans all disciplines of the software development lifecycle. Collaboration exists between customers, systems analysts, designers, developers, testers, technical writers, and any other stakeholder that has a material interest in the project.
Successful iterative development requires a level of teamwork not seen in previous development approaches such as waterfall. A particular skill set cannot just focus on doing only the tasks required by that particular role. For example, the systems analyst works closely with the business representative as you would expect. But, they will also work with other development team members throughout the project. Handing off “requirements” to development doesn’t cut it. A systems analyst will be engaged throughout the project and will work with architects, developers, and testers. All skill sets can benefit from a better understanding of the needs of other skill sets involved in the development effort. Developers might learn better approaches for building test suites from the QA team. The systems analyst might be in a position to create richer and more complete requirements if they ask QA to help define exception conditions. This level of collaboration builds great systems that meet customer needs.
Have you experienced excitement that exists when working with a team that has gelled? See, Peopleware by DeMarco and Lister for information related to teams that gel. If you have experienced this, then you understand the power of collaboration. I’ve had the pleasure of working in teams that have gelled and it is an awesome sight to behold. The team acts as one with a singularity of purpose and drive. Team members understand how to bring value to the project, they understand how to help their teammates, and they are able to create a cadence of delivery that is exponentially greater than teams that have not gelled – those that do not collaborate.
Teams that collaborate, just know.