Skip to main content

Command Palette

Search for a command to run...

Why Version Control Exists: The Pendrive Problem

Updated
4 min read
Why Version Control Exists: The Pendrive Problem

Why Version Control Exists

Version control exists because software development stopped being a one person job a long time ago. As projects grew bigger more developers started working on the same codebase and that’s when problems began. Teams needed a way to track changes understand who did what and avoid breaking each other’s work. Without version control managing code quickly turned into confusion instead of collaboration.

At its core version control is about visibility and control. It keeps a record of every change allows multiple developers to work at the same time and helps teams understand the history of a project. Instead of guessing which version is correct or rewriting lost code developers can focus on building features and fixing real problems.


The Pendrive Analogy in Software Development

Imagine the Avengers building a massive tech project together.

There’s no proper system to share code yet, so Tony Stark comes up with an idea.

"Let’s just put the whole project on a pendrive"

Tony writes some code zips the project and hands the pendrive to Steve Rogers. Steve adds his changes and returns it simple.

Until it’s not.

A bug shows up while Steve has the pendrive. Tony can’t fix it. He has to wait.
Meanwhile Bruce Banner wants to start his part but the pendrive isn’t with him. He has to wait too.

When the pendrive finally comes back things start breaking. Files don’t match expectations. Logic has changed. Nobody knows who touched which file. Fixing one issue creates another.

Only one person can work at a time. Parallel work is impossible. Every fix means passing the pendrive again. Instead of building software the Avengers are stuck managing logistics.

At this point the problem isn’t coding skill.
It’s the process.


Problems Faced Before Version Control Systems

Before version control systems working on large software projects made collaboration difficult. When one developer needed to share the code with multiple developers there was no reliable way to manage the codebase. Changes were made without tracking no one knew who modified which part of the code and understanding what broke or why became almost impossible.

Developers relied on pendrives, emails, and ZIP files to share code. Folders were named final, final_v2, latest_final files were overwritten, bug fixes disappeared, and important work was lost without warning. There was no history, no accountability, and no safe way to undo mistakes.


Common Workflow Before Version Control

Pendrive Based Workflow

Problems:

  • Only one person can work at a time

  • Everyone else waits

  • High risk of overwriting changes

  • No history of changes


Multiple Developers Without Version Control

Developer A edits auth.service.ts

Developer B edits auth.service.ts

Developer C edits auth.service.ts

Result: Last saved file wins Other changes are lost


The Famous Folder Problem

No one knows:

  • Which version is correct

  • Which version is deployed

  • Which version broke the app


VCS (Version Control System) and Git

A Version Control System (VCS) is a system that tracks changes in code over time. It records what changed who changed it and when it happened. This makes collaboration possible without overwriting work or losing history.

Git is the most widely used version control system today. It works locally on a developer’s machine and keeps a complete history of the project.


Git Remotes (Where Code Is Shared)

While Git works locally teams usually connect it to a remote repository so everyone can collaborate.

Common Git remote platforms include:


How Git Solved This

This growing chaos needed a real solution.

That’s when Linus Torvalds built Git.

Git introduced a system where every change is tracked and stored as history. Multiple developers can work on the same codebase at the same time without overwriting each other’s work. Mistakes can be reversed and collaboration no longer depends on who has the latest file.

Git didn’t just make collaboration easier.
It made modern software development possible.

Today version control is not optional. It exists because the old ways failed and Git is the reason teams can build complex software together without losing control of their code.

Version Control Systems

Part 3 of 3

This series explains Version Control Systems and Git from first principles. It covers why version control is necessary, how to use Git effectively as a beginner, and how Git works internally through the .git folder and object model

Start from the beginning

Inside Git: How It Works and the Role of the .git Folder

While learning Git I spent a lot of time using it without really knowing what was happening in the background. Commands worked projects moved forward and that felt enough most of the time. But whenever something went wrong Git suddenly felt unpredict...