Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

Share this Page URL

Chapter 1. Introduction > The Key to the Future: Managing Complexity and Rapidl... - Pg. 4

Introduction 4 Clearly, as software-intensive systems reach this scale and complexity, the problems of software production become significant. Producing such systems within budget and on time is problem enough. Designing a system so that it can easily evolve as the operating environment changes, as user requirements are modified, and as errors (which inevitably occur in such systems) come to light, makes this an even more difficult task. Yet these are the challenges faced by any organization involved with the development, deployment, maintenance, and evolution of software-intensive sys- tems. The Key to the Future: Managing Complexity and Rapidly Adapting to Change Organizations that deploy software-intensive systems face pressures from many sides in their ef- forts to improve the way they carry out their business activities. The biggest challenge they face is how to manage the complexity inherent in the systems they are deploying, while at the same time being able to rapidly adapt to change. This combination of complexity and change provides the greatest risk to successful system deployment. To investigate this challenge further, it is useful to examine the sources of both of these key ingre- dients: complexity and change. Managing Complexity To be successful, the systems being developed and deployed must meet a variety of requirements. The complexity of any software-intensive system naturally tends to increase as these requirements grow in quantity, diversity, and difficulty. While there has always been a range of complex systems being developed, the past few years has seen a marked increase in system complexity. The source of this complexity lies in at least four classes of requirements being placed upon them. Functional Requirements Software-intensive systems are being deployed in a much wider set of application domains than ever before. Increasingly, computer-based solutions are at the heart of innovative technology ap- proaches in domains as diverse as the aerospace, manufacturing, financial management, and en- tertainment industries. Each of these industries brings a range of new functional requirements to software developers, frequently pushing the boundaries of capabilities previously offered. Furthermore, as technologies evolve, whole new domains of business are opening up to take ad- vantage of them. One prime example is the impact that electronic commerce has had on the retail industry. As a result of technology improvements such as the Internet, completely new forms of trade between suppliers and users of retail goods are possible. This has resulted in significant changes to the requirements for many systems being developed for those industries. For example, order management systems must now be concerned with a variety of nontraditional means of order entry, payment, and delivery of retail goods for people making online orders over the Internet, mak- ing payment using electronic forms of cash, and allowing real-time tracking of delivery, inquiry, and order amendment.