Many software projects today are executed geographically distributed with teams of developers, designers, testers, etc. in different countries all over the globe. This requires a development environment that allows easy and flexible adaptation to different kinds of teams and their processes. This paper presents an architecture for a distributed software development environment, that allows users to collaborate on flexible processes. The focus is put on providing distributed tools and organising the processes needed to successfully produce software with these tools.