By Dean Leffingwell
Much has transpired since the first edition of this text was published in 1999. The "dot.com" bubble economy of the late 1990s (driven in part by the Internet, software, and related technology) has burst, causing significant disruption, economic uncertainty, and chaos in the lives of many. And yet, perhaps order and sanity have been restored to a free market that appeared to have "lost its wits" for a time.
However, innovation in software technology continues unabated, and the industry as a whole is still growing rapidly . The global reach of the Internet continues to change our lives and drive new, varied forms of communication, from the global electronic marketplaces that facilitate the exchange of goods and services to the after-school instant messaging chat-fests that seem to absorb our children's homework time and so much of that expensive Internet bandwidth we rolled out in the last decade .
We are connected to our business associates , friends , and family 24/7. Internet cafes in Australia, in Scotland, and on Alaska-bound cruise ships are open 24 hours a day. We receive e- mails on our PDAs at the grocery store. We can't make breakfast , drive to work, ride an elevator, or enter an office building without interacting with software. Software has become the embodiment of much of the world's intellectual knowledge, and the business of developing and deploying software has emerged as one of the world's most important industries.
Software development practices continue to march forward as well. The Unified Modeling Language (UML), adopted as late as 1997, is now the de facto means to communicate architecture, patterns, and design mechanisms. The Rational Unified Process and similar processes based on the UML are being adopted by many in the industry as the standard way to approach the challenge of software development.
Our personal lives have changed also. After four years at Rational Software, recently acquired by IBM, I have moved on to helping independent software companies achieve their goals. Some teams hope to change the world; some hope to have a significant impact on individual lives by improving health care; still others hope to improve their customers' manufacturing efficiencies or to help businesses grow by translating product data into other languages. However, these teams all have one thing in common: they are challenged by the difficulty of defining software solutions in a way that can be understood by themselves , by their customers, by their marketing teams, by their internal development and testing teams ”indeed, by all those who must understand the proposed solution at the right level of detail so that the proper results can be achieved. Fail to do that and they fail to achieve their mission. Because of the importance of their mission on their personal lives as well as those whose products they are intended to help, failure is not an option.
Therefore, while much has changed in the software industry in just a few short years, some things, including the challenge of Managing Software Requirements , remain largely the same, and so our work continues in this, the second edition.