Why Version Control Exists: The Pendrive Problem
Learn how version control became a thing in software development

I am a problem solver and a full-stack developer. I love to write and share my knowledge. My wish is to learn and help others learn at the same time. Hoping to make a difference in the tech world.
The Original Problem
Tracking
To understand why version control is needed, let’s go back to a time before it existed. During that time working on a project would probably look like this:
project/
├── final_code.cpp
├── final_code_v2.cpp
├── final_code_v2_fixed.cpp
├── final_code_v2_fixed_final.cpp
└── final_code_v2_fixed_final_REAL.cpp
If it isn’t obvious already, then let me clarify:
One project containing multiple duplicates
Wastage of storage space
Hard to keep track of changes
Which version to share?
So, we needed something or a software which would keep track of all my changes without creating duplicates on every change, while allowing me to share and collaborate on it without any sync issues. So, we can just create let’s say a text file which keeps tracks of changes:
project/
├── final_code.cpp
├── tracker.txt -- keeps track of changes in final_code.cpp
But this solution has gaping flaws:
Manual tracking - becomes messy when changes become large
No viable way of collaboration, still need that pen drive.
Collaboration

After this it’s become clear that we need some sort of global repository which anyone can see and make changes while it keeps track of all changes. Easy enough - Just a deployed webpage which hosts a tracker will do.
We are now controlling version of our project efficiently. This whole story tells us why Version Control exists. Without it, we have no clean way of tracking changes while making sure anyone can collaborate in it.
Version Control

A global repo (remote) hosts the tracker
Anyone can collaborate
Has rollback enabled
Solves messy manual tracking issues
Enables teams to work on a product efficiently
This is why Version control is an indispensable tool in modern workspaces. Without it, production would be a total mess as it solves a bottleneck impossible to manage manually.




