In praise of Git for muggles

by | Apr 7, 2017

Over the last few weeks I’ve been refining the Git training course I developed with Tim by testing it on various OptimalBI employees. Git being a version control system intended for use by software developers, I selected my first rounds of guinea pigs from our resident pool of programmers. But this week, I had the pleasure of trialling the course with Bronnie and Geoff, both non-technical staff with zero programming experience. I was delighted to find that both Geoff and Bronnie picked up the handful of command-line prompts I taught them within moments, and had no problems using their terminal shells to navigate their file systems.

So far so good. But why even bother teaching Git to staff who work on the business end of the OptimalBI skill spectrum? Neither Geoff nor Bronnie writes any code, what possible use do people who aren’t developers have for a version control system like Git?

As it turns out, there are many reasons to learn Git even if you aren’t a programmer; you don’t need to be able to tell a class from a function to get a wealth of value out of just a basic grasp of Git fundamentals. Here are just three reasons why Git is great for muggles too:

Git isn’t just for code

You can use Git to manage all sorts of files in all sorts of projects. A quick flick through the fathomless depths of Github reveals the amazing variety of uses to which creative people worldwide are using Git to manage collaboration, invite contributions to their projects, and take advantage of Git’s amazing ability to facilitate time-travel through version control. My favourite examples are this repository of Gregorian Chants, a version-controlled series of e-books on JavaScript, and a complete repository of all German federal laws and regulations. This last is a particularly good example of Git being put to creative and innovative use; although German citizens can easily find the current version of their laws online, the Git repo allows for the historical changes that have been made to the laws to be easily trackable in machine-readable format. Anybody (including you!) can make a pull request suggesting a change to the law. But of course, it will need to be voted into the law by the Bundestag before Germany will merge it, so don’t get too excited. I think this project is exceptional, showcasing how Github can be used to make legislative change transparent and accessible to anyone with a basic understanding of how to use Github.

Git is a social infrastructure

Git isn’t about code or development: it’s about structuring teamwork effectively. At face value, Git looks like software, pure and simple. A system for tracking and recording changes to files, and enabling distributed workflow. And this is true! But there’s
more to it than that. Because Git is such a powerful and flexible system, its adoption comes bundled with a system of conventions and a culture of use that transcends the development process and enforces better collaboration and communication for the whole team. This includes team members who aren’t there to write code; managers, coordinators, analysts and all. You don’t need to be able to resolve a rebase conflict, but you’ll benefit enormously from understanding your dev team’s workflow, and the conventions they use to govern it. Good Gitflow needs to be managed and understood by everyone in the team, not just the developers if Git’s full value as a version control system is going to be realised.

Git makes you more Agile

Git supports and enhances Agile; it’s built to be integrated into an Agile workflow. Git is built for iteration, for breaking down large projects into small issues. Git’s branching model allows an Agile team to break each issue onto a separate branch, and the pull request convention creates documentation responsively, as needed. The convention of a ship-ready Master branch keeps release cycles short. Sprints are encapsulated in a branch structure. The language, conventions and mindset of Git support teams to work in an agile way. As I said before, you don’t have to be writing code to use Git to improve your workflow; if you’re an Agile team, Git is a great system for supporting the Agile mindset with defined conventions and practices as well as the software solution to enable and embed them.

Do it once, do it right. Or else, you’d better use Git – Sarah  
Sarah uses Git to manage her learning process as she develops fancy graphs.
Want to read more? Try … A Brief and Incomplete History of Data Visualisation – Part 1, or more from Sarah.
We run regular business intelligence courses in both Wellington and Auckland.

Submit a Comment

Your email address will not be published. Required fields are marked *