This is how we work at Apache
I just had to (re-)explain how the Apache way of working makes a difference by enabling a continuous flow of information between developers.
No more begging for reports, no more boring meetings where you only exchange information: who could say no to that?
Here it is for your enjoyment. This is the same thing that I've been saying in my recent talks on this topic, reduced to the bare minimum.
- All technical discussions and decisions on public mailing lists.
- Speak in URLs: if you reference something (discussion, vote, code...anything) include its URL, which must be permanent.
- Shared code repository, commit early, commit often (as in: daily at least, from day one)
- Commit events sent to mailing lists and/or RSS feeds to which people can subscribe.
- Shared issue tracker and "if you're working on something it must be an issue in the tracker" so that progress reports are automatic. Also generates mail/RSS events.
- Commits are linked to tracker issue IDs - by speaking in URLs in your commit messages, mostly.
- Automatic archiving of all this information, for self-service access.
All this is public and centrally accessible of course, so everybody gets the same information.
The main reluctance that I see when trying to convince people to work in this way is the fear of exposing your mistakes and initial bad designs in public. My answer is to just get over it: you'd find tons of such blunders if you were to analyze my work at Apache in the last ten years, yet I'm reasonably alive and kicking.