Necessary Evils

15 Sep 2016

To be honest, I’m not very fond of configuration management. I did not decide to become a computer engineer because of my sheer love of Git and Github. It seems so unnecessary to record obvious changes to a build - and personally, I’ve rarely pulled a previous version from the master branch. To me, configuration management more of a necessary evil than a wonderful innovation. Still though, I understand the importance of Git and Github. It documents the previous builds. It tracks how the program has changed, and the reason. It allows for multiple people to work on the same document. Any person can look at the commits and history and they will know exactly what changed from build to build.

Despite my disdain for management systems, I do understand their importance. I have tried writing code on Google Docs. Even when it’s only one programmer, a single document for code is a terrible idea. When you realize a mistake has been made in the code, going back to change what you previously did is a giant pain. It’s impossible. Was it this line, or that line? Did I copy it correctly? Did I change all the variable names? Hours of troubleshooting saved simply by pushing updates.

While both Git and Github help with configuration management, I think Git is much more important. As I see it, Git is a configuration management system that has been developed for the past few decades, while Github is a nice new feature that allows developers to have a common source to pull from. Calling Github just a cloud may be oversimplistic, but very true. Although it would not be as effective, Git can run without Github - while Github without Git is just a cloud server.