Skip to main content

Command Palette

Search for a command to run...

Why Version Control Exists: The Pendrive Problem?

Published
4 min readView as Markdown

Why Version Control Exists? (The Perdrive Story Every Developer Can Relate To)

Before Git, GitHub, and version control systems became standard, software development looked very different and, honestly, very painful.

To understand why version control exists, let’s go back to how developers used to work.

Life before Version Control :

There is:

  • No Git

  • No GitHub

  • No cloud repositories

  • No collaboration tools

So how did developers manage code?


The Pendrive Era of Software Development

The most common workflow looked like this:

One pendrive. One project. Multiple people

Typical Workflow :

  1. One developer writes code

  2. Copies the project to a pendrive

  3. Give it to another developer

  4. That developer edits the code

  5. Copies it back to their laptop

  6. Sends it via a pendrive or email

The “final_final_latest” Problem

To avoid losing work, developers created folders like :

project/
project_final/
project_final_v2/
project_final_latest/
project_final_latest_fixed/
project_final_latest_fixed_REAL/

Everyone has seen this. Everyone has suffered from this.

Why did this happen?

Because there was no reliable way to track versions.

Each copy was :

  • A full duplicate

  • Hard to compare

  • Easy to overwrite


Problems Faced Before Version Control

1️⃣ Overwriting Code

Two developers working on the same file :

  • Developer A modifies app.js

  • Developer B modifies app.js

  • Whoever copies last wins

  • Other changes were lost forever

There was no merge.
There was no warning.
There was no history.

2️⃣ No Collaboration History

Questions developers could not answer :

  • Who changed this file?

  • When did this change happen?

  • Why did this logic add?

  • Which version was stable?

Once the code was overwritten, history was gone.

3️⃣ Fear of Experimenting

Developers were afraid to :

  • Try new features

  • Refactor code

  • Clean old logic

Why?

Because :

“If something breaks I was not able to go back.”

So the codebase becomes :

  • Messy

  • Hard to maintain

  • Full of commented-out code

4️⃣ Manual Backup Hell

Backup looked like this:

backup_1.zip
backup_2.zip
backup_before_demo.zip
backup_after_demo.zip

Still :

  • No clarity

  • No difference

  • No guarantee


The Pendrive Analogy(Why it failed)

Think of a pendrive as:

A single shared notebook passed between people.

Problem :

  • Only one person can safely write at a time

  • No visibility into changes

  • Easy to lose pages

  • No undo button

This system does not scale beyond one person.


Diagram idea: Pendrive-Based Workflow

Dev A (writes) --> [PENDRIVE: project_final_v1]
                  |
                  v
Dev B (edits) --> [PENDRIVE: project_final_v2] ---> ❌ Dev A's changes are GONE

The Real-World Team Problem

Now imagine :

  • 5 developers

  • Working on the same project

  • Editing the same file

  • On different features

Without version control :

  • Chaos is guaranteed

  • Bugs increases

  • Productivity drops

  • Trust breaks

At this point, manual file sharing becomes impossible.


Why has Version Control System become mandatory?

This is where Version Control Systems (VCS) were born.

The goal was simple :

Solve problems that pendrives, emails, and folders could not.

Version control introduced:

  • Complete history of changes

  • Safe collaboration

  • Parallel development

  • Ability to undo mistakes

  • Confidence to experiment

From Pendrive to Version Control System

Version Control Workflow

Dev A -- commit --> [CENTRAL REPO: project]
     ^               |
     |               `-- pull -- Dev B
     `--- merge <--- commit ---'
(History is linear/branched, not overwritten)

Everyone:

  • Works independently

  • Shares changes safely

  • Never overwrites blindly

  • Always has history

Timeline Comparison Diagram Idea

Without Version Control :

v1 → v2 → ❌ overwritten → ❌ lost forever

With Version Control :

v1 → v2 → v3 → rollback → v2

Conclusion: Why Version Control Exists?

Version control exists because:

  • Humans make mistakes

  • Teams collaborate

  • Code evolves

  • History matters

Pendrives and folders were never designed for teamwork. Version control was.