One of the things I looked forward to the most about my Jerusalem visit was seeing the Immovable Ladder in person.
The Church of the Holy Sepulchre is home to many things that are sacred to many different religions. This isn’t a church like you or I usually think of churches – even just calling it a church is the understatement of the millennia. It’s built around the site of the crucifixion, Jesus’s tomb, and four of the Stations of the Cross.
Look slowly at the outside of the building. Notice the different stones and styles. It’s been pieced together slowly over the last couple thousand years like an architectural version of Katamari Damacy:
And look closer at the two windows on the right. There’s a ladder underneath the right side window:
That’s the Immovable Ladder.
Oh it can move alright, but no one is allowed to move it.
See, the Church of the Holy Sepulchre is maintained by six different religions, and no one is allowed to do anything in this church without getting agreement from all of the other churches. They can’t replace paintings, resurface floors, raise signage, or fix the broken restrooms without building consensus first. And of course, every religion wants something for themselves in order to consider doing something for another religion.
This policy has a name: status quo. (No, seriously, that isn’t the generic term – it’s the actual name of their community territory agreement.)
In the mid-1800s, someone leaned a ladder up against the Church. And there it’s remained, dating back through every modern photograph, painting, and drawing of the church, barring a few where the artists appear to have edited out the ladder for beauty.
It’s someone’s legacy.
Ever since I learned about the Immovable Ladder, it’s all I can think about when I see software being built. Are we building something that really solves a problem for someone? Or are we building something that, as soon as it’s built, we’re never going to be allowed to take it down without gathering consensus from a set of departments and users who never wanna agree about anything?
Or in other words, what can I do to avoid writing this new software?