Old software bugs are fixed so you will upgrade from the previous version, and new bugs are introduced to ensure you will have to move up to a future version. Files from an earlier version are not recognized by the newer version thereby forcing you to upgrade any older systems you may have, even though they still perform their intended function perfectly. New computers are shipped with the latest version of the operating system that is incompatible with older systems on your network. You find that the new version is locked-in and can't be removed and, once again, you have no choice but to upgrade everyone to the newer systems. Yet another variation is to stop providing software drivers for certain types of peripherals so that you will need to upgrade them as well.
Every computer user is painfully aware of the effort required to learn a new or revised interface.
Software developers deliberately make the basic interface appear similar to, and behave similarly, to everyone else's so novices will be able to begin using it quickly without assistance. They use a totally different strategy for advanced users, however. Here, a unique interface provides an advantage for the suppliers since a user who has invested a great deal of time and effort in learning to use a particular product is unlikely to move to another product. Each upgrade provides an opportunity to enshroud committed users ever more tightly in their interface. In a rational society, stickiness would result from user satisfaction rather than a software variation of flypaper.