Explain the benefits of using a source control system

Completed

Version and source control systems have been around for a long time. They're common tools in nearly all software development roles and many other technical and non-technical roles.

Without a version control system, files may be stored on a local hard drive, a file server, or maybe even in the cloud. Those storage mechanisms work fine as long as there aren't any problems either with the files or with the actual storage medium. However, if anything happens to your local hard drive or the file server you may completely lose the file that you've been working on. If the file is stored in the cloud, you may still have access to that file.

How does a version and source control system help?

A team of people is often involved in the software development process. Everyone on the team contributes to the final product. When a team of people is working on the same application, you need a way to make sure that everyone is working from the correct version of the files, and everyone's work incorporates correctly. With a version and source control system, all of the developers on a team can work on the application. As developers finish work on their piece, they can “check in” their code and it will be available to everybody else. That's the source control side at work.

Illustration showing potential branches off the main branch.

The version control side gives you the opportunity to experiment and innovate with confidence. With version control you can make updates and modifications to the code, test out those impacts, and then decide what to do. If the updates or modifications you made ended up breaking something, you can rapidly and easily roll back to the previous version of the code. If they worked, you can incorporate that into the production version of the code. With a version control system, you can look back and see the different versions of the code as the application has grown and progressed overtime.

So by using a version and source control system, you're able to:

  • Make sure that everyone is working from the right version of the code.
  • Experiment and innovate safely.
  • Rapidly recover if any changes made to the code break the application.