Git Going with Configuration Management

15 Sep 2016

Thoughts on Configuration Management

I’ve had some prior experience with git, and I find that git and configuration management as a whole are great for large scale projects. As a student, I don’t really work on projects that contain more than 1000 lines of code. However, in the real world, programs consist of hundreds of thousands of lines of code. All of this code is hard to keep track of and the changes made could break the program. Configuration management alleviates this issue by saving changes and keeping track of where the changes are and who made them. This saves a surprising amount of headache when debugging and can solve many problems in just a few moments.

A World Without Configuration Management

I spent 10 weeks of my 2016 summer break interning at Space and Naval Warfare Systems Center Pacific (SPAWAR Systems Center Pacific). During this time, I was introduced to git and it was almost as if a whole new world of possiblities opened up to me. Never before had I felt so much control, so much power over development. In hindsight, even the small-scale projects I work on would be even easier if I knew about git. I can recall several times during my student life where the lack of effective configuration management made my life hard. Git would’ve been a lifesaver, preventing me from needing to revert all of my changes to get a working version of my code to improve. The biggest challenge was having to remember all the changes I made since my working version. However, thanks to my summer internship, I’ve learned that a world without configuration management is one that I never want to live in again.

In my opinion, git made GitHub popular because GitHub uses git as the basis for its web service. Git has made configuration management much easier for developers, and GitHub is the web companion to git that allows communities of developers to share and update their code. Though it would seem that GitHub is more popular than git itself now because GitHub provides users a way to avoid using the command line, a skill that requires practice and is harder to use if users haven’t worked with a command line before. Furthermore, GitHub acts as a GUI for users who want to get into effective configuration management, despite applications like GitHub Desktop that are on Windows and Mac OS. I personally have no issues with the command line since I developed on a Linux machine for my summer internship. I used git extensively for version control and got comfortable with the command line interface that git uses. I’m a big fan of GUIs, but at the end of the day, I also feel that being able to use the command line is an even more important skill than using a GUI effectively.