Agent-based groupware: Challenges for cooperative transaction models*

Software development is a highly cooperative activity. The first systems developed to support software development have been, more or less explicitly, based on the assumption that software could be divided into independent components that could be developed separately and then merged together. This assumption is no longer acceptable (if it ever has been). Developers work in a highly cooperative fashion and the individual (sub-groups) activities are strictly related, often in unexpected and unplanned ways. This becomes particularly relevant when we think about development teams distributed over the network (Divitini & Farshchian, 1999), where people get together “to have the work done” without a strict organizational and power structure. Supporting cooperation is therefore a central and challenging issue in providing developers with a computer based tool facilitating their activities rather than hindering them.