The track and the highway
Roads form in the following way:
A track is formed by people walking that way. The track becomes a path. Houses are built along the path. The path is paved and becomes a road. Houses along the road are rezoned and replaced. The road is expanded and becomes a highway. Buildings are bulldozed and rebuilt new locations that suit the highway's layout.
Software is built in the following way:
A demo is written. The demo is adapted to handle more cases. Software is written to make use of the demo. The demo is tweaked for speed. More features are added. Software is written to adapt to the quirks of the demo, and the demo is written so that the older software will continue to work. Massive levels of inefficiency and waste are tolerated to allow this backwards-compatibility to continue.
If roads were built like software is built, then all roads would be exactly as wide the original dirt track, and follow exactly the same twisting path. To handle the volume of traffic, cars would travel enormously quickly, say mach 1. To handle the size of loads they would need to carry, they would also be three stories high, and loads would be cut into tall, thin packages to fit into them. To handle the enormous aerodynamic problems of three-storey-high boxes travelling at mach 1 and executing hairpin turns, they would be built of titanium and fitted with stabilising rockets on both sides and a booster rocket at the back, and of course a heat shield at the front to handle the heat of the booster rocket of the car in front.
And that's your computer at the moment: a patently ridiculous rectangular titanium rocket ship travelling along a dirt track at mach 1. Sure it's fast, but at what point are we going to decide that it's time to build a new road?