Skip to main content

Command Palette

Search for a command to run...

Why Version Control Exists: The Pendrive Problem

Published
2 min read

Introduction

In this article, we will explore a simple pendrive analogy to understand the need for version control systems.

Why Version Control Exists?

Hey, you’ve probably learned what Git and GitHub are — but have you ever asked yourself a simple question: why version control?

What was the real need for a version control system in the first place?

Let’s go back to something we all remember from our school days.

Whenever we were assigned a group project, we usually shared our work using a single pendrive. One person would work on their part, copy it to the pendrive, and pass it to the next person. Everyone else had to wait until their turn came.

If someone made a mistake or forgot something, the pendrive had to go back to them again. Meanwhile, others had to pause their work. And sometimes, when one person changed their part, everyone else had to update their files again.

Now imagine what happened if a file got deleted, overwritten, or corrupted.

There was no way to track who changed what.

No way to recover an older version.

And often, no proper backup at all.

This simple pendrive-based workflow may look harmless for small school projects — but in real software development, it quickly turns into chaos.

The Pendrive Analogy in Software Development

Even before Git, code was being written, but now try to imagine how chaotic it would be for a team of developers working on the same code file. One developer would modify the file and share it with another developer. The second developer would then add changes and share it back. If something broke, file had to be fixed and shared once again.

This still sounds manageable if only two people are involved, but what if it's a team of five?

Real problems before version control existed:

  • Code was frequently overwritten

  • No proper way to track changes

  • No history of previous versions

  • Difficult collaboration among developers

  • No easy rollback when something broke

But what does a version control system offer?

So now you can ask what changed after version control system were introduced ?

  • Distributed version control approach

  • Easy collaboration with other developers

  • Easy to track changes and keep a full history

  • Gives you flexibility to rollback

  • One central place for code - a shared remote repository (usually on GitHub, GitLab, Bitbucket)

Conclusion

What started as a simple pendrive problem eventually led to the creation of version control systems — built to bring order to chaos.