COLLECTIVE SOFTWARE DEVELOPMENT