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.
Xanpan is... a cross between XP and Kanban... is an example of a roll-your-own method... is distilled from Allan Kelly's own experiences running development teams and then helping multiple teams adopt Agile working methods and practices. Xanpan draws ideas from Kanban and Lean, XP and Scrum, product management and business analysis, and many other places. Allan tells the Xanpan story through a series of boards which tell the story of different teams. In between he fills in the principles, practices and thinking which together constitutes Xanpan. Each printed copy contains a code entitling the buyer to a free copy of the electronic version and subsequent updates.
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.
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.
"Agile Excellence for Product Managers" is a plain-speaking guide on how to work with Agile development teams to achieve phenomenal product success. It covers the why and how of agile development (including Scrum, XP, and Lean, ) the role of product management, release planning, and more.
This is the digital version of the printed book (Copyright © 2010). All software projects face the challenges of diverse distances -- temporal, geographical, cultural, lingual, political, historical, and more. Many forms of distance even affect developers in the same room. The goal of this book is to reconcile two mainstays of modern agility: the close collaboration agility relies on, and project teams distributed across different cities, countries, and continents. In Agile Software Development with Distributed Teams, Jutta Eckstein asserts that, in fact, agile methods and the constant communication they require are uniquely capable of solving the challenges of distributed projects. Agility is responsiveness to change -- in other words, agile practitioners maintain flexibility to accommodate changing circumstances and results. Iterative development serves the learning curve that global project teams must scale. This book is not about how to outsource and forget your problems. Rather, Eckstein details how to carefully select development partners and integrate efforts and processes to form a better product than any single contributor could deliver on his or her own. The author de-emphasizes templates and charts and favors topical discussion and exploration. Practitioners share experiences in their own words in short stories throughout the book. Eckstein trains readers to be change agents, to creatively apply the concepts in this book to form a customized distributed project plan for success. Topics include: Understanding Distributed Development The Productivity Myth Ensuring Conceptual Integrity Trust and Mutual Respect Iterations and Releases Using Features to Steer the Development Effort Team Velocity Virtual Retrospectives Dispersed Synchronization Introducing Agility to Global Projects and much more
“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.
Visual Studio Team System (VSTS) gives Microsoft development teams a powerful, integrated toolset for Agile development. Visual Studio Team System: Better Software Development for Agile Teams is a comprehensive, start-to-finish guide to making the most of VSTS in real-world Agile environments. Using a book-length case study, the authors show how to use VSTS to improve every aspect of software development, step by step–from project planning through design and from coding through testing and deployment. Agile consultant Will Stott and Microsoft development lead James Newkirk carefully integrate theory and practice, offering hands-on exercises, practical insights into core Extreme Programming (XP) techniques, and much more. Coverage includes Using VSTS to support the transition to Agile values and techniques Forming Agile teams and building effective process frameworks Leveraging Team Foundation Version Control to help teams manage change and share their code effectively Implementing incremental builds and integration with Team Foundation Build Making the most of VSTS tools for Test-Driven Development and refactoring Bringing agility into software modeling and using patterns to model solutions more effectively Using the FIT integrated testing framework to make sure customers are getting what they need Estimating, prioritizing, and planning Agile projects
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.
Management and enables them to deal with the demands and complexities of modern, agile systems/software/hardware development teams. The book examines the project/program manager beyond the concepts of leadership and aims to connect to employees' sense of identity. The text examines human psychological concepts such as “locus of control,” which will help the manager understand their team members’ view and how best to manage their “world” contributions. The authors cover new management tools and philosophies for agile systems/software/hardware development teams, with a specific focus on how this relates to engineering and computer science. This book also includes practical case studies. Discusses management skills needed as they relate to the advances in software development practices Examines how to manage an agile development team that includes teams across geographically, ethnically, and culturally diverse backgrounds Embraces all of the aspects of modern management and leadership
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.
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
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.”
The #1 guide to using Visual Studio 2010 in team development: insider coverage of this huge release, from the leader of the VSTS team * *Focuses on succeeding with new VS 2010 ALM products in real-world environments, with exclusive 'Lessons Learned at Microsoft'. *Thoroughly covers VS 2010's massive new capabilities for team development. *Contains extensive new coverage of implementing Scrum and related practices. *Covers the entire lifecycle: requirements, architecture, construction, build, test, and more This is the most practical, valuable guide for every member of the software team who intends to run or participate in software projects using Microsoft's Visual Studio 2010. Written by a top Microsoft Visual Studio development team leader and a leading Visual Studio implementation consultant, it focuses on the real challenges development organizations face. The authors identify powerful lessons and best practices learned at Microsoft, and cover the entire development lifecycle, from requirements gathering through testing and beyond. This edition adds extensive coverage of VS 2010's extensive new team features, as well as new coverage of using VS 2010 to actively support teams that practice Scrum. Throughout, the authors focus on showing how to use VS 2010 to reduce waste, increase transparency, and accelerate the flow of value to the end customer. Coverage includes: * *Requirements: vision, user stories, use cases, storyboards, satisfiers/dissatisfiers, and more *Running the project: self-managing teams, metrics, sprints, and dashboards *'Value-up' views of software architecture, construction, and testing. *Build and lab: check-in, team build, continuous integration, build verification tests, reporting, deployment, and lab automation/virtualization. *Troubleshooting the project: overcoming issues ranging from scope creep to build failures
This book examines the possibilities of incorporating elements of user-centred design (UCD) such as user experience (UX) and usability with agile software development. It explores the difficulties and problems inherent in integrating these two practices despite their relative similarities, such as their emphasis on stakeholder collaboration. Developed from a workshop held at NordiCHI in 2014, this edited volume brings together researchers from across the software development, UCD and creative design fields to discuss the current state-of-the-art. Practical case studies of integrating UCD in Agile development across diverse contexts are presented, whilst the different futures for UCD and other design practices in the context of agile software development are identified and explored. Integrating User Centred Design in Agile Development will be ideal for researchers, designers and academics who are interested in software development, user-centred design, agile methodologies and related areas.
Changing Software Development explains why software development is an exercise in change management and organizational intelligence. An underlying belief is that change is learning and learning creates knowledge. By blending the theory of knowledge management, developers and managers will gain the tools to enhance learning and change to accommodate new innovative approaches such as agile and lean computing. Changing Software Development is peppered with practical advice and case studies to explain how and why knowledge, learning and change are important in the development process. Today, managers are pre-occupied with knowledge management, organization learning and change management; while software developers are often ignorant of the bigger issues embedded in their work. This innovative book bridges this divide by linking the software world of technology and processes to the business world of knowledge, learning and change.