Currently I am handing over my ongoing iOS project to my replacement guy. This is the first time I am handing over my work to any buddy. So I was under little pressure of how can I make sure that he will understand almost every thing I built in this project. I was planning my handover module wise, feature wise, classes wise, etc but I ended up handing over project by pair programming!
This was not at all planned but it happened to be in this way. Two three weeks before arriving replacement guy I stopped implementing new features and started refactoring my code. While refactoring I found that my application code and back end services code was very tightly coupled and that should anyhow be get decoupled. So I started putting interfaces between services and application, using protocols. By the time this guy arrived and I was in the middle of refactoring. Instead of explaining him existing working, coupled code, I continued refactoring the code while this guy was sitting next to me and carefully watching what I was doing.
Then after spending around one week like this he started getting good idea of existing code and new proposed refactoring. Then he started telling me ways to decouple code, and then he started actually refactoring slowly. Then we both started planning refactoring and cleaning code. Now I am sitting next to him and watching him refactoring the existing code; ðŸ˜Š
I think now that he is getting better idea of existing code also and newly re-factored code also. What do you guys think of this approach of handing over projects by pair programming? Please feel free to criticize my approach and leave your opinions and suggestions below; thanks!