Skip to content


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 PyramidPyramids 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 PyramidImperfect 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.

Posted in General, Java, Ruby.


One Response

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Brenton says

    Hahaha … that’s awesome!!!



Some HTML is OK

or, reply to this post via trackback.