Software developers use computers not only for writing programs — they also use them to communicate and collaborate with one another. Software development is very much a social activity: collaboration and communication activities can have a powerful impact on the success of software projects.
Computer-support for these activities is not restricted to remote companies or distributed projects — even co-located teams use software that supports group communication and collaboration in their daily work.