| Software is a disruptive technology that has changed how almost every sector of human society and the economy works. Software is now pervasive; it is a component of almost every industrial product or at least essential to the development of such products. Software capabilities lie at the core of the new national and international information-based economy. This mission criticality of software imposes increasingly stringent demands on business organizations that depend on software systems or are responsible for software development. The Darwinian nature of modern business competition makes software development a struggle for survival in an unpredictable environment characterized by intense pressures for rapid development; decreased time to market; flexible and easy-to-use applications; and low cost. It is now more important than ever for software developers, project managers, and business organizations to understand and implement diversified, multidisciplinary software development environments in their organizations.
Strategic Software Engineering: an Interdisciplinary Approach addresses these needs by offering a view of software engineering as a strategic, business-oriented, interdisciplinary enterprise, rather than as a primarily technical and scientifically focused process. We view software technology as a tool for achieving business goals in collaboration with all the affected stakeholder communities. Although we address many of the technical and scientific aspects of development extensively, this is done in a way that is broadly accessible. We critically review software development models and processes. We consider how software has been created in the past and with what shortcomings as well as what new paradigms are emerging that reflect how development should be done. We provide a strategic, business-oriented assessment of the forces that have influenced the development of software process models in order to better understand what measures or directions should be taken to further improve them. We extensively address the relation between problemsolving techniques and strategies for effectively solving real-world problems. Finally, we consider the impact of interdisciplinary factors on software development, including the critical role of people and financial factors. |