Many of the basic concepts behind software development have remained the same for five, ten, twenty years or more. This chapter discusses some of the major trends affecting software development in the late 1990s. Many software projects contain a database component, typically a relational database (RDBMS). Given sufficient processing power and correct database design, a good RDBMS can easily handle databases hundreds of gigabytes or even several terabytes in size . Object-oriented data and the expanded use of multimedia data types, however, place a huge strain on RDBMS systems developed to hold relatively small records with simple field types. Object-oriented databases have existed for some time, but often lacked the performance, administration tools, and robustness of the mainstream RDBMS products. Today, every major RDBMS vendor has announced plans or is actually shipping "Universal" DBMS products that expand their RDBMS functionality with object-oriented and multimedia capabilities.
One of the biggest users of RDBMS products are the so-called packaged software vendors such as SAP, PeopleSoft, and Baan. Some database companies such as Oracle actually have their own packaged applications for financial, manufacturing, and other domains. Ten years ago, eighty percent of Fortune 500 companies used some sort of in-house developed financial or manufacturing software. Today, over eighty percent of the same companies are implementing packaged software solutions. Perhaps only the use of "Webtop Computing" with its potential for platform independence has been a faster growing trend. In a true web-centric environment, a " webtop " replaces the user 's traditional desktop window system with a web browser and web browser based applications. However, since any webtop application can also run in a web browser running on top of a traditional desktop window system, the transition to webtop computing can be a simple and incremental one. If Internet standards for webtop applications such as HTML and Java are followed, then the webtop becomes platform independent. Content and access to data now become more important than hardware and operating system concerns.
As the shortage of skilled programmers in the United States grows, along with increasing programmer salaries, there is growing motivation to ship development overseas where skilled programmers can be hired for substantially lower salaries. The benefits and risks of such practices are discussed further in this chapter. Another way to potentially lower costs is to streamline your software development infrastructure. Where should you cut back on infrastructure, how can tasks be automated, and how can bureaucracy be reduced? These issues and others are discussed further below.