At my work we are growing to the point where we are becoming uncomfortable with "walking code". By that I mean code that goes home with developers such as myself on laptops. While I am a developer, meaning I certainly have a motivation to keep development as convenient as possible, I'm also a business person, which means I have a motivation to protect the business as a whole.
This code is the family jewels of the business so to speak. Having walking code is starting to feel analogous to walking around with a cashier's check for my life savings in my wallet. Neither I nor my employer is very comfortable with it.
The question is what can we do to protect ourselves without compromising our productivity? By protection, I mean both from malicious (theft) and not-so-malicious (loss of work) ends. Of the two, theft is the lesser concern, so I'm mostly interested in the debate between these two procedural options rather than a legal discussion:
The number one option on the table is to keep all code on-site and do development through remote access (RDC). This protects the code and makes sure that no work becomes unavailable should the developer or laptop become unavailable. As far as I can see, as long as performance is acceptable, the only loss in productivity is not being able to work without internet access. That seems negligible to me. Slow remote desktop performance may become an issue in some cases though. We're leaning toward this option.
The second option is secure remote repository access with frequent commits, as well as encryption on the developers drive. The biggest issue with this is that it depends on a process that intentionally avoids committing code until its ready to pass a test build. That means significant portions of work can be floating about without a commit or backup. We are not a continuous integration shop and frankly will not be any time soon. It seems both encryption to protect the code as well as automated backups to our site would be warranted, but we don't have such solutions at the moment.
If you share these concerns, I'd like to know what you do. If you don't share these concerns, please refrain from answering here. Thanks.
Ted