Why does it take programmers just as long to complete the last 20% of a task as it did to complete the first 80%?

by anonymous on 2013-11-16 14:19:44

Let me tell you why the last 20% of work takes as much time as the first 80%

You’ve probably heard the saying, "The last ten miles are half the journey." This principle applies equally to a programmer’s work. Why is that? Matija uses a clever analogy to explain this concept.

It's like driving from the suburbs back to the city center during peak hours. The first 80% of the trip goes smoothly—after all, highways make things fast, and you might cover that distance in two hours. But once you hit the city, everything slows down—traffic lights, crosswalks, complex loops, and inexperienced drivers can make the remaining part take even longer than the initial stretch.

Programming follows a similar pattern. At the beginning, you design the framework, lay the foundation for the entire project, then start development. After weeks or months, you've completed about 80% of the project, and key modules begin functioning.

But here comes the hard part: when you're ready to refine the product, strange bugs start popping up. For example, “Hey, did you know the program crashes if you unplug the USB while it's reading a file?” or “It seems the program refuses to download files with exclamation marks in their names...”

At this point, if management orders the team to quickly finish the remaining 20%, the development team has to abandon the car and walk the rest of the way, just trying to reach the destination on time, leaving the vehicle behind. Maybe they’ll meet the deadline, but this approach isn’t wise.

After this article was posted on HN, it sparked lively discussions among netizens, many of whom expressed strong agreement. One user shared an insightful Q&A from Quora: "Why does software development always take two to three times longer than expected?" The top-rated answer was both witty and humorous.

In short, software development is like a hiking trip; initially, you plan to cover 500 kilometers in 10 days, but in reality, various issues arise along the way. The daily mileage keeps decreasing, team morale fluctuates, and delays often become unavoidable.

In fact, it’s not just software development—creating any product usually follows this pattern. Hardware projects are also relatively easy at the prototype stage, but mass production brings a host of problems that require patience and problem-solving, sometimes even repeated rework. The devil is in the details; achieving perfection requires extra effort to perfect that final 10% of the work.