"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.
Software Development is moving towards a more agile and more flexible approach. It turns out that the traditional "waterfall" model is not supportive in an environment where technical, financial and strategic constraints are changing almost every day. But what is agility? What are today’s major approaches? And especially: What is the impact of agile development principles on the development teams, on project management and on software architects? How can large enterprises become more agile and improve their business processes, which have been existing since many, many years? What are the limitations of Agility? And what is the right balance between reliable structures and flexibility? This book will give answers to these questions. A strong emphasis will be on real life project examples, which describe how development teams have moved from a waterfall model towards an Agile Software Development approach.
The Art of Agile Development contains practical guidance for anyone considering or applying agile development for building valuable software. Plenty of books describe what agile development is or why it helps software projects succeed, but very few combine information for developers, managers, testers, and customers into a single package that they can apply directly. This book provides no-nonsense advice on agile planning, development, delivery, and management taken from the authors' many years of experience with Extreme Programming (XP). You get a gestalt view of the agile development process, including comprehensive guidance for non-technical readers and hands-on technical practices for developers and testers. The Art of Agile Development gives you clear answers to questions such as: How can we adopt agile development? Do we really need to pair program? What metrics should we report? What if I can't get my customer to participate? How much documentation should we write? When do we design and architect? As a non-developer, how should I work with my agile team? Where is my product roadmap? How does QA fit in? The book teaches you how to adopt XP practices, describes each practice in detail, then discusses principles that will allow you to modify XP and create your own agile method. In particular, this book tackles the difficult aspects of agile development: the need for cooperation and trust among team members. Whether you're currently part of an agile team, working with an agile team, or interested in agile development, this book provides the practical tips you need to start practicing agile development. As your experience grows, the book will grow with you, providing exercises and information that will teach you first to understand the rules of agile development, break them, and ultimately abandon rules altogether as you master the art of agile development. "Jim Shore and Shane Warden expertly explain the practices and benefits of Extreme Programming. They offer advice from their real-world experiences in leading teams. They answer questions about the practices and show contraindications - ways that a practice may be mis-applied. They offer alternatives you can try if there are impediments to applying a practice, such as the lack of an on-site customer. --Ken Pugh, Author of Jolt Award Winner, Prefactoring "I will leave a copy of this book with every team I visit." --Brian Marick, Exampler Consulting
Enterprise-Scale Agile Software Development is the collective sum of knowledge accumulated during the full-scale transition of a 1400-person organization to agile development—considered the largest implementation of agile development and Scrum ever attempted anywhere in the world. Now James Schiel, a certified Scrum trainer and member of the Scrum Alliance, draws from his experience at the helm of that global four-year project to guide you and your organization through the transition. He lends his insight on how you can use Scrum as an organizational framework and implement XP practices to define how software is written and tested. He provides key information and tools to assess potential outcomes and then make the best corresponding choices in any given situation. Schiel sequences chapters to match typical developmental progression, and in addition to practical guidance, he provides a tool kit from which you can take ideas and select what works for you. Covering quality development practices based on ISO 9001, which help you create consistently high-quality software in a cost-efficient manner, this invaluable resource shows you how to— Improve project management practices and product quality assurance Adopt new management methods and requirements Involve your current customers in development, while inviting new ones Much more than a mere "body of knowledge," this volume goes beyond standardizing agile and Scrum practices. It breaks up the process into manageable tasks, illustrating how to set the stage for the change, plan it, and then initiate it. Using the methods and information presented, any organization should be able to achieve a nearly seamless transition to agile.
Traditional software development methods struggle to keep pace with the accelerated pace and rapid change of Internet-era development. Several "agile methodologies" have been developed in response -- and these approaches to software development are showing exceptional promise. In this book, Jim Highsmith covers them all -- showing what they have in common, where they differ, and how to choose and customize the best agile approach for your needs.KEY TOPICS:Highsmith begins by introducing the values and principles shared by virtually all agile software development methods. He presents detailed case studies from organizations that have used them, as well as interviews with each method's principal authors or leading practitioners. Next, he takes a closer look at the key features and techniques associated with each major Agile approach: Extreme Programming (XP), Crystal Methods, Scrum, Dynamic Systems Development Method (DSDM), Lean Development, Adaptive Software Development (ASD), and Feature-Driven Development (FDD). In Part III, Highsmith offers practical advice on customizing the optimal agile discipline for your own organization.MARKET:For all software developers, project managers, and other IT professionals seeking more flexible, effective approaches to developing software.
“Agile Software Development is a highly stimulating and rich book. The author has a deep background and gives us a tour de force of the emerging agile methods.” —Tom Gilb The agile model of software development has taken the world by storm. Now, in Agile Software Development, Second Edition, one of agile’s leading pioneers updates his Jolt Productivity award-winning book to reflect all that’s been learned about agile development since its original introduction. Alistair Cockburn begins by updating his powerful model of software development as a “cooperative game of invention and communication.” Among the new ideas he introduces: harnessing competition without damaging collaboration; learning lessons from lean manufacturing; and balancing strategies for communication. Cockburn also explains how the cooperative game is played in business and on engineering projects, not just software development Next, he systematically illuminates the agile model, shows how it has evolved, and answers the questions developers and project managers ask most often, including · Where does agile development fit in our organization? · How do we blend agile ideas with other ideas? · How do we extend agile ideas more broadly? Cockburn takes on crucial misconceptions that cause agile projects to fail. For example, you’ll learn why encoding project management strategies into fixed processes can lead to ineffective strategy decisions and costly mistakes. You’ll also find a thoughtful discussion of the controversial relationship between agile methods and user experience design. Cockburn turns to the practical challenges of constructing agile methodologies for your own teams. You’ll learn how to tune and continuously reinvent your methodologies, and how to manage incomplete communication. This edition contains important new contributions on these and other topics: · Agile and CMMI · Introducing agile from the top down · Revisiting “custom contracts” · Creating change with “stickers” In addition, Cockburn updates his discussion of the Crystal methodologies, which utilize his “cooperative game” as their central metaphor. If you’re new to agile development, this book will help you succeed the first time out. If you’ve used agile methods before, Cockburn’s techniques will make you even more effective.
"Offers a requirements process that saves time, eliminates rework, and leads directly to better software. A great way to build software that meets users' needs is to begin with 'user stories': simple, clear, brief descriptions of functionality that will be valuable to real users. ... [the author] provides you with a front-to-back blueprint for writing these user stories and weaving them into your development lifecycle. You'll learn what makes a great user story, and what makes a bad one. You'll discover practical ways to gather user stories, even when you can't speak with your users. Then, once you've compiled your user stories, [the author] shows how to organize them, prioritize them, and use them for planning, management, and testing"--Back cover.
More and more Agile projects are seeking architectural roots as they struggle with complexity and scale - and they're seeking lightweight ways to do it Still seeking? In this book the authors help you to find your own path Taking cues from Lean development, they can help steer your project toward practices with longstanding track records Up-front architecture? Sure. You can deliver an architecture as code that compiles and that concretely guides development without bogging it down in a mass of documents and guesses about the implementation Documentation? Even a whiteboard diagram, or a CRC card, is documentation: the goal isn't to avoid documentation, but to document just the right things in just the right amount Process? This all works within the frameworks of Scrum, XP, and other Agile approaches
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.
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 book explores how agile development practices, in particular pair programming, code review and automated testing, help software development teams to perform better. Agile software engineering has become the standard software development paradigm over the last decade, and the insights provided here are taken from a large-scale survey of 80 professional software development teams working at SAP SE in Germany. In addition, the book introduces a novel measurement tool for assessing the performance of software development teams. No previous study has researched this topic with a similar data set comprising insights from more than 450 professional software engineers.
Agile is a relatively recent methodology used in the development process of a project. Therefore, it is important to share new emerging knowledge with researchers and professionals interested in adopting an agile mindset. Emerging Innovations in Agile Software Development focuses on the use of agile methodologies to manage, design, develop, test and maintain software projects. Emphasizing research-based solutions for contemporary software development, this publication is designed for use by software developers, researchers, and graduate-level students in software engineering and project management programs.
The most widely adopted Agile methods in software development have been shown to: improve time to mission value; reduce project risk; reduce cost; improve visibility and better adapt to changing needs. For many organizations that are considering Agile approaches, the need to understanding the absence of detailed requirements as in the waterfall methodology and the presence of user stories and acceptance criteria development is overemphasized. In Agile Software Development, Anthony Baah shows clear evidence of the benefits for using the agile software development concept and the Quality Assurance involvement in the transformation. • PART I: Overview: Transitioning into Agile Transformation  Chapter 1 Practical Experience Gained in Agile Software ......  Chapter 2 Agile Software Development Approach Transformation  Chapter 3 Choosing Between Agile Methodologies  Chapter 4 Agile Tips  Chapter 5 Independent Verification and Validation (IV&V) Process • PART II: Agile Methodology: QA Team Involvement • Chapter 6 QA team’s involvement in the agile transformation • Chapter 7 Case Study: Application Testing • Chapter 8 Reasons for Many Production Defects • Chapter 9 Case Study 2: The Acceptance Criteria Issues Initiative • Chapter 10 Accomplishment This book will help you clearly understand the benefits obtained from implementing Agile. You will find proven solutions you can apply to manage changing priorities, improved project visibility, improved team morale, incremental delivery, faster time to market, better team and business collaboration, software quality enhancement, development process simplification, risk and cost reduction, software maintainability and extensibility enhancement. Whether you’re a developer, tester, QA analyst, scrum master, IT project or program manager, executive, product owner, IT/Business instructor or student, you will find this book very useful.
Agile software development has become an umbrella term for a number of changes in how software developers plan and coordinate their work, how they communicate with customers and external stakeholders, and how software development is organized in small, medium, and large companies, from the telecom and healthcare sectors to games and interactive media. Still, after a decade of research, agile software development is the source of continued debate due to its multifaceted nature and insufficient synthesis of research results. Dingsøyr, Dybå, and Moe now present a comprehensive snapshot of the knowledge gained over many years of research by those working closely with or in the industry. It shows the current state of research on agile software development through an introduction and ten invited contributions on the main research fields, each written by renowned experts. These chapters cover three main issues: foundations and background of agile development, agile methods in practice, and principal challenges and new frontiers. They show the important results in each subfield, and in addition they explain what these results mean to practitioners as well as for future research in the field. The book is aimed at reflective practitioners and researchers alike, and it also can serve as the basis for graduate courses at universities.
For courses in Object-Oriented Design, C++ Intermediate Programming, and Object-Oriented Programming. Written for software engineers in the trenches, this text focuses on the technology-the principles, patterns, and process-that help software engineers effectively manage increasingly complex operating systems and applications. There is also a strong emphasis on the people behind the technology. This text will prepare students for a career in software engineering and serve as an on-going education for software engineers.
Provides recommendations and case studies to help with the implementation of Scrum.
Agile techniques have demonstrated immense potential for developing more effective, higher-quality software. However,scaling these techniques to the enterprise presents many challenges. The solution is to integrate the principles and practices of Lean Software Development with Agile’s ideology and methods. By doing so, software organizations leverage Lean’s powerful capabilities for “optimizing the whole” and managing complex enterprise projects. A combined “Lean-Agile” approach can dramatically improve both developer productivity and the software’s business value.In this book, three expert Lean software consultants draw from their unparalleled experience to gather all the insights, knowledge, and new skills you need to succeed with Lean-Agile development. Lean-Agile Software Development shows how to extend Scrum processes with an Enterprise view based on Lean principles. The authors present crucial technical insight into emergent design, and demonstrate how to apply it to make iterative development more effective. They also identify several common development “anti-patterns” that can work against your goals, and they offer actionable, proven alternatives. Lean-Agile Software Development shows how to Transition to Lean Software Development quickly and successfully Manage the initiation of product enhancements Help project managers work together to manage product portfolios more effectively Manage dependencies across the software development organization and with its partners and colleagues Integrate development and QA roles to improve quality and eliminate waste Determine best practices for different software development teams The book’s companion Web site, www.netobjectives.com/lasd, provides updates, links to related materials, and support for discussions of the book’s content.
Arguably the most important book about managing technology and systems development efforts, this book describes building systems using the deceptively simple process, Scrum. Readers will come to understand a new approach to systems development projects that cuts through the complexity and ambiguity of complex, emergent requirements and unstable technology to iteratively and quickly produce quality software. BENEFITS Learn how to immediately start producing software incrementally regardless of existing engineering practices or methodologies Learn how to simplify the implementation of Agile processes Learn how to simplify XP implementation through a Scrum wrapper Learn why Agile processes work and how to manage them Understand the theoretical underpinnings of Agile processes
There are many books that seek to explain Lean and Agile software that offer theory, techniques, and examples. Michael Levine’s first book, A Tale of Two Systems, is one of the best, synthesizing Lean manufacturing and product development with agile software concepts in an engaging business novel. However, there has been precious little practical guidance for those seeking to change existing organizations to become Lean and Agile, until now. Mr. Levine has followed the successful approach of A Tale of Two Systems, telling two simultaneous intertwined and contrasting stories, to bring organizational transformation to life. Mary O’Connell and James "Wes" Wesleyan, recently engaged to be married, share a commitment to Lean and Agile Software. They have recently become leaders in two very different companies – one, stuck in a slow-moving, unresponsive, process-driven quagmire of a software culture; the other, struggling through the chaos of a sales-driven, process-less swirl. Together with their wise mentor, Neville Roberts, they identify two approaches to making needed changes: Drive People (a top-down approach focused on processes and tools), and People Driven (an enablement approach focused on people and organizations). Mary and Wes evaluate their situations and choose approaches that best fit for them, and the transformations commence. A Tale of Two Transformations differs from many information technology books by grappling with all the complexities of our organizations: the people, the politics, the financials, the processes – in short, the culture from which our Lean and Agile journeys must begin. The change model presented in the flow of the stories is generally applicable, and can help anyone thinking about how to improve their organization.
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.

Best Books