Revision control is not just for coders, it never has been, but this is a misconception that a lot of
designers people have.
Revision Control is for EVERYONE!
Coders, designers, asset managers, copywriters, your boss and anyone else on your team who does anything related to FILES.
FILES, FILES, FILES
Really that's all Revision Control is about, files. What else do you use to create web-sites? A plank of wood? Unlikely.
You're already managing files with cloud storage, your local drive, network drive, remote drive, or some drive - somewhere - has your files on it.
With all those options where are the files?
O Files, files! wherefore art thou Files?
Without a central repository to manage all of your code, assets and design, where do you look for them? They could be anywhere, if your team is anything like mine you may have your files in some of these locations:
- The designers computer/my cloud/dropbox
- The designers assistant(s) computer/my cloud/dropbox
- The copywriter(s) computer/my cloud/dropbox
- The asset manager(s) computer/my cloud/dropbox
- SVN (yay!)
- Github (super yay!)
How do I find a file? I have to ask!
That's right, with 14 possible locations for the files to be located I must ask the last person I know who used them for the location.
If we had a better way there would be some structure and a central location where I could easily find these files, by searching or just simple browsing.
Wait, there is a better way!
Of course there is, there has been for a very long time. I first started my Revision Control path around 2005 with CVS. It was quite amazing but was quickly replaced when I found SVN. Hooks and tons of other features pushed SVN to the top of my list until.. Github!
I started using Github as an individual but after working on several projects that utilized it I began to enjoy its features and how it makes managing your projects that much easier. Now I make sure any project I am working on uses it and the teams adopt it, once they do people often see how important it is to have such an amazing tool.
It's much more then Revision Control
Sure maybe that's a key part of it - but there is plenty more it provides you.
- Central location for your projects files: since 14 locations is stupid
- Backups: good luck loosing your files
- Ability to share files with anyone: let your people access your stuff
- Access Restriction: control who does what
- Change logs: see wtf people are doing
- Commit time tracking: see if/when employees are working
- Bug Tracking/Wikis/Readmes: make it easy to document your work and track issues/todos
I could go on, there are dozens of new abilities you can implement with coding but we're here to talk about designers (and asset managers/copywriters), not coders.
Designers? Github? Git outa here
Those PSD files are huge! Githubs for code!
Github thought about that in 2015 and they released git-lfs enabling you to offload larger files, like PSD files, to a Large File Storage server.
Along with this feature they enabled PSD previews (for what seems to be an 80M limit), pretty awesome (if you're designer can get those sizes down). A simple jpg in the folder goes along way as well since even a 50M Photoshop file can take several seconds to load a preview.
That's cool and all...
But none of that matters - lfs just fancy talk and the preview of a psd (vs jpg) is just a modern luxury that still needs some work (they're better off pre-rendering jpgs..).
What matters is Revision Control! Central file location, access control, knowing where to go and what to look for - or being able to search one location to find out what you need. Pretty much what I've been saying but theres other things to consider like..
What if you die or quit?
Or hit the Powerball or what ever possibly could take you - and maybe your files - away from your job. Sure, when working for yourself this isn't a big deal but when your work belongs to the Company - it's a big deal to them.
Having a central repository ensures your work will be available to your Company and your team, allowing them to continue working during your vacation (since you're not likely dead yet). Since there is no confusion over the history of your files or where they are you wont be getting random e-mails or calls during your time off.
Your Boss will love it, but maybe you wont (if you're not productive)!
A big sell to the Boss, aside from backups and the ability to quickly revert changes, is the ability for them to review peoples work activity.
If your job is mostly related to managing files, design, asset management and coding, then you will likely commit changes very often (coders about every 20-30mins, designers 1-2 hours, asset managers on/off all day).
This lets the boss checkup on your activity, read your logs - see what's being done, track goals and basically get a feel for how productive the team is as a whole.
Committing work is proof that work is being completed.
It's hard to get called out for not getting work done when you can just look at the log and see how much you committed, me being a coder it's quite a bit - using SVN/Git to push to staging/production servers also forces my hand to commit changes more often (so I can see them).
As a designer or asset manager you can push commits after every major change, save, hour, automatically or manually so the process can be pretty painless.
It took me a while to get used to pushing all my changes but after a couple weeks it felt natural and made total sense - make a big change - save a copy incase I screw up or loose it.
Did I mention it's a backup?
I've gotten rid of all my backup drives. I used to offload my important assets to all types of drives and servers. Now I send it to Github or my SVN repository and keep it synced on my PC/Laptop.
This gives me at least 3 locations for my code to be - not to mention whatever type of redundancy Github is offering - I no longer waste time thinking about it or worrying about what drive had what.
Oh, and Cloud Storage?
You'll have access to all these amazing features ANYWHERE you are that's connected to the internet (and that's just about everywhere now). New computer? BAM get all your files back lickety split. Friends computer? New job? 100's of reasons Cloud Storage is good for the team.
It does suck when you're internet is slow - but optimize your techniques - get sizes down - and every ones life (including the accountants) will be better.
It's perfect for team work
Sure it's good if you're not on a team - but it's perfect if you are.
You push - they pull, modify, push - you pull.
We could complicate this a few steps more by adding branches and tags but let's keep it simple.
It's a few more steps then normal but now we know what was done and we have a history to go back incase we dislike the change. We can lock files to ensure others don't work on things when we are - and it controls the latest revisions to prevent you from ruining some ones hard work with your latest changes
It also helps reduce file clutter. It's not uncommon to see revisions stored in file names, File-a-rev1, File-a-rev2. This is not easily followed or managed by other members, so what goes great with Revision Control?
Did I say Structure earlier?
I'm pretty sure I did because it's a critical part to making this all work, lets take an example of "revision controlled" files when a human does it:
If you're a coder
Really it's like that.
We're human. We're lazier then computers and often make more mistakes when typing - so why do we even try to create our own human revision control system?
Leave it up to the computer
It's better at managing time and numbers. You come up with the name and folder structure and it'll do the rest.
File names and folders? They matter?
They most certainly do! If you're using random folders, on random drives - with very random names - what do you get? I dunno, but it's not pretty.
Following a simple folder and file naming convention can help everyone on your team locate what it is they need.
An example of a structured setup would be:
- /Website.tld/slug/assets/(resources from asset managers)
- /Website.tld/slug/copy/(resources from copywriters
Now we know where to find what page - there is no guessing, it's just like our website! Stick this in the repository along with your source code (that has routes and functions and the lot matching the exact same names) and you've just gained access to see everything related to a specific page with a simple search. That's awesome.
Revision control is wonderful. It's saved me in many different ways from quick reverts to total drive failures that would have lost everything I've worked on. If it wasn't for a revision control system I wouldn't be where I am today so I owe quite a bit to it.
It's a must have when working with a team
2 reasons for me: central file location & search. I can't search 14 drives for the file - that has some random name - but I can search 1 resource and file names based on known factors - something manageable - something everyone can do.
It's not just about me
It's about the next person. If you plan to stay at your job till you die, that's great. I don't. I want to be sipping cocktails on the beach long before I die - so I must leave something for the next person. Will I leave them a cluttered mess that's impossible to follow? I won't. I'll leave a well thought out, structured and documented method that anyone with internet skills could understand.