Famous for your mistakes

We all have heard about the leaning tower of Pisa, mostly known for its unintended tilt. I had the opportunity to visit the tower some years back and was actually surprised by the surrounding site around the tower, the Cathedral, the Baptistry, and the Monumental Cemetery. In my eyes these parts of the "Piazza dei Miracoli" were much more astonishing in beauty than the tower of Pisa, but I have never heard about these parts in Pisa. Having my "tester" hat on, I soon realized that I only had heard about the most famous mistake in construction history, and that the town was mostly known for this mistake, overshadowing the beauty of rest of the site.

A quick overview of construction of the tower
Construction of the tower occurred in three stages over 199 years, starting in 1173. The tower began to sink after construction had progressed to the second floor in 1178. This was due to a mere three-meter foundation, set in weak, unstable subsoil, a design that was flawed from the beginning.

Picture - taken from here


Construction was subsequently halted for almost a century, due to warfare, this allowed time for the underlying soil to settle. Otherwise, the tower would almost certainly have toppled. After almost 100 years of pause, the construction resumed, and in an effort to compensate for the tilt, the engineers built upper floors with one side taller than the other. Throughout the history many measures were taken in order to stabilize the tower, and first in 2008, 835 years after the construction began, the engineers announced that the tower, for the first time in history, stopped moving, and they are assuming that the tower should not move for the coming 200 years.

What has this to do with software development, and testing?
Well, it is easy to draw several parallels to software development, I'll mention two, obvious ones:
  • The world, or your users, will remember your "catastrophic" or big mistakes, which will overshadow all the other great things and features that you do or provide them. You could end up famous, but not for the good stuff. Perhaps not "Tower of Pisa" famous, but anyway.
  • Cutting corners in order to meet a deadline, or just being sloppy, will increase your technical debt, and it will backfire, leading to a lot more time spent afterwards in order to correct these mistakes. In the case of Tower of Pisa, your mistakes in software development won't survive for 800 years, before stabilizing, for obvious reasons, but you will probably go out of business in everything from 800 minutes to 800 days, depending on the severity of the mistake, and your sector of business

Some examples from world of software
Over the years we have accumulated many "famous" software bugs that could be used as an example, one of them being the "Knight Capital Group's where $440 million were lost in 45 minutes due to an improper deployment of software on servers and the re-use of a critical software flag that caused old unused software code to execute during trading. Due to this, Knight Capital lost 75% of their value, leading the company to undergo a merger soon after. Will probably go in history remembered by their mistake which lead to them being bought by competitors. This example cover both becoming famous for your mistakes and also for being sloppy when it comes to taking measures to ensure proper development.

Other famous examples range everything from severe incidents, like the Therac-25 which lead to many casualties, to harmless glitches as Corrupted Blood incident in World of Warcraft. As the services we develop become more and more complex, I'm certain we will populate the list of famous bugs quite well, let's just hope that we won't be on that list.

Wrapping up
There is only one "leaning tower of Pisa" in the world, you probably won't find that many others that survived, and that for a good reason (probably they all have toppled). We have our list of leaning towers of Pisa in the software world, the famous bugs, but you probably won't trust any of the companies who have been made famous by these bugs.

Try not to take any shortcuts when it comes to developing and testing software. Always consider the risk by compromising on something, while you might get away with it a seldom time, in the long run it probably won't be sustainable.

Comments

Popular posts from this blog

How do I stay "up to date" on software testing related stuff?

Shifting left, shifting right - where to shift next? - part 2

Does the language we speak shape the way we think?