Coding for simplicity
August 2nd, 2009 — Brian FooteWhen NASA designed the lunar module for the Apollo 11 mission for the first ever attempt to land men on the moon, they were challenged to create a reliable engine for lifting off the lunar surface and the return journey home. The engine absolutely had to work. If the engine failed, there was no hope of rescue and probably little the astronauts could do to attempt a fix. A failed engine would mean more than just a failed mission, it would be the end of the astronauts lives and a spectacular failure to NASA and an embarrassment to the United States in the midst of the cold war. NASA engineers decided to approach this problem by creating the simplest engine they could conceive. It had no moving parts and lacked even a spark plug. The fuel for the engine would ignite by simply mixing its individual components together. This, along with countless other engineering decisions, eventually led to the first successful moon landing and the rest is history.
The philosophy of designing for simplicity can described as the KISS principle, Keep It Simple Stupid, or it can be a corollary to Occam’s Razor in that the simplest solution is usually the best. This philosophy is what is behind Google becoming a billion dollar company based on a text-box and a submit button. This is also my personal philosophy for creating websites. All things being equal, I tend to implement functionality with lots of simple pages as opposed to fewer, more complex pages.
