Vectors Are Free 💸

Tags that this post has been filed under.

Overview: Version Control (VC) is central to good working practices within the design and technology industries. While VC is critical in software development, it also plays an important role in records management, change management, desktop support, and even working within a single file.

Records Management

When working for a large investment bank I was the Records Manager for our IT department. Records had to be maintained for up to 12 years. Basically my responsibility was making sure that the filing system, naming conventions, and permissions were set correctly. The types of records kept were for example, process, compliance, controls, change, and inventory documentation. This is one level of version control, being able to verify changes over time. It certainly fits the definition: "Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later." (‘Git - About Version Control’ 2022)

Change Management

Systems engineers often make changes to infrastructure. Generally there is a change management process that is followed, often involving testing in staging environments, risk assessments, checking and re-checking by numerous engineers and management levels. Occasionally a change would not go as expected or planned, this would necessitate a reversion to a previous stable state. This is another level of version control, you have to know which version to revert to!

This change management is even applicable to local machines. For example, my updated node version renders many of my older websites inaccessible. I have installed "Node Version Manager" which allows me to use different versions of node as required.

Desktop Support

Working as a desktop support engineer, daily there were calls from clients in a panic because they required access to an earlier version of a file, either they deleted the file or incorrectly wrote over required data. Fortunately the network system catered for server snapshots and it was easy to retrieve files from these snapshots, as long as the file was saved at some stage while working with it. If I remember correctly server snapshots were taken every 15 minutes. I can't remember for how long these snapshots were available for, certainly they were not indefinitely. Snapshots were a last ditch version control mechanism.

Version Control Within a File

Aaron Draplin (2016), a well-known logo designer, gives a very useful piece of advice: "Vectors are free!" He says this in relation to managing designs within a design file. When exploring different forms there are lots of chops and changes, masks, and merges. Many of these small changes quickly add up and if not managed correctly then it is very difficult to revert to an earlier stage to explore a different direction. And so Draplin advises at each stage to copy vectors and make progressive changes. This is version control within a file!

Design file which is organised and presentable to a client.
What clients think a design file looks like
Design file as it looks in practice while artefacts are being developed.
What an actual design file looks like

The Need for Version Control

Often we need to keep records over a long period of time. Sometimes there is legislation for certain records, e.g. banking, this provides points of verification. At other times there is the need to revert back to a previous versions of a file because an implemented change breaks something, of course you have to know what the previous version was! Even within a file, e.g. a design file, there is need to preserve previous iterations. After all is said and done, version control saves time, headaches, stress, and provides a level of verification and proof.

Software Code

Software cods mostly contains hundreds or even thousands of files and 3rd party dependencies, all holding together for something to function on the front-end. A change or update in one file could result in the entire edifice collapsing. Alongside this, there can be multiple engineers working on the same code base simultaneously. To manage and control this, distributed version control systems are used, e.g. Git. (‘Git - About Version Control’ 2022)

Solo Working Practices

I manage multiple websites as well as design files, although I do this solo I still maintain certain working version control practices. This is done as a point of recovery (I have learnt some difficult lessons!), and to prepare the files for clients so that they have the choice to take the code and design files elsewhere. In this case other engineers and designers would be able to make sense of the filing system. I use GitHub, and for design files I use cloud storage solutions.

For both the rapid ideation sessions I did not need to use Git, I was working with design files and pretty much stuck to the principle of Aaron Draplin that vectors are free!

In the future I look forward to working as part of a large team, I will definitely take time to study their version control practices!


References

DRAPLIN, Aaron James. 2016. Draplin Design Co: Pretty Much Everything. New York, New York: Abrams.

‘Git - About Version Control’. 2022. [online]. Available at: https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control [accessed 12 Jul 2022].