Wednesday, July 25, 2012

Team Collaboration: Free style or following a model?

Obviously, communication in a team is critical. We need to work like horses and drive towards the same direction. Only effective communication can help build this consistency. So, what are the patterns used predominately in the market currently? Or are there any? I haven’t done a research on it, but I would think of following cases - it could be linear, like that used by the "underground" organizations, where one can only contact the direct leader, but not peers. Security, in that case, is the major concern. In contrast, we are normally looking for effectiveness in our development team by assigning one or two coordination people, who serve as the communication point. If you have coordination people, the communication model becomes star or tree model. Yet, lately it seems that no coordination people required and a team goes free in communication. This free style communication is a "network" model in terms of mathematics.

I still think the tree structure is the most effective. Of course everybody can communicate with each other when necessary, no need of minding the structure, but it doesn’t disprove that defining a basic communication model for a team is necessary. Ideally, we can build several communications star structures, each has a certain topic area, for example, database design, service layer design, UI design, business process consolidation, etc. Even though people in database design communication group may not overlap with service layer design group, but the leaders of each group may need to be members of the business process consolidation group, and in such a way ideas from one group flow to other groups through the overlapping members. This actually is a tree structure.

The problem with the free style communication model is that it is hard to reach consistency for the development to achieve a common design goal. Neither could it be effective. As such, team leaders, or group leaders, are helpful; they can glue the team working towards an objective by prioritizing, assigning, and checking out tasks, that drive the development process forward to that objective.

No comments: