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
“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.
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.
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.
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.
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
This comprehensive, pragmatic tutorial on Agile Development and eXtreme programming, written by one of the founding fathers of Agile Development: Teaches software developers and project managers how to get projects done on time, and on budget using the power of Agile Development; Uses real-world case studies to show how to of plan, test, refactor, and pair program using eXtreme programming; Contains a wealth of reusable C++ and Java code; Focuses on solving customer oriented systems problems using UML and Design Patterns.
"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.
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.
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 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.
"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.
Plan, track, and release great software Key Features Learn to create reports and dashboard for effective project management Implement your development strategy in JIRA. Practices to help you manage the issues in the development team Book Description As teams scale in size, project management can get very complicated. One of the best tools to deal with this kind of problem is JIRA. This book will start by organizing your project requirements and the principles of Agile development to get you started. You will then be introduced to set up a JIRA account and the JIRA ecosystem to help you implement a dashboard for your team's work and issues. You will learn how to manage any issues and bugs that might emerge in the development stage. Going ahead, the book will help you build reports and use them to plan the releases based on the study of the reports. Towards the end, you will come across working with the gathered data and create a dashboard that helps you track the project's development. What you will learn Create your first project (and manage existing projects) in JIRA Manage your board view and backlogs in JIRA Run a Scrum Sprint project in JIRA Create reports (including topic-based reports) Forecast using versions Search for issues with JIRA Query Language (JQL) Execute bulk changes to issues Create custom filters, dashboards, and widgets Create epics, stories, bugs, and tasks Who this book is for This book is for administrators who wants to apply the Agile approach to managing the issues, bugs, and releases in their software development projects using JIRA.
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.
Provides recommendations and case studies to help with the implementation of Scrum.
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.
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.
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
Are we building what people really need in software development?” “Agile software development methods help to reduce the risk of project failure and assure that the delivered system does as intended. Anthony Baah provides the approaches in this book.”
This book explores coordination within and between teams in the context of large-scale agile software development, providing readers a deeper understanding of how coordinated action between teams is achieved in multiteam systems. An exploratory multiple case study with five multiteam systems and a total of 66 interviewees from development teams at SAP SE is presented and analyzed. In addition, the book explores stereotypes of coordination in large-scale agile settings and shares new perspectives on integrating conditions for coordination. No previous study has researched this topic with a similar data set, consisting of insights from professional software development teams. As such, the book will be of interest to all researchers and practitioners whose work involves software product development across several teams.