This is the third installment of my four part series on how to communicate with your developer. Part 1 covered Interviewing Your Potential Developer. Part 2 covered Planning & Project Management. Part 4 will cover Bug Reporting.
Version Control Is Critical
Version control is critical! In case you missed it, I will say it again. VERSION CONTROL IS CRITICAL!!!
So what the heck is it? Simply put, version control is a system that saves each iteration of your code. The code is stored in a central repository and all code changes pass through that central repository. Multiple developers are able to simultaneously work on the code and the system aggregates the changes. Version control also gives your developer an easy way to quickly “roll back” code to previous versions if something goes wrong. For a more detailed explanation, go to http://en.wikipedia.org/wiki/Version_control.
Your developer needs to implement a workflow where the code has to pass through version control as a way to push changes live to your server. We typically work on all code locally and then push it through version control to a live server. On larger projects, this workflow may include pushing to a staging server first and then to a live server. Either way, the code always passes through version control.
So why is all of this important to you? I am glad you asked. Your version control system protects you if your developer drops the ball. You will always have access to the latest version of the code. If your developer bails, you don’t have to hunt down your code or worse, start over from scratch. You should be able to simply grant access to a new developer.
Three popular version control systems are svn, git and Mercurial. At Zeek, we use git.
It is important that you have access to the code repository for your project. Your developer needs to grant you access if they are hosting the repository. Better yet, host it yourself so that there is no confusion down the road.
There are services that offer inexpensive version control hosting.
- Beanstalk (http://beanstalkapp.com) offers hosting for SVN and git.
- Bit Bucket (http://bitbucket.org) offers hosting for Mercurial hosting.
- Some sites offer free repositories, but your code will typically be public if you use a free system.
Note. If your developer does not currently use a version control system, insist on it. If they refuse to use a version control system, find a new developer.
Up next: Part 4 – Bug Reporting.