Distributed development efforts involves working cohesively with geographically distributed teams and working by minimizing the impact of introducing ‘bugs’ or worse breaking the existing code base when new pieces of functionality is checked in.
Now, you all know that with TFS you can
1] Shelve the pending changes
2] Have a code reviewer policy set up on your TFS to avoid the above situation etc.
3] Take out the existing ‘Greatest and Latest’ code to a separate ‘Branch’ and write your code inside this branch, satisfy the requirements with Unit Tests and merge your changes from the separate branch into your main branch (aka production code).
The Codeplex community has put together a branching guide to make this simple and straightforward. I recommend it as a must read for developers.