We’re talking about Subversion, the powerful Version tracking system for programmers and how we can repurpose it for design workflow. This was covered by Chris Nagele a while back at ThinkVitamin but it’s a topic so new to the design community it deserves repeating.
Kathy runs a small design firm that is working with three clients. One client needs a website, print graphics and branding, another needs a WordPress theme designed and the last needs a web application for Facebook. Kathy’s staff includes one designer, one web developer, one backend programmer and herself who does a little bit of everything. Without Subversion, I assure you making this happen (while entirely possible) will be a huge mess. The designer will ordinarily turn in their work and let the web designer go at it. But wait that first client decides they don’t like the logo any more and they you to rebrand the entire site with a different idea. Oh and that Facebook App? It works but the developer uploads three different working versions of the file to your server before going off on a two week vacation with his girlfriend. He’s not answering the phone or email, but the client wants changes done immediately and Kathy can’t tell which of the three versions is the final! Plus, the whole office catches a virus that shuts down the server for a few hours and when it comes back up, you’ve lost some data. How much did you lose? Was everything backed up? Which versions of all your stuff was saved?
It happens more often than you think. Poor Kathy, she thought this would be the month she could take some much needed time off before that big conference in Miami.
Kathy shares her troubles with a friend, a software developer, who asks her if she’s ever heard of Subversion. He explains to her that with Subversion she can create a repository for her team and have her team start using it for version control. With the subversion server she’ll be able to give people different access levels, share files, leave notes, track versions, allow client access and see who’s working on what when. Kathy remembers the time her team tried this with first a shared intranet and then later their ftp server. It was still a mess because they would end up with so many different versions of a file no one knew what to use. Her friend reminds her that the missing element to all her previous attempts was ‘version control’. He tells her that the only versions of files that exist on the server are production and final versions. Divergent variations are treated as separate files entirely and the administrator can see how various projects are progressing.
Kathy now realizes the power of Subversion. It might just be the method for organizing the chaos of her studio that she’s been looking for.
Adopting the Subversion Workflow
This may not be the best example, but you get the point. Subversion makes it easy for many different people to track the development of projects by only serving you specific versions of files. It doesn’t matter if the file is a beta version of a web app or an early concept for a logo. The only version of a file that will ever be on the Subversion server is the latest one. If not, then someone’s not using it right and they need to be instructed.
The first thing Kathy learns from her programmer friend is to make Subversion the repository for ALL work coming in and out of her studio. You don’t want one person on your team going rogue and serving files to clients off his laptop because this will result in the same problem as before and that would be counter productive. Every new project her studio takes on now gets a folder with the names of everyone in the studio in it. People “checkout” the folders relevant to them and begin work. At the end of the workday (or week) they check the folders back in. Subversion tells her what’s changed, who changed it and when it was changed. She can also delegate specific projects to specific people who can easily deploy final projects since they can have access to the same data.
Kathy realizes this is also good a way to make sure clients only receive final versions of projects. She learns about Warehouse, a web client for accessing Subversion servers. She decides to purchase a plan that allows her to serve files to an unlimited amount of people. This allows her to track final project deployment and also see when (or if) clients are accessing files.
She also learns that she can either host her own Subversion server or she can can set it up with her web host. Alternatively applications like Beanstalk can be used to host Subversion. She now has a scalable management system that can be used for two people, five or five hundred whether they are in the office or anywhere in the world.
Great! It’s wonderful! Get to the point, how do I use it?