Here’s how collaborative web development used to work: A bunch of developers download code from a website onto their personal computers. As they finish working, they upload it back to the site. Whoever finishes last ‘wins,’ in the sense that any changes he makes overwrite whatever’s there already—whether or not the changes are correct.
Like many developers, I know the obvious shortcomings of this system all too well. As soon as a developer uploads his or her code, the previous poster’s work essentially gets undone. (I once lost about 8 hours of work this way—don’t get me started.)
Fortunately, we’ve wised up, and have figured out how to spare ourselves that headache. I’m now a firm believer in Version Control.
Working out the kinks, one command at a time
With version control, all previous iterations of a string of code are stored in a single repository, accessible from a development server. When users add or change code, they have to commit changes to the code’s main branch. That way, if there are deviations from what another developer has posted, they aren’t automatically overwritten. All developers on a project can see what everyone else has done, and can verify changes are correct and in line with job specifications.
We use versioning systems Apache Subversion (SVN) and GitHub. SVN is an older system, but it’s simple and powerful, and it gets the job done. GitHub is great for larger client projects. It has a nice user interface, and cool collaboration tools like a bug tracker, an editable style page, and time and date tracking, which we can use to make sure everyone’s pulling their weight.
Turning developers into time travelers
To a developer, version control is a lifesaver. It eases communication tremendously within development teams. It also helps us keep our clients happy. Let’s say we revamped a client’s site menu, and a month later, the client wanted it switched back to the way it was before. Before version control, we would have had to write the old code all over again. Now, all we have to do is go back to the version from the date needed (assuming it had been committed) and snatch up the relevant code.
Version control means security for our code (since it’s stored on a server, it’s safe from crashes). It also means we can keep projects moving forward, because developers can jump in without fear of undoing each other’s work. These days, we can do in 30 minutes what used to take five hours.
I can’t say enough about how much version control can streamline your web development process. Of course, it’s only as good as your developers themselves—if you do a sloppy job to begin with, version control may not do you much good. But if used well, you and your team can make coding magic.
Want to make sure no detail of your site design falls through the cracks? Contact Atomic’s development team for help crafting a showstopping website.