Recently I was driving to a demo at a client site when I remembered that one particular test of my app had not been run. This is a web app with a smart client providing a secondary interface for intense users, and is therefore designed for a connected situation. But I was about to demo on a standalone laptop -- web server, SQL server, browser client and smart client all happily together on a single box. What's more, the laptop doesn't quite have everything -- I don't run an SMTP server on there, and some parts of the app send email as workflow progresses. Sure enough, when I got to their parking lot I tested and the email-sending code throws an exception if it can't find the mail server. This calls for a quick edit - throw in a try-catch-swallow along with a TODO comment saying that we should be gracious if the mail server is unreachable.
OK, fine. I open the project and attempt to change the code. The checkout, of course, fails, because I'm offline. And I'm not able to edit the file. Throwing caution to the winds, I browse with Windows Explorer to the file, take away the read only attribute, and carry on. The demo works beautifully and life goes on.
If only I had already found the patterns and practices guidance for VSTS over on CodePlex! It includes answers to questions like "how do I work offline?" (answer: do what I did, and use the Power Tools to sync up when you get back to the office) and much much more. Worth some time reading and internalizing.