Why Version Control Exists: The Pendrive Problem

Learning web development in public. Writing simple, real-world explanations about web development concepts. Helping beginners understand why things work, not just how.
Search for a command to run...

Learning web development in public. Writing simple, real-world explanations about web development concepts. Helping beginners understand why things work, not just how.
No comments yet. Be the first to comment.
Every day, millions of users upload photos, videos, stories, and reels to Instagram. From a user's perspective, the process appears simple: select media, apply filters, add a caption, and tap "Post."
Building Offline-First Messaging Apps: How Messages Work Without Internet Modern messaging applications have transformed the way people communicate. Whether it's chatting with friends, collaborating w
In this article we'll explore about the Expo Router and React Navigation and answer which one to use in 2026. If you build mobile apps using React Native, one thing becomes obvious very quickly: Navig

Modern mobile apps are no longer just a collection of screens connected together. Apps like Instagram, WhatsApp, Uber, and Netflix operate at massive scale with millions of users, real time systems, o
In this article we'll be exploring react.js and the things of react.js that makes it popular and stand out among other libraries ( no fight over library vs framework ). We'll go through: What problem

Shkaai
68 posts
In today’s world, it is almost impossible to imagine handling code without version control. But developers still wrote code when there was no such thing back in the day. After all, humans invented whatever they could to solve their problems, as anyone who writes code knows that managing code over a time is not a piece of cake. In this article, we will discuss what happened before version control existed, what problems developers faced, and how it led to version control becoming mandatory in modern development.
To understand why version control exists, let’s go back in time ⏪
Imagine this situation 👇
You and your teammates are working on the same project.
There is:
❌ No Git
❌ No GitHub
❌ No shared system
So how do you share code?
👉 Pendrives. Emails. WhatsApp. USB cables.
One person writes code
Copies the project to a pendrive
Gives it to another person
That person edits it
Copies it again
Sends it back
Sounds simple… but wait
Soon, folders started looking like this:
project_final
project_final_v2
project_final_latest
project_final_latest_updated
project_final_latest_updated_REAL
No one knew:
Which one was correct ❓
Which one had the latest changes ❓
Who changed what ❓
Two people worked on the same file.
Person A edits main.js
Person B edits main.js
Person B copies their version over A’s
Person A’s work is gone forever
Laptop crashed
Pendrive corrupted
Email attachment lost
🗑️ Weeks of work disappeared with no backup
There was:
No record
No timeline
No accountability
Only one person could work at a time.
Others had to:
wait
stop coding
avoid conflicts
Teamwork was slow and frustrating.
Imagine 5 developers working on the same file:

Everyone edits locally
Everyone copies files manually
Everyone is confused
This does not scale.
Timeline of Chaos (Before Version Control)
Version 1 → lost
Version 2 → overwritten
Version 3 → unknown
Bug appears → no way to go back
Developers needed a system that could:
✔ Save every version
✔ Never lose history
✔ Allow multiple people to work together
✔ Track who changed what
✔ Go back in time safely
Version control systems (like Git):
Replace pendrives ❌
Replace email attachments ❌
Replace final_final_v99 folders ❌
With:
✅ Automatic history
✅ Safe collaboration
✅ No lost work
✅ Clear ownership

| Pendrive Method | Version Control |
| Manual copying | Automatic tracking |
| Easy to lose data | Safe history |
| One person at a time | Everyone works together |
| No backup | Full backup |
Version control systems are lifesavers of developers. They made code and …life easy to manage. Many incidents have happened in the past, happen today, and will surely happen in the future where a codebase suddenly crashes, a website breaks, or new code disturbs the entire project, back in the day, it was a nightmare to even think about solving such problems, never mind actually handling them. But with help of version control systems, such problems can be handled with ease. This has made version control mandatory in modern development.