In my last post I shared some questions I received about collaboration from Chad, a graduate student studying collaboration for his thesis. I had fun answering these questions, as I was able to revisit and reinterpret my thoughts on this from when I wrote “Journey of the Software Professional”. Looking forward to your thoughts on this topic.
1. What does it mean to successfully collaborate? A group of people come together, create a sufficiently shared understanding of an equifinal meaning that enables coordinated behavior, and then the actual activities of task identification, decomposition, distribution, coordination, and integration of outcomes are accomplished in a manner that lasts long enough for the goals of the collaboration are realized.
2. What does it take to achieve successful collaboration? A sufficient foundation to enable the activities defined above to be engaged. For example, if you speak Swahili and I speak Italian, chances are good that we’ll find “successful” collaboration on any non-trivial ask impossible. This foundation is inclusive of all of the minimally necessary structures, processes, and outcomes needed for the task management activities defined above.
3. What are the necessary activities that need to take place to ensure successful collaboration? Tasks must be identified, decomposed, distributed, and their respective results integrated. Different methods, of course, advocate different approaches to the manner in which these necessary activities are accomplished. Agile methods, for example, promote that individual members of teams identify and generally self-select tasks (“I choose them from a task board during the daily stand-up meeting). Other methods, so-called “command-and-control” methods, advocate centralized planning and distribution. My own experience is that a mix of these approaches are appropriate, with architecture planning the centralized coordination, and that team members do best when the “give in” to the architecture (e.g., if your uber-architecture is J2EE, don’t bitch about the container control model—accept it).
4. What does mean to have an unsuccessful collaboration? Any failure in the identification, decomposition, distribution, coordination, and/or integration of outcomes necessary to realize a successful outcome. What’s the Tolstoy line? All “successful” collaborations succeed for the same reason—they accomplished these basic tasks to a degree of completeness that the entities judging the meaning of success deem it successful. All fail for their own unique reasons (e.g., insufficient coordination or outcomes that can’t be integrated). Note that the judgment of success may not be consensually held (e.g., I’ve managed death march projects where I produced the result I needed for the health of the company and fried people in the process. I’m not proud of this, but, if you want the title you need to accept the responsibility).
5. What actions, or inactions, lead to unsuccessful collaborations? Mismatch of the meta-approach to the primary activities of tasks as described above. For example, asking a team composed of 100% junior programmers with no significant architectural experience to use an Agile method to create a massively scalable web application. They’ll likely struggle or outright fail, as they simply do not have the experience to engage in appropriate task identification or creation of shared outcomes.
6. How does Agile shape successful collaboration? When appropriate for the larger context in which it is applied, Agile emphasizes an individual team members responsibility to actively participate in the core activities associated with tasks. Agile also emphasizes a complex set of cognitive psychology and organizational behavior processes/activities that are known to help teams create superior results. For example, the Agile practice of regularly reflecting on processes and performance through iteration and release retrospectives leverages individual cognitive psychology practices of reflection and organizational learning and culture (e.g., such things as contextual memory).
7. What, if removed from the Agile process, degrades collaboration? I think that depends on the version of an Agile process that you’re practicing. If you instead ask “What values and principles, if removed from the Agile Manifesto, degrades collaboration?”, I would say any of them, because the values and principles were designed to be reinforcing around some key themes, including collaboration.