At my dayjob, all developers share coding responsibilities across the entire application. We all do SQL server developement, ASP.NET, webservices, etc.. Given this sharing of tasks across a large number of subsystems, knowledge sharing approaches have been relegated to campfire mode - we discuss them as necessary. We get together and share approaches and discuss things we've learned in the process of coding. We also share the products vision - where we see it going and discuss options of how to get there.
As the company grows, this informal knowledge sharing becomes detrimental. We will always have development campfires, but using them as the major source of knowledge dissemination on a project this large cannot be maintained.
- Many shared code pieces become 'assumed' knowledge and transferring that knowledge is difficult. The application is one of the larger projects I've worked on and the team size is very small (3 of us).
- Some rules are not immediately 'knowable' by virtue of the code. Take index strategies, each index itself does not bear the qualities of the larger strategy. The strategy is defined more by what's not there instead of what is there. Cases like this burn lots of wood at the campfire.
- Sharing the projects long term goal set is important to the health of the team. If everyone can see the product roadmap and wishlist, everyone can better understand the direction. Rather than just coding the next spec and moving on, they look to share components across the entire application. Identifying much of the sharing is the role of the scout(s), but every developer needs to be on the lookout for opportunies to reduce LOC through sharing.
To combat these problems, I've put together a development wiki to share some of the campfire bits. Now, when we get into any lengthy discussion, we log it on the wiki (I refuse to say 'wiki' it). It'll be interested to see how this strategy works - will we grab meaningful information and maintain it or will it degenerate into the equivilant of old code comments? This will be fun to watch.