With traditional off-shore development, it’s hard not to end up with a code ownership problem. When the planned project ends, only the off-shore team is truly familiar with the code base; even with best intentions, in-house developers are rarely ready to provide production support. Your options? (1) Continue to retain the off-shore team. (2) Endure sub-optimal support while the in-house developers gain adequate expertise with the code base. (And, it is possible to get an unpleasant surprise regarding code quality.)
A far better outcome would be for in-house developers to be deeply familiar with the code base when the planned project is complete and fully capable of production support. A decision to continue the relationship with the remote team members would be based on a delightful experience rather than feeling trapped. Of course, you would have the option to scale back to just in-house developers, as originally planned, with negligible transition pain.
To accomplish this, we need to break down the barriers between the remote and in-house team members. In the next few posts, I will describe some models and techniques to promote deep familiarity with the complete code base for both local and remote developers.