To understand the social dynamics of the complex processes for developing individual software, it is necessary to analyze in which structures the persons involved and how this involvement affected their work. Damian Tamburri has in recent years identified the relevant social structures in a number of publications, analyzed and graded on their effect. He first distinguishes four basic types: communities, networks, groups and teams. Communities and networks exist primarily outside of the concrete software projects, teams and groups can be found directly in the projects.
In communities something will be shared
Communities are formed to share something: an interest, knowledge, experience. Therefore, these communities are supportive for everyday life, without intervening directly in the daily work. However, developers just know the importance of the role they can play in quickly finding solutions today. For organizations, it may therefore be a productivity gain to give employees the opportunity to participate in Communities. On the other hand, some companies fear rightly, that expertise could drain away, which is a competitive advantage. (This topic I will take up shortly in the discussion of another paper).
An exception to this are communities of practice. Those structures are understood to be working together on open systems, such as in open source projects.
All communities have in common that members can become members quite easily and without access rules, and that they can just as easily leave the community. Decision-making processes are in a community, if at all, only possible by forming an implicit culture. Read the rest of this entry »