Zawinski's Law from the Jargon File:

Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.

Possibly inspired by "The Law of Software Development and Envelopment" at MIT:

Every program in development at MIT expands until it can read mail.

While humorous, it reflects the pressure of programs to expand and evolve into platforms. At Octoblu, we succumbed to this pressure early and can not only read email (or SMS, or push notifications, or…), but can even automatically generate it from your brain waves.

What pressures exist on your programs? Do you resist or see them as opportunities to expand the usefulness of your application?

Sometimes in order to provide simplicity for the user, we need to embrace complexity for the developer. Other times it is the poison pill that destroys our application utterly. How do you determine when it is the right thing?

Join the discussion on Facebook in Programming Philosophy