“We need better approaches to understanding and managing software requirements, and Dean provides them in this book. He draws ideas from three very useful intellectual pools: classical management practices, Agile methods, and lean product development. By combining the strengths of these three approaches, he has produced something that works better than any one in isolation.” –From the Foreword by Don Reinertsen, President of Reinertsen & Associates; author of Managing the Design Factory; and leading expert on rapid product development Effective requirements discovery and analysis is a critical best practice for serious application development. Until now, however, requirements and Agile methods have rarely coexisted peacefully. For many enterprises considering Agile approaches, the absence of effective and scalable Agile requirements processes has been a showstopper for Agile adoption. In Agile Software Requirements, Dean Leffingwell shows exactly how to create effective requirements in Agile environments. Part I presents the “big picture” of Agile requirements in the enterprise, and describes an overall process model for Agile requirements at the project team, program, and portfolio levels Part II describes a simple and lightweight, yet comprehensive model that Agile project teams can use to manage requirements Part III shows how to develop Agile requirements for complex systems that require the cooperation of multiple teams Part IV guides enterprises in developing Agile requirements for ever-larger “systems of systems,” application suites, and product portfolios This book will help you leverage the benefits of Agile without sacrificing the value of effective requirements discovery and analysis. You’ll find proven solutions you can apply right now–whether you’re a software developer or tester, executive, project/program manager, architect, or team leader.
Overview and Goals The agile approach for software development has been applied more and more extensively since the mid nineties of the 20th century. Though there are only about ten years of accumulated experience using the agile approach, it is currently conceived as one of the mainstream approaches for software development. This book presents a complete software engineering course from the agile angle. Our intention is to present the agile approach in a holistic and compreh- sive learning environment that fits both industry and academia and inspires the spirit of agile software development. Agile software engineering is reviewed in this book through the following three perspectives: l The Human perspective, which includes cognitive and social aspects, and refers to learning and interpersonal processes between teammates, customers, and management. l The Organizational perspective, which includes managerial and cultural aspects, and refers to software project management and control. l The Technological perspective, which includes practical and technical aspects, and refers to design, testing, and coding, as well as to integration, delivery, and maintenance of software products. Specifically, we explain and analyze how the explicit attention that agile software development gives these perspectives and their interconnections, helps viii Preface it cope with the challenges of software projects. This multifaceted perspective on software development processes is reflected in this book, among other ways, by the chapter titles, which specify dimensions of software development projects such as quality, time, abstraction, and management, rather than specific project stages, phases, or practices.
"This book provides the research and instruction used to develop and implement software quickly, in small iteration cycles, and in close cooperation with the customer in an adaptive way, making it possible to react to changes set by the constant changing business environment. It presents four values explaining extreme programming (XP), the most widely adopted agile methodology"--Provided by publisher.
Whether to continue using traditional cost and benefit analysis methods such as systems and software engineering standards or to use a relatively new family of software development processes known as Agile methods is one of most prevalent questions within the information technology field today. Since each family of methods has its strengths and weaknesses, the question being raised by a growing number of executives and practitioners is: Which family of methods provides the greater business value and return on investment (ROI)? Whereas traditional methods have been in use for many decades, Agile methods are still a new phenomenon and, until now, very little literature has existed on how to quantify the business value of Agile methods in economic terms, such as ROI and net present value (NPV). Using cost of quality, total cost of ownership, and total life cycle cost parameters, The Business Value of Agile Software Methods offers a comprehensive methodology and introduces the industry's initial top-down parametric models for quantifying the costs and benefits of using Agile methods to create innovative software products. Based on real-world data, it illustrates the first simple-to-use parametric models of Real Options for estimating the business value of Agile methods since the inception of the Nobel prize winning Black-Scholes formulas. Numerous examples on how to estimate the costs, benefits, ROI, NPV, and real options of the major types of Agile methods such as Scrum, Extreme Programming and Crystal Methods are also included. In addition, this reference provides the first comprehensive compilation of cost and benefit data on Agile methods from an analysis of hundreds of research studies.The Business Value of Agile Software Methods shatters key myths and misconceptions surrounding the modern-day phenomenon of Agile methods for creating innovative software products. It provides a complete business value comparison between traditional and Agile methods. The keys to maximizing the business value of any method are low costs and high benefits and the business value of Agile methods, when compared to traditional methods, proves to be very impressive. Agile methods are a new model of project management that can be used to improve the success, business value, and ROI of high-risk and highly complex IT projects in today's dynamic, turbulent, and highly uncertain marketplace. If you are an executive, manager, scholar, student, consultant or practitioner currently on the fence, you need to read this book!
Agile software development approaches have had significant impact on industrial software development practices. Today, agile software development has penetrated to most IT companies across the globe, with an intention to increase quality, productivity, and profitability. Comprehensive knowledge is needed to understand the architectural challenges involved in adopting and using agile approaches and industrial practices to deal with the development of large, architecturally challenging systems in an agile way. Agile Software Architecture focuses on gaps in the requirements of applying architecture-centric approaches and principles of agile software development and demystifies the agile architecture paradox. Readers will learn how agile and architectural cultures can co-exist and support each other according to the context. Moreover, this book will also provide useful leads for future research in architecture and agile to bridge such gaps by developing appropriate approaches that incorporate architecturally sound practices in agile methods. Presents a consolidated view of the state-of-art and state-of-practice as well as the newest research findings Identifies gaps in the requirements of applying architecture-centric approaches and principles of agile software development and demystifies the agile architecture paradox Explains whether or not and how agile and architectural cultures can co-exist and support each other depending upon the context Provides useful leads for future research in both architecture and agile to bridge such gaps by developing appropriate approaches, which incorporate architecturally sound practices in agile methods
Nicht wenige Software-Projekte erreichen ihre gesteckten Ziele nicht, da bereits in ihrer Anfangsphase Anforderungen an die Software nicht gründlich genug analysiert und dokumentiert wurden. Oft wird auch vernachlässigt, dass Softwareentwicklung genauso viel mit Kommunikation, wie mit eigentlicher Entwicklungsarbeit zu tun hat. An diesem Punkt setzt dieser Klassiker der Softwareentwicklungsliteratur an, in dem überzeugend präsentiert wird, warum die Erhebung, Zusammenstellung und das Managen von Software Requirements essentiell für erfolgreiche Projekte ist und mit welchen erprobten Mitteln diese Aufgaben am besten zu meistern sind. Karl Wiegers zeigt damit, wie Requirements-Analysten, Projektleiter, aber auch alle Programmierer und Designer, die Anforderungen der Kunden umsetzen müssen, Produktivität, Termintreue, Kundenzufriedenheit und Wartungs- und Supportkosten mit dem im Buch beschriebenen Praktiken drastisch verbessern können. - Realistische Erwartungen für Funktionalität und Qualität setzen - Geschäftsregeln in die Anwendungsentwicklung integrieren - Anwendungsfälle zur Definition von Benutzeranforderungen verwenden - Unausgesprochene und wechselnde Requirements identifizieren und managen - Revisionen einschränken und damit Kosten sparen - Besser Software produzieren
Requirements engineering is the process by which the requirements for software systems are gathered, analyzed, documented, and managed throughout their complete lifecycle. Traditionally it has been concerned with technical goals for, functions of, and constraints on software systems. Aurum and Wohlin, however, argue that it is no longer appropriate for software systems professionals to focus only on functional and non-functional aspects of the intended system and to somehow assume that organizational context and needs are outside their remit. Instead, they call for a broader perspective in order to gain a better understanding of the interdependencies between enterprise stakeholders, processes, and software systems, which would in turn give rise to more appropriate techniques and higher-quality systems. Following an introductory chapter that provides an exploration of key issues in requirements engineering, the book is organized in three parts. Part 1 presents surveys of state-of-the art requirements engineering process research along with critical assessments of existing models, frameworks and techniques. Part 2 addresses key areas in requirements engineering, such as market-driven requirements engineering, goal modeling, requirements ambiguity, and others. Part 3 concludes the book with articles that present empirical evidence and experiences from practices in industrial projects. Its broader perspective gives this book its distinct appeal and makes it of interest to both researchers and practitioners, not only in software engineering but also in other disciplines such as business process engineering and management science.
This book constitutes the refereed proceedings of the 20th International Working Conference on Requirements Engineering: Foundation for Software Quality, REFSQ 2014, held in Essen, Germany, in April 2013. The 23 papers presented together with 1 keynote were carefully reviewed and selected from 62 submissions. The REFSQ'15 conference is organized as a three-day symposium. The REFSQ'15 has chosen a special conference theme “I heard it first at RefsQ”. Two conference days were devoted to presentation and discussion of scientific papers. The two days connect to the conference theme with a keynote, an invited talk and poster presentations. There were two parallel tracks on the third day: the Industry Track and the new Research Methodology Track. REFSQ 2015 seeks reports of novel ideas and techniques that enhance the quality of RE’s products and processes, as well as reflections on current research and industrial RE practices.
A Practical Approach To Building Small To Medium Software Systems For Real Business Clients Based on more than 100 actual commercial projects, this book clearly explains how to run an agile software development project that delivers high-quality, high-value solutions to business clients. It concentrates on the practical, social, business, and management aspects as well as the technical issues involved. Professor Holcombe successfully connects readers with the wave of "Agile 2.0" concepts that take the techniques of agile development and place them in the service of business goals. Since it is widely believed that the use of Windows XP will become much more common in coming years, readers should be armed with cutting-edge knowledge of the latest practices in the field. Further features of the book include: Case studies provide real-world examples and describe how XP was introduced into the environment Analysis is provided to help readers determine which elements of XP are suitable for the unique challenges and environments for different projects Problems of a failing agile project and how they can be fixed are covered, including insight into which managerial techniques can be employed An Instructor's Guide provides practical advice on how to motivate students, organize real group projects, and deal, in a simple and effective way, with many of the problems that arise A sample syllabus, sample tests, and additional case study information are available on an instructor's password-protected ftp site Running an Agile Software Development Project is an indispensable guide for professional software developers, engineers, and project managers interested in learning how to use agile processes. It is also a valuable textbook for advanced undergraduate- and graduate-level students in computer engineering and software engineering courses.
This is the digital version of the printed book (Copyright © 2004). Who Says Large Teams Can’t Handle Agile Software Development? Agile or "lightweight" processes have revolutionized the software development industry. They're faster and more efficient than traditional software development processes. They enable developers to embrace requirement changes during the project deliver working software in frequent iterations focus on the human factor in software development Unfortunately, most agile processes are designed for small or mid-sized software development projects—bad news for large teams that have to deal with rapid changes to requirements. That means all large teams! With Agile Software Development in the Large, Jutta Eckstein—a leading speaker and consultant in the agile community—shows how to scale agile processes to teams of up to 200. The same techniques are also relevant to teams of as few as 10 developers, especially within large organizations. Topics include the agile value system as used in large teams the impact of a switch to agile processes the agile coordination of several sub-teams the way project size and team size influence the underlying architecture Stop getting frustrated with inflexible processes that cripple your large projects! Use this book to harness the efficiency and adaptability of agile software development. Stop getting frustrated with inflexible processes that cripple your large projects! Use this book to harness the efficiency and adaptability of agile software development.
This book constitutes the proceedings of the first Asia Pacific Requirements Engineering Symposium, APRES 2014, held in Auckland, New Zealand, in April 2014. The 16 papers presented were carefully reviewed and selected from 30 submissions. The focus of the papers is on the following topics: novel ideas, methods, tools, and techniques for improving and enhancing Requirement Engineering products and processes.
Introduces the core concepts, evaluates how successful they can be, as well as what problems may be encountered Dispels numerous myths surrounding agile development
Learn proven, real-world techniques for specifying software requirements with this practical reference. It details 30 requirement “patterns” offering realistic examples for situation-specific guidance for building effective software requirements. Each pattern explains what a requirement needs to convey, offers potential questions to ask, points out potential pitfalls, suggests extra requirements, and other advice. This book also provides guidance on how to write other kinds of information that belong in a requirements specification, such as assumptions, a glossary, and document history and references, and how to structure a requirements specification. A disturbing proportion of computer systems are judged to be inadequate; many are not even delivered; more are late or over budget. Studies consistently show one of the single biggest causes is poorly defined requirements: not properly defining what a system is for and what it’s supposed to do. Even a modest contribution to improving requirements offers the prospect of saving businesses part of a large sum of wasted investment. This guide emphasizes this important requirement need—determining what a software system needs to do before spending time on development. Expertly written, this book details solutions that have worked in the past, with guidance for modifying patterns to fit individual needs—giving developers the valuable advice they need for building effective software requirements
Today, even the largest development organizations are turning to agile methodologies, seeking major productivity and quality improvements. However, large-scale agile development is difficult, and publicly available case studies have been scarce. Now, three agile pioneers at Hewlett-Packard present a candid, start-to-finish insider’s look at how they’ve succeeded with agile in one of the company’s most mission-critical software environments: firmware for HP LaserJet printers. This book tells the story of an extraordinary experiment and journey. Could agile principles be applied to re-architect an enormous legacy code base? Could agile enable both timely delivery and ongoing innovation? Could it really be applied to 400+ developers distributed across four states, three continents, and four business units? Could it go beyond delivering incremental gains, to meet the stretch goal of 10x developer productivity improvements? It could, and it did—but getting there was not easy. Writing for both managers and technologists, the authors candidly discuss both their successes and failures, presenting actionable lessons for other development organizations, as well as approaches that have proven themselves repeatedly in HP’s challenging environment. They not only illuminate the potential benefits of agile in large-scale development, they also systematically show how these benefits can actually be achieved. Coverage includes: • Tightly linking agile methods and enterprise architecture with business objectives • Focusing agile practices on your worst development pain points to get the most bang for your buck • Abandoning classic agile methods that don’t work at the largest scale • Employing agile methods to establish a new architecture • Using metrics as a “conversation starter” around agile process improvements • Leveraging continuous integration and quality systems to reduce costs, accelerate schedules, and automate the delivery pipeline • Taming the planning beast with “light-touch” agile planning and lightweight long-range forecasting • Implementing effective project management and ensuring accountability in large agile projects • Managing tradeoffs associated with key decisions about organizational structure • Overcoming U.S./India cultural differences that can complicate offshore development • Selecting tools to support quantum leaps in productivity in your organization • Using change management disciplines to support greater enterprise agility
Alastair Cockburn offers advice on bringing difficult software development projects to a successful conclusion with a minimum of stress. The volume is based on over 10 years of interviewing software project teams.
Challenges in unpredictable markets, changing customer requirements, and advancing information technologies have lead to progression towards service oriented engineering and agile and lean software development. These prevailing approaches to software systems provide solutions to challenges in demanding business environments. Agile and Lean Service-Oriented Development: Foundations, Theory and Practice explores the groundwork of service-oriented and agile and lean development and the conceptual basis and experimental evidences for the combination of the two approaches. Highlighting the best tools and guidelines for these developments in practice, this book is essential for researchers and practitioners in the software development and service computing fields.
As requirements engineering continues to be recognized as the key to on-time and on-budget delivery of software and systems projects, many engineering programs have made requirements engineering mandatory in their curriculum. In addition, the wealth of new software tools that have recently emerged is empowering practicing engineers to improve their requirements engineering habits. However, these tools are not easy to use without appropriate training. Filling this need, Requirements Engineering for Software and Systems, Second Edition has been vastly updated and expanded to include about 30 percent new material. In addition to new exercises and updated references in every chapter, this edition updates all chapters with the latest applied research and industry practices. It also presents new material derived from the experiences of professors who have used the text in their classrooms. Improvements to this edition include: An expanded introductory chapter with extensive discussions on requirements analysis, agreement, and consolidation An expanded chapter on requirements engineering for Agile methodologies An expanded chapter on formal methods with new examples An expanded section on requirements traceability An updated and expanded section on requirements engineering tools New exercises including ones suitable for research projects Following in the footsteps of its bestselling predecessor, the text illustrates key ideas associated with requirements engineering using extensive case studies and three common example systems: an airline baggage handling system, a point-of-sale system for a large pet store chain, and a system for a smart home. This edition also includes an example of a wet well pumping system for a wastewater treatment station. With a focus on software-intensive systems, but highly applicable to non-software systems, this text provides a probing and comprehensive review of recent developments in requirements engineering in high integrity systems.
"This book provides integrated chapters on software engineering and enterprise systems focusing on parts integrating requirements engineering, software engineering, process and frameworks, productivity technologies, and enterprise systems"--Provided by publisher.
Innovative tools and techniques for the development and design of software systems are essential to the problem solving and planning of software solutions. Software Design and Development: Concepts, Methodologies, Tools, and Applications brings together the best practices of theory and implementation in the development of software systems. This reference source is essential for researchers, engineers, practitioners, and scholars seeking the latest knowledge on the techniques, applications, and methodologies for the design and development of software systems.