What is required for a successful developer community?

• Tight communications, via asynchronous formats like mailing lists, to make sure that everybody can be kept informed about everyone else’s progress, questions & concerns
• Full tracking of all collaboratively built artifacts, from specifications and designs to source code and QA test results, so all participants have rapid access to the precise deliverables that everyone is working on or are using as references
• Some form of workflow, whether via a proscribed process or implemented through tracking software, to make sure that everybody knows not only what they are responsible for, but what everybody else is working on as well
Security: You need to establish technical means of ensuring that not only the relevant development teams have the ability to view & modify the work in progress, other random individuals at either location, or internet crackers, cannot have any way to get at the project
Manageability: When setting up your collaborative environment, aim for a structure that will support more than just the one team you may be collaborating with today. For example, setup your mailing lists, issue tracking, etc., on a per-application or per-project basis, so that each distinct collaboration initiative has its own workspace. This ties back into security: you need to choose and configure tools that support multiple collaborative efforts, where distinct remote teams only have access to what they need
Internationalization and localization: With a developer community that includes offshore development teams internationalization and localization issues arise, both with the collaborative development tools and the work products the teams are creating. It will not help your cause to mandate the use of tools that many members of one team cannot understand because of language barriers. Putting multilingual people in key positions can help relay information to teammates who may only speak one language