Developers are moved around to different areas of the system. Thus they become something akin to jack-of-all-trades .vs. master of a few. In some projects, tasks are assigned randomly. The idea behind this practice is that it helps developers gain knowledge of all areas of the system and thus be capable of making changes to that area more easily in the future.
However, the downside to this practice is that it takes longer to make changes since other developers have made changes to that component which must be investigated and analyzed. If a component were owned by just one developer, then he would be able to make changes to that component much faster since he is the sole author and does not have to try to understand what others before him have done – which is what maintenance programmers do. Thus, this practice helps turn the project into a maintenance project.