tures of cloud computing are attractive because cus- tomers can add or delete users, with fees adjusted accordingly. Large enterprises frequently use a cloud computing provider's data centers and staff to develop and manage new software applications. Adding and supporting new applications requires many hours of staff time to research and develop. Other chal- lenges within data centers include ensuring that key applications don't crash, keeping up with software updates and traffic spikes, and controlling energy costs for electricity and cooling. Moreover, with staff cutbacks associated with recessions and the emphasis on productivity, IT directors do not always have a sufficient budget to adequately staff their centers for continuous uptime. Even though the cost of running a data center and developing applications is the biggest factors in motivating organizations toward cloud computing, the risks of not keeping critical applications running and the complexity of operating and developing applications are also important considerations. The Evolution of Cloud Computing The term "cloud computing" is relatively new, but the trend toward outsourcing com- puting and programming tasks has been evolving since the late 1980s. During the 1990s, network technologies became robust enough that programmers in developing Cloud Computing countries became able to support remote software development for high-tech compa- nies in the United States. Given the time differences, programmers in countries such as India developed software during normal business hours and then sent it back to com- panies in the United States, where programmers took over during their working hours. This dramatically hastened the introduction of new products, as software was literally being developed day and night. As IP networks that connected sites worldwide became faster, more reliable, less costly, and widely available, enterprises in Europe and the United States outsourced specific tasks. For example, they contracted with data centers in developing count