When I heard this joke years ago, it really struck a note with me. In addition to being a good laugh, it also caused me to really think about how I go about designing software solutions for customers. Building systems in Pega, we are always looking for the best ways to automate and streamline processes, this often entails pulling data from multiple systems, running complex business logic, and presenting users with exactly the same information they need to complete their tasks. Though the end goal is always a powerful and efficient system, I have found that almost every project I have encountered has run up against issues with automation. Be it waiting for partners to deliver interfaces or even identifying sources for key information, there always seems to be some key piece of the puzzle that goes missing until the 11th hour.
Whenever I run into this type of situation, I think back to the escalator joke and take it a step further and compare an escalator to an elevator. When an elevator breaks down, at best everyone is stuck where they are. If an escalator breaks down, you simply start walking and you can keep going where you need to be, it might not be as fast or as easy as planned, but it will work. If a system is built well, with this type of thought process in mind, even though a key component might not be available or working, the system can still be fully functional, even if not operating at 100% efficiency.
In projects, I have always tried to add the ability to manually enter data that would eventually be provided by services, or in some cases give a user the ability to choose the path of a work object when in the future a complex business logic might make the final decision. By including these backup plans for when a service isn’t available or there are outstanding questions on logic, we can ensure that though a solution may not be running at 100% efficiency it will run and provide value on day 1.
Though our goal is always to provide the most advanced and efficient system possible to our customers, it is important that we never lose sight of the need to build a robust system that can operate even when conditions are not perfect. There will always be the possibility of show stopping exceptions, but whenever possible we must make sure that even if the escalator is not running, you can still get where you are going.