Configuration Management

02 Feb 2017

Simply Put

Configuration management, in a programming context, is simply inevitable, isn’t it? For thousands of years, humans have worked together to erect great structures and solve impossible realities. Providing a method for collaborative work on electronic files between many people follows this instinctive need for collaboration and is the goal behind configuration management tools. In nearly all cases, the quality of the product produced by collaborative efforts far exceeds the work of individuals.

Using Configuration Management Tools

Throughout high school and college, I tended to use Google Drive services for team-based writing assignments and Git/GitHub for team-based programming assignments. The ability to contribute changes whenever I wanted and not step on another’s toes was something I took for granted. It seems so intuitive to me, being a newcomer to SCM (source control management). Why would anyone work without such tools. Using Git/GitHub enabled me to save my projects online and share my individual work with my classmates (in a collaborative context). This helped us communicate ideas through sharing and comparing our different implementations.

Git and GitHub: Popularity

Git and Github are both wonderful tools that work toward making configuration management something in everyone’s programming toolbox. That being said, which tool’s introduction was more important in amassing popularity towards using both? I believe the answer to this question is analogous to the two sides of a coin.

On one side, Git was a revolutionary VCS when it was released back in 2005. Built and concocted by Linus Torvalds, the primary goal of Git was to make a truely distributed VCS that was faster and more intuitive than traditional centralized VCS . The result was a VCS that had significant advantages compared to other methods of version control. Had GitHub not come into the picture, I think that professional programmers, who have the expertise to use Git through a CLI, would have widely adopted Git as their primary source control system.

On the other side, GitHub provides an internet hosting service for projects that use Git for SCM. GitHub along with its desktop application for personal computers is the primary way that most Git users interact and use its SCM services. Having used Git through both a bash terminal and the desktop app, I must admit that using Git via a GUI is less intimidating and the learning curve is not as steep (I think it’s more fun to use Git via CLI). With its GUI and ease of use, GitHub was able to bring Git to amateur and professional programmers alike who want to get started using SCM for their group projects.