Where I work, we currently have three teams all working on one product. We've had some talks and agreed that there could be a lot of benefits to doing an 'exchange' program where a member of one team would work with the members of another team, for a period of time (min: 1 day, max: 1 week). Considering we already pair program (almost) 100% of the time, the 'exchanged' programmer won't be completely lost and there wouldn't be a large drop in productivity.
Goals of the program would be:
- Exposure to new tools/libraries
- Getting to know your coworkers
- Making all developers more versatile between teams
Everyone is pretty excited about the idea, but we're having trouble with how to organize the logistics of such a program.
Has anyone instituted something like this and if so what helped you organize it?
Specifically looking for examples of:
- How often do you exchange
- Tips on keeping track of exchanges/scheduling
- If you've done such a program, how has it worked out for you? Would you have liked more 'process' or keep it ad hoc?