Back to all articles

The Leaning Tower of Pisa is a perfect metaphor for software development

Artem Rudenko

Artem Rudenko

Software engineer, founder of

It started wrong

The construction of the Tower of Pisa started in August 1173. By 1178, the tower began to lean while workers were constructing the second floor. The obvious reason for the issue was poor and loose soil beneath the foundation, which the architects did not consider before they started construction.

But did the architects and engineers really have a choice of where to build the tower? Technically, the Tower of Pisa is a bell tower for the cathedral of Pisa, which is located in 50 meters away. It is fair to say that is it is a strict (but reasonable) requirement to build a cathedral's bell tower close to the cathedral itself. Keeping in mind how religious people were in the 12th century, there was no way authorities would let engineers build anything not in accordance with Christian rules.

Notice the angle of tilt!
Notice the angle of tilt!

The project was too valuable to be interrupted

Actually, the project was put on hold for about a century due to political and social reasons not directly related to the tower. As it turned out, the century-long pause was enough for the soil to settle down and become more stable.

When they started the construction again, they introduced a "quick fix": the walls on all the floors above the second floor have a variable height to compensate for the tilt of the tower. When viewed from certain angles, the tower seems to be a little curved. Incredible!

So why didn't they demolish the tower and start a new one from scratch on proper soil? The reason might be the amount of resources they had already spent on the project. Moreover, it was likely that there was no suitable soil within the vicinity, so wherever they start the construction it ends up the same way.

Hundreds of years later, it's still standing!

In 1990, a team of scientists and engineers spent eleven years researching how to preserve the tower, and after they completed their restorations, they promised the tower would be stable for at least another two hundred (!) years! Even with such a bad start, the product (I guess you can call the tower a “product” in a certain sense) is still alive and in working condition. It is tilted, looks unstable, and requires complex maintenance, but it works! I personally saw that they allow tourists to climb up to the upper floors of the tower. Such an exemplar of self-confidence!

After the reconstruction the tilt was reduced by one inch
After the reconstruction the tilt was reduced by one inch

There is another thing worth mentioning. Along with instability, the soft soil brought an unexpected benefit. The Tower of Pisa is naturally resistant to earthquakes, and it has survived four of them. Viscous ground under the tower absorbs shocks in a way that is very specific to the combination of the tower's construction and the soil type underneath. Comparing it to computer software, it's like a server side code that is so complicated that it survives hacker attacks without applying a single safety measure.

Does it remind you of something?

It clearly reminds me of a software project that started from poorly detailed specs and insufficient research, and ended up entirely different from what it was planned to be-something special with unpredictable sustainability. It could not be halted because that was not an option, and there was a high demand in the product.

I'm glad that after all the issues the tower still stands, but it is only a matter of luck. The tower and what happened to it shows that every serious venture must start with deep research and thorough planning. By the way, there are nine more leaning towers in Italy. The one in the photo below is located in Bologna.

The Leaning Tower of Bologna
The Leaning Tower of Bologna

Other articles

Gradual Rollouts with AWS Lambda

Learn how to mitigate deployment risks using AWS Lambda's gradual rollout feature, enabling safer, incremental updates to your product's backend.

Using Tailwind to Fill in the Gaps in your Team's CSS Knowledge

Many engineering teams are favoring Tailwind CSS over plain CSS for its ease of styling web frontends with utility classes, addressing scalability issues encountered with traditional CSS as project size grows.