You can never plan the future by the past.
More so than most technologies and markets, software is in a constant state of flux. Presumably this is due in part to the inherent flexibility of software and in part to its immaturity as a technology and industry. The merging of communication with storage and processing (as represented by the Internet) represents a major maturation of the technology: with a full complement of nearly ubiquitous mass storage and communication together with computing, there are no remaining major technological gaps of note. However, the market implications of this limited technological maturation have only begun to be felt. In addition, there are other technological and market trends that are easily anticipated because they have already begun. These are essentially an extension of the computing phases shown in table 2.3.