Nathan's four Laws of Software:  1.  **Software is a gas**  ...

Nathan’s four Laws of Software:

  1. Software is a gas
    Software always expands to fit whatever container it is stored in.

  2. Software grows until it becomes limited by Moore’s Law
    The initial growth of software is rapid, like gas expanding, but is inevitably limited by the rate of increase in hardware speed.

  3. Software growth makes Moore’s Law possible
    People buy new hardware because the software requires it.

  4. Software is only limited by human ambition and expectation
    We’ll always find new algorithms, new applications, and new users.

Myhrvold goes on to describe software development as a state of Perpetual Crisis. The size and complexity of software is constantly rising, with no limit in sight. As we develop more advanced software– and as we develop solutions to manage the ever-increasing complexity of this software– the benefits of the new software are absorbed by the rising tide of customer expectations. Software development will never be easy; new software always has to push against the current complexity boundary if it wants to be commercially successful.