It seems that practice of rotation of developer within the pair assumes that all developers are relatively equal and even if they are not very familiar with the area, they are able to ramp up quickly. This msy not be true, at least it does not seem to be correct when we look what has been happening in other areas of engineering and science. After all, scientists to not rotate in labs, they keep working in their relatively narrow fields, digging deeper and deeper. They do get peer reviews but those reviews come from peers working in the same area of knowledge. In physics all scientists are physicists, but I doubt that one working in quantum mechanics is readily interchangeable with one working in acoustics. He or she does can learn the new field, but it may take literally years.

There is a lot of areas in software engineering that require specific knowledge and expertise. Parsers, compilers, OS kernels, GPU programming, 3D rendering, game engines, image processing, OCR, encryption, data compression, parallel processing and so on. I guess inside the knowledge area you may still try to rotate people but the deeper the required knowledge or the narrowser the area of expertise, the more difficult it may become. Maybe inside certain areas you have to keep the pair stable?

Did anyone tried rotation of developers in abovementioned areas? How did it work for you?

Opinions and flames are welcome :-).