Since the business world is constantly changing, companies and their developers need to change too. New technologies, platforms, databases, and operating systems all require new custom development. Most applications have some form of database element. They want to be able to put their time and skills to work on sophisticated algorithms that can turn data into valuable information, and not spending hours writing tedious data connection and display code. Managing complex code.
Applications grow and overtime get more sophisticated.
More developers on projects and third-party code additions make projects over time difficult to manage. The rise of distributed application development adds a further level of complexity. Moving to the Internet. The move to develop Internet-centric applications is at least as complex as the move from DOS to Windows. Developing Windows applications was eventually made easier through abstract libraries and innovative tools.