Pyramids, Application. An Analogy

Working on maintaining and modifying a five year-old Java application, I came to realize there’s a strong relation between legacy and pyramids. Here’s an analogy:

|

Huge Pyramid

Pyramids are HUGE monuments, built for the sole purpose of being a tomb to one person.

  • Although the project tree is HUGE (14000+ files), the purpose of the application is amazingly modest (CRUD + search) | |
Building the pyramid
  • Pyramids required a lots of resources to build (time, wealth, labor).
  • The application took 5 years, 4 teams and lots of $ to build. | |
Build Method
  • No one knows exactly how the pyramids were built.
  • Compiling/Building the application is a black box. “Just invoke those commands – twice – and you’ll get your ‘war’ files”, said the Build Master. | |
  • Ancient scripts are quite scarce inside the Pyramids.
  • Project documentations are almost non-existent | |
  • Sometimes you wonder what motivated people to build such a thing, in such a shape.
  • The schema is highly normalized (talk about contact information spanning across 4 different tables, with email field divided into name and fqdn) – WHY?! | |
  • When you look closely, Pyramids are built by stacking layers of stone blocks on top of each other.
  • The application is a grand collection of all sorts of frameworks (counted 4 so far), libraries (uncountable), tools, architectures. | |
  • Currently, some Pyramids aren’t structurally sound, and visits to them are quite limited in fear of falling rocks.
  • Dare adding new code to that monster? | |
Bent Pyramid

Imperfect pyramids can be found along side perfect ones, proving that it took builders decades to master the way they were built.

  • The application contain all sort of “imperfect” code as a proof of how the builders gained experience over time (JSP files with Embedded Classes, with embedded Java code and hard coded urls, business logic, view logic and data access mechanisms) | |
  • People visit the Pyramids for few hours as a source of great admiration and respect. Then, continue on with their lives.
  • The application’s code is a source of respect and admiration, but when it comes to something functional, better build something else. | |
  • Pyramids can’t be maintained.
  • The great conclusion. | | UPDATE:
  • Some people have been reported to complain about a sense of suffocation or claustrophobic symptoms when exploring the pyramid internal passageways.
  • The same is experienced while reading the application code. |

Hahaha … that’s awesome!!!