- Shopping Bag ( 0 items )
Ships from: Hillside, NJ
Usually ships in 1-2 business days
"Could software reuse play an important role in your organization? For over two decades, a dedicated community of software engineering researchers and practitioners have wrestled with the challenges of introducing systematic reuse in large-scale software development. Successful systematic reuse relies on a set of learning disciplines that can transform IT-intensive groups and companies into knowledge creating organizations. These disciplines require shifts in fundamental, implicit beliefs about software technology, knowledge sharing, and organizational realities. Without a grasp of these underlying dynamics, reuse advocates may actually strengthen resistance to reuse initiatives in the engineering culture of software organizations, while rational concerns about cost justifications or technology transfer issues fall secondary.
In the groundbreaking book, four experts with broad experience in reuse research, methods, technologies, and practice present a unique approach to reuse assessment and adoption, which directly addresses these challenges. LIBRA offers a radically new, inquiry-based approach grounded in practical techniques for assessing an organization's readiness for reuse, as well as potential barriers. These techniques integrate reuse concepts with a diverse set of other disciplines, including organizational learning, dramatic theory, and belief mapping to affirm the critical role of culture, belief, and attitude in engineering success.
LIBRA is essential reading for software project managers, strategic planners, CTOs and technology transfer agents, or working software engineers; and especially any advocate attempting to introduce reuse practices within anIT-intensive business setting. The multidisciplinary nature of this practical reference will also interest change agents in non-software fields, such as knowledge management and organizational development; and can serve as a graduate-level text for software engineering or management specialty courses.
For a sneak peek at the front matter
or a look at the first chapter,
IEEE Computer Society
1.1 WHAT THIS BOOK IS ABOUT
1.1.1 The Problem
Software reuse is a multidisciplinary field concerned with the “art of not rein-venting the wheel” in software development. Progress in introducing reuse as a comprehensive practice within software or-ganizations has been disappointing in many respects. Reuse advocates who have seen their efforts frustrated have long acknowledged the influence of organizational and cultural factors and the resistance of individual engineers as primary barriers to adoption of reuse practices. Though these well-known factors of culture, belief, and attitude are often used as explanations for the failure of reuse initiatives, they fall outside the scope of most systematic reuse planning processes. Lacking systematic ways to address issues of receptivity and resistance, reuse advocates too often fall into a mode of persuasion and exhortation, preaching the reuse gospel to recalcitrant and skeptical engineers and managers. In our experience, this style of interaction is self-defeating, fails to persuade most people to change their practices or their be-liefs, and may even incite more resistance on the part of the unbelievers. We begin by • Summarizing what this book is about: key features of the LIBRA ap-proach and the problems it aims to address. • Describing the intended audience of the book and the benefits each type of reader should gain. • Explaining the unusual style and structure of the book, and offering some tips for how to read and use it.
1.1.2 LIBRA: A Qualitatively Different Approach
In response to these problems, we have developed a new and different ap-proach, which we call Learning and Inquiry-Based Reuse Adoption, or LIBRA. The central insight of this approach is that systematic reuse is one aspect of mature orga-nizational learning in a software organization. To transform an organization into one that exhibits such qualities, processes need to be established that allow software development knowledge to be more ef-fectively shared, exchanged, refined—in short, reused—within the organization. In any given organization, attempts to introduce these processes and their associated interactions are met with a unique mix of receptivity and resistance that stems from people’s beliefs, values, and concerns about knowledge sharing. Reuse can be both propelled and stalled by strong beliefs of software developers, managers, and users—beliefs about software, about organizations, and about people. Typically, conflicts in beliefs among people in an organization lead to a vicious cycle of advo-cacy and resistance. To break this cycle, a different approach is needed: one based on inquiry, rather than advocating, preaching, or proselytizing the virtues and advantages of reuse as an abstract thing. Unlike the argumentative style of championing the reuse cause, inquiry requires an effort to model another’s belief or perspective without judging it, or immediately comparing it to one’s own, or trying to change it.
Inquiry, we believe, plays an essential role in reuse assessment and planning. You start by asking questions: What past history at that company has left people skeptical of such initiatives? How threatened do people feel that if they “spill the beans” and share their knowledge freely, their value to the company might be com-promised? Maybe they’d even lose their job?
Besides deriving the necessary data for assessment, inquiry is often more effec-tive than advocacy in producing real and lasting change in an organization. The im-portance of inquiry increases the more the desired change concerns beliefs and values rather than a simple transfer of information. Inquiry is an integral part of the core interactions by which reuse happens on a day-to-day level in a software shop. Reuse happens when people have conversa-tions to support learning and to codify knowledge—what we call knowledge cre-ation— in addition to production goals. Other planning techniques can suggest who should hold the conversations and what their content should be: but inquiry is es-sential to the success of the conversations. Assessment, adoption, and sustained reuse are all linked through the common theme of inquiry.
1.1.3 LIBRA Tools and Techniques
As the name implies, LIBRA is an approach to reuse assessment, adoption, and practice in which learning and inquiry are key integrating principles. LIBRA starts from a view of systematic reuse as a form of organizational learning. The approach requires a close look at the culture and belief patterns of key individuals, the organi-zation, and the proponents of reuse. This perspective allows us to address many real-world problems encountered in introducing reuse—problems not accounted for by strictly technical approaches, nor by approaches that emphasize the business case, nor by models that view reuse as a technology to be transferred. To support these principles, we have selected, adapted, and integrated several conceptual tools. Some techniques were borrowed from the organizational learning field, some adapted from other sources, some newly minted. The tools stem from a common, learning-oriented view of software reuse. Each tool helps to improve skills for inquiry, reflection, and dialogue about software reuse opportunities. They are integrated into a tailorable, structured self-assessment framework that can be ex-tended to include other techniques as well.
There are four major LIBRA tools, described in detail in Chapter 4: Dramatic scenarios are used to describe individual and organizational inter-actions. Scenarios help us see people not only in light of their structural roles within the organization, but also in terms of their beliefs, values, and personal interests as stakeholders. Dramatic scenarios help reuse change agents to de-velop the required observation and reflection skills to be able to read such sit-uations clearly.
Chapter 5 contains a hypothetical case study in the form of a dramatic scenario. The chapter includes an extended analysis of the case study, identi-fying both productive and problematic interactions among the characters. Al-though dramatic scenarios have proven useful in general change management contexts, they have seldom been applied to software reuse assessment. They were first piloted in a software context at the Seventh Workshop on Institu-tionalizing Reuse (WISR7) in 1995 [Lato96]. In developing the Chapter 5 scenario (and other similar ones) we gained substantial new knowledge about the process (both dos and don’ts). In this book we include guidance reflecting these experiences.
1.2 WHO SHOULD READ THIS BOOK
The book has a very practical focus. It is primarily targeted toward reuse propo-nents, that is, engineers, managers or technology advisers who are familiar with software development realities, are generally aware of major issues in reuse adop-tion, and are looking for practical strategies to help their companies (or clients) tran-sition toward more systematic reuse. We offer advice and tips for introducing reuse into an organization gracefully and with lasting impact, by overcoming or avoiding the many forms of resistance that a proponent may encounter. The book is very consciously and explicitly not intended to persuade readers about the benefits of systematic reuse. We omit much available data about the eco-nomic and other benefits of reuse. Our omission of such data does not imply that the data do not exist. Rather, the point of the book is to explore why reuse efforts some-times fail after all such material has been presented (and even believed). If you are a reuse proponent, after reading this book you should be able to:
The book is applicable to a broad range of organizational settings. Proponents typically work (or consult) with an organization that acquires, develops, and/or main-tains software-intensive systems as a critical or core process of its business operations. The setting could be a product development company, a services company where em-ployee knowledge is the key asset, a government software acquisition organization, a government contractor with development or maintenance contracts, or a large bank or manufacturing company that develops and uses custom applications to support in-house operations. The approach can be applied in concert with virtually any technical software development method, including product-line architecture-based methods, web development, and knowledge management. It applies whenever software tech-nology is driving fundamental change in business strategies or processes.
Software engineers and managers new to the reuse field, interested as potential advocates or because they are making reuse technology purchase decisions, will gain a perspective that allows them to assess the claims and beliefs of reuse proponents. Those concerned with more general software engineering management (managers, supervisors, and consultants) will gain a better understanding of how reuse dovetails, overlaps, and contrasts with other organizational change and productivity approaches. Even reuse skeptics should find this book useful. It will help them to articulate the basis for their skepticism. The principle of inquiry should allow reuse skeptics to make their case more effectively to reuse proponents. It is quite possible that for their organization and context, their skepticism is justified.
This book does not presume in-depth knowledge of software development, or-ganizational learning, or the history of software reuse; neither does it provide a thorough introduction to any of these fields. The discussion focuses on organiza-tional concepts and experiences, not on the nuts and bolts of software development. Some exposure to the language and concepts of software reuse will be helpful, but is not essential. Some examples will be difficult to follow in detail without a soft-ware background. This is partly because we wanted the dialogues to be representa-tive of the actual conversations that take place in a software shop. But since technical details are not the substance of the method or the unique contribution, we do not provide references for many technical terms or acronyms, and readers can skim such sections without missing the most important points.
We provide some references to the organizational learning field, but the book is not intended as an introduction to this area for software developers, any more than it is a primer about software engineering management for the non-software-oriented reader. Techniques we have borrowed or adapted can be used with minimal prepa-ration. We give credit where appropriate to sources for these ideas and techniques, but do not present the ideas in depth beyond what is needed for their practical use in LIBRA.
1.3 HOW TO READ THIS BOOK
This book offers reuse proponents a fresh perspective on factors underlying a num-ber of well-known breakdowns and barriers in reuse. It may help reveal tacit assumptions in their own approach and ways in which these can lead to counter-productive efforts. We hope it will also provide guidance in developing and imple-menting strategies that allow reuse to flourish.
Toward this end, we intend the book to be read and used as a practical field guide. It will be most effective if read, then actively used. We recommend that you treat the tools as starting points for constructing your own descriptions of current and desired behaviors, and identifying meaningful next steps to take. The dialogues, scenarios, and example models reflect the authors’ personal experiences; the spe-cific example scenarios and interpretations should not be treated as an integral and inseparable part of the assessment techniques. They are intended only as seeds or catalysts to help you create and capture the knowledge most relevant and accurate for your own organization.
The style in which this book is written is unusual for a nonfiction book about a technical subject. Much of the content of the book is presented in the form of fic-tionalized dramatic dialogues or scenarios. It is important to understand the intent behind each chapter and the motivation for this unusual format.
Here is a roadmap:
The book began life as a document funded by the Defense Advanced Research Projects Agency (DARPA) as part of its program in Software Technology for Adaptable, Reliable Software (STARS). The STARS program pursued a tripartite strategy comprising software reuse, process-driven development, and software de-velopment environments. As part of the reuse initiative, in 1995 the authors were chartered to write a reuse planning guidebook. Not typically for such tasks, we were allowed considerable latitude in deciding the best approach. We decided a new approach was needed, one that would augment the guidance already available by focusing on issues such as beliefs about reuse, organizational dynamics, and recep-tivity and resistance.
The authors brought varied backgrounds to the project. First and foremost we drew on our own and others’ experiences in promoting reuse as developers in con-tractor and commercial software organizations, in contract research and develop-ment, and as external consultants. We had the benefit of a coauthor (Larry Levine) with considerable experience in organizational development, organizational learn-ing, and change management. Exploring and unifying these viewpoints, we came to see software reuse as one aspect of the broader problem of organizational learning and knowledge creation in a software shop. This insight led us to rethink many as-sumptions about reuse adoption and its breakdowns, and the beliefs and practices of reuse advocates.
The resulting approach—Learning and Inquiry-Based Reuse Adoption, or LIBRA—was a radical departure from top-down, broad-based approaches. Initial response from our colleagues was encouraging. Readers said the document helped to surface difficult issues that had troubled them for some time, which they had as-sumed were specific to their situation. In our subsequent research and consulting, we applied and field-tested various versions of LIBRA. While it is not a formal, sci-entifically validated methodology, our recent work has reinforced its pragmatic value.
In revising the guidebook for commercial publication we have expanded, up-dated, and reorganized all the material. We focused the emphasis to complement rather than overlap other approaches. We view the book as a basis for experimenta-tion, and a first step in a dialogue within and between the software reuse and organi-zational learning communities.
We see our contribution as threefold: