Author: Alexander Tarlinder
Publisher: Addison-Wesley Professional
Release Date: 2016-09-07
How do successful agile teams deliver bug-free, maintainable software—iteration after iteration? The answer is: By seamlessly combining development and testing. On such teams, the developers write testable code that enables them to verify it using various types of automated tests. This approach keeps regressions at bay and prevents “testing crunches”—which otherwise may occur near the end of an iteration—from ever happening. Writing testable code, however, is often difficult, because it requires knowledge and skills that cut across multiple disciplines. In Developer Testing, leading test expert and mentor Alexander Tarlinder presents concise, focused guidance for making new and legacy code far more testable. Tarlinder helps you answer questions like: When have I tested this enough? How many tests do I need to write? What should my tests verify? You’ll learn how to design for testability and utilize techniques like refactoring, dependency breaking, unit testing, data-driven testing, and test-driven development to achieve the highest possible confidence in your software. Through practical examples in Java, C#, Groovy, and Ruby, you’ll discover what works—and what doesn’t. You can quickly begin using Tarlinder’s technology-agnostic insights with most languages and toolsets while not getting buried in specialist details. The author helps you adapt your current programming style for testability, make a testing mindset “second nature,” improve your code, and enrich your day-to-day experience as a software professional. With this guide, you will Understand the discipline and vocabulary of testing from the developer’s standpoint Base developer tests on well-established testing techniques and best practices Recognize code constructs that impact testability Effectively name, organize, and execute unit tests Master the essentials of classic and “mockist-style” TDD Leverage test doubles with or without mocking frameworks Capture the benefits of programming by contract, even without runtime support for contracts Take control of dependencies between classes, components, layers, and tiers Handle combinatorial explosions of test cases, or scenarios requiring many similar tests Manage code duplication when it can’t be eliminated Actively maintain and improve your test suites Perform more advanced tests at the integration, system, and end-to-end levels Develop an understanding for how the organizational context influences quality assurance Establish well-balanced and effective testing strategies suitable for agile teams
Author: Mike Cohn
Publisher: Addison-Wesley Professional
Release Date: 2004-03-01
Thoroughly reviewed and eagerly anticipated by the agile community, User Stories Applied offers a requirements process that saves time, eliminates rework, and leads directly to better software. The best 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. In User Stories Applied, Mike Cohn 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, Cohn shows how to organize them, prioritize them, and use them for planning, management, and testing. User role modeling: understanding what users have in common, and where they differ Gathering stories: user interviewing, questionnaires, observation, and workshops Working with managers, trainers, salespeople and other "proxies" Writing user stories for acceptance testing Using stories to prioritize, set schedules, and estimate release costs Includes end-of-chapter practice questions and exercises User Stories Applied will be invaluable to every software developer, tester, analyst, and manager working with any agile method: XP, Scrum... or even your own home-grown approach.
Author: Kenneth S. Rubin
Publisher: Addison-Wesley Professional
Release Date: 2012
Genre: Business & Economics
The must-have practitioner's guide and manager's reference to Scrum, today's #1 agile process: fast-track knowledge for every decision-maker * *An ideal quick-start guide for technically savvy professionals and managers with no Scrum/Agile experience: serves a vital need and fills a major market void. *Exceptionally accessible: designed to be read cover-to-cover on one cross-country flight. *Two color format, packed with illustrations and margin notes that draw instant attention to key issues, techniques, pitfalls, and solutions. This easy-to-read, easy-to-use book brings together all the non-technical information managers and practitioners need to evaluate and get started with Scrum, today's #1 Agile process. Filling a major gap in the marketplace, it demystifies Scrum and Agile with simple, fast-paced explanations, more than 100 easy-to-follow illustrations, and quick paragraph summaries that deliver instant insights on key issues, techniques, pitfalls, and solutions. Kenny Rubin draws on more than a decade of experience implementing Scrum and training more than 3,000 Scrum practitioners at all levels. He delivers fasttrack familiarity with all aspects for Scrum for every technically savvy practitioner and manager who hasn't worked with agile methods before. Coverage includes: * *Why so many organizations are adopting Scrum, and how it has evolved. *Essential Scrum/Agile concepts and roles. *How to start a Scrum project or product. *How to manage product backlogs. *Sprints, sprint meetings, and Scrum 'by the numbers' *Scaling and distributing Scrum. *Using Scrum on diverse types of development projects. *Choosing the right Scrum tools The book also includes a detailed glossary that can help every new Scrum participant 'get on the same page' with Scrum's terminology, as well as an up to-date bibliography for further exploration.
How software practitioners can become great Agile leaders: simple rules from real-world practice * *Succeed with Agile by mastering eight crucial leadership skills: activating people, empowering teams, aligning results, organizing structure, enforcing discipline, manipulating context, acquiring knowledge, and measuring performance. *Work more effectively with knowledge workers, while managing risk, uncertainty, and change. *The newest book in Mike Cohn's best-selling Signature Series. In Management 3.0, top Agile manager Jurgen Appelo shows managers how to lead Agile adoption and Agile projects more effectively, while also helping their colleagues develop as leaders in Agile environments. Appelo combines the 'what,' 'why,' and 'how' of agile leadership, presenting background, examples, and powerful, proven techniques. Appelo identifies the eight most crucial agile leadership skills, explaining in detail why they matter and how to develop them - both in yourself and in your colleagues. You'll discover powerful ways to activate people, empower teams, align results, organize structure, enforce discipline, manipulate context, acquire knowledge, and measure performance. Management 3.0 will help aspiring managers and leaders: * *Define their teams' boundaries and constraints, so they can self-organize more effectively. *Anticipate issues teams won't or can't resolve on their own. *Give teams the feed and caring they need, and let them grow on their own. *Sow the seeds for a culture of craftsmanship. *Successfully manage risks and uncertainty in fast-changing projects and environments.
"This remarkable book combines practical advice, ready-to-use techniques, anda deep understanding of why this is the right way to develop software. I haveseen software teams transformed by the ideas in this book." --Mike Cohn, author of Agile Estimating and Planning "As a lean practitioner myself, I have loved and used their first book for years.When this second book came out, I was delighted that it was even better. If youare interested in how lean principles can be useful for software developmentorganizations, this is the book you are looking for. The Poppendiecks offer abeautiful blend of history, theory, and practice." --Alan Shalloway, coauthor of Design Patterns Explained "I've enjoyed reading the book very much. I feel it might even be better than thefirst lean book by Tom and Mary, while that one was already exceptionallygood! Mary especially has a lot of knowledge related to lean techniques inproduct development and manufacturing. It's rare that these techniques areactually translated to software. This is something no other book does well(except their first book)." --Bas Vodde "The new book by Mary and Tom Poppendieck provides a well-written andcomprehensive introduction to lean principles and selected practices for softwaremanagers and engineers. It illustrates the application of the values andpractices with well-suited success stories. I enjoyed reading it." --Roman Pichler "In Implementing Lean Software Development, the Poppendiecks explore moredeeply the themes they introduced in Lean Software Development. They beginwith a compelling history of lean thinking, then move to key areas such asvalue, waste, and people. Each chapter includes exercises to help you apply keypoints. If you want a better understanding of how lean ideas can work withsoftware, this book is for you." --Bill Wake, independent consultant In 2003, Mary and Tom Poppendieck's Lean Software Development introduced breakthrough development techniques that leverage Lean principles to deliver unprecedented agility and value. Now their widely anticipated sequel and companion guide shows exactly how to implement Lean software development, hands-on. This new book draws on the Poppendiecks' unparalleled experience helping development organizations optimize the entire software value stream. You'll discover the right questions to ask, the key issues to focus on, and techniques proven to work. The authors present case studies from leading-edge software organizations, and offer practical exercises for jumpstarting your own Lean initiatives. Managing to extend, nourish, and leverage agile practices Building true development teams, not just groups Driving quality through rapid feedback and detailed discipline Making decisions Just-in-Time, but no later Delivering fast: How PatientKeeper delivers 45 rock-solid releases per year Making tradeoffs that really satisfy customers Implementing Lean Software Development is indispensable to anyone who wants more effective development processes--managers, project leaders, senior developers, and architects in enterprise IT and software companies alike.
Janet Gregory and Lisa Crispin pioneered the agile testing discipline with their previous work, Agile Testing. Now, in More Agile Testing, they reflect on all they've learned since. They address crucial emerging issues, share evolved agile practices, and cover key issues agile testers have asked to learn more about. Packed with new examples from real teams, this insightful guide offers detailed information about adapting agile testing for your environment; learning from experience and continually improving your test processes; scaling agile testing across teams; and overcoming the pitfalls of automated testing. You'll find brand-new coverage of agile testing for the enterprise, distributed teams, mobile/embedded systems, regulated environments, data warehouse/BI systems, and DevOps practices. You'll come away understanding • How to clarify testing activities within the team • Ways to collaborate with business experts to identify valuable features and deliver the right capabilities • How to design automated tests for superior reliability and easier maintenance • How agile team members can improve and expand their testing skills • How to plan “just enough,” balancing small increments with larger feature sets and the entire system • How to use testing to identify and mitigate risks associated with your current agile processes and to prevent defects • How to address challenges within your product or organizational context • How to perform exploratory testing using “personas” and “tours” • Exploratory testing approaches that engage the whole team, using test charters with session- and thread-based techniques • How to bring new agile testers up to speed quickly–without overwhelming them Janet Gregory is founder of DragonFire Inc., an agile quality process consultancy and training firm. Her passion is helping teams build quality systems. For almost fifteen years, she has worked as a coach and tester, introducing agile practices into companies of all sizes and helping users and testers understand their agile roles. She is a frequent speaker at agile and testing software conferences, and is a major contributor to the agile testing community. Lisa Crispin, an experienced agile testing practitioner and coach, regularly leads conference workshops on agile testing and contributes frequently to agile software publications. She enjoys collaborating as part of an awesome agile team to produce quality software. Since 1982, she has worked in a variety of roles on software teams, in a wide range of industries. She joined her first agile team in 2000 and continually learns from other teams and practitioners.
Get past the myths of testing in agile environments - and implement agile testing the RIGHT way. * * For everyone concerned with agile testing: developers, testers, managers, customers, and other stakeholders. * Covers every key issue: Values, practices, organizational and cultural challenges, collaboration, metrics, infrastructure, documentation, tools, and more. * By two of the world's most experienced agile testing practitioners and consultants. Software testing has always been crucial, but it may be even more crucial in agile environments that rely heavily on repeated iterations of software capable of passing tests. There are, however, many myths associated with testing in agile environments. This book helps agile team members overcome those myths -- and implement testing that truly maximizes software quality and value. Long-time agile testers Lisa Crispin and Janet Gregory offer powerful insights for three large, diverse groups of readers: experienced testers who are new to agile; members of newly-created agile teams who aren't sure how to perform testing or work with testers; and test/QA managers whose development teams are implementing agile. Readers will learn specific agile testing practices and techniques that can mean the difference between success and failure; discover how to transition 'traditional' test teams to agile; and learn how to integrate testers smoothly into agile teams. Drawing on extensive experience, the authors illuminate topics ranging from culture to test planning to automated tools. They cover every form of testing: business-facing tests, technology-facing tests, exploratory tests, context-driven and scenario tests, load, stability, and endurance tests, and more. Using this book's techniques, readers can improve the effectiveness and reduce the risks of any agile project or initiative.
This is the eBook of the printed book and may not include any media, website access codes, or print supplements that may come packaged with the bound book. The Fast, Focused, Practical Guide to Excellence with Scrum The Great ScrumMaster: #ScrumMasterWay is your complete guide to becoming an exceptionally effective ScrumMaster and using Scrum to dramatically improve team and organizational performance. Easy to digest and highly visual, you can read it in a weekend…and use it for an entire career. Drawing on 15 years of pioneering experience implementing Agile and Scrum and helping others do so, Zuzana Šochová guides you step by step through all key facets of success as a ScrumMaster in any context. Šochová reviews the ScrumMaster’s responsibilities, introduces her powerful State of Mind model and #ScrumMasterWay approach, and teaches crucial metaskills that every ScrumMaster needs. Learn how to build more effective teams, manage change in Agile environments, and take fulladvantage of the immensely powerful ScrumMaster toolbox. Throughout, Šochová illuminates each concept with practical, proven examples that show how to move from idea to successful execution. Understand the ScrumMaster’s key role in creating high-performance self-organizing teams Master all components of the ScrumMaster State of Mind: teaching/mentoring, removing impediments, facilitation, and coaching Operate effectively as a ScrumMaster at all levels: team, relationships, and the entire system Sharpen key ScrumMaster cognitive strategies and core competencies Build great teams, and improve teams that are currently dysfunctional Drive deeper change in a safer environment with better support for those affected Make the most of Shu Ha Ri, System Rule, Root Cause Analysis, Impact Mapping, and other ScrumMaster tools Whether you’re a long-time Certified ScrumMaster (CSM) or participating in your first Scrum project, this guide will help you leverage world-class insight in all you do and get the outstanding results you’re looking for. Register your product at informit.com/register for convenient access to downloads, updates, and corrections as they become available
Why does poor software quality continue to plague enterprises of all sizes in all industries? Part of the problem lies with the process, rather than individual developers. This practical guide provides ten best practices to help team leaders create an effective working environment through key adjustments to their process. As a follow-up to their popular book, Building Maintainable Software, consultants with the Software Improvement Group (SIG) offer critical lessons based on their assessment of development processes used by hundreds of software teams. Each practice includes examples of goalsetting to help you choose the right metrics for your team. Achieve development goals by determining meaningful metrics with the Goal-Question-Metric approach Translate those goals to a verifiable Definition of Done Manage code versions for consistent and predictable modification Control separate environments for each stage in the development pipeline Automate tests as much as possible and steer their guidelines and expectations Let the Continuous Integration server do much of the hard work for you Automate the process of pushing code through the pipeline Define development process standards to improve consistency and simplicity Manage dependencies on third party code to keep your software consistent and up to date Document only the most necessary and current knowledge
Author: Paul M. Duvall
Publisher: Pearson Education
Release Date: 2007-06-29
For any software developer who has spent days in “integration hell,” cobbling together myriad software components, Continuous Integration: Improving Software Quality and Reducing Risk illustrates how to transform integration from a necessary evil into an everyday part of the development process. The key, as the authors show, is to integrate regularly and often using continuous integration (CI) practices and techniques. The authors first examine the concept of CI and its practices from the ground up and then move on to explore other effective processes performed by CI systems, such as database integration, testing, inspection, deployment, and feedback. Through more than forty CI-related practices using application examples in different languages, readers learn that CI leads to more rapid software development, produces deployable software at every step in the development lifecycle, and reduces the time between defect introduction and detection, saving time and lowering costs. With successful implementation of CI, developers reduce risks and repetitive manual processes, and teams receive better project visibility. The book covers How to make integration a “non-event” on your software development projects How to reduce the amount of repetitive processes you perform when building your software Practices and techniques for using CI effectively with your teams Reducing the risks of late defect discovery, low-quality software, lack of visibility, and lack of deployable software Assessments of different CI servers and related tools on the market The book’s companion Web site, www.integratebutton.com, provides updates and code examples.
Practical, Step-by-Step Scrum Techniques for Improving Processes, Actions, and Outcomes The widespread adoption and success of Scrum can be attributed in large part to its perceived intuitiveness and simplicity. But when new Scrum practitioners attempt to apply Scrum theory and high-level approaches in actual projects, they often find it surprisingly difficult. In Scrum Shortcuts without Cutting Corners, Scrum expert Ilan Goldstein helps you translate the Scrum framework into reality to meet the Scrum challenges your formal training never warned you about. Drawing on his extensive agile experience in a wide range of projects and environments, Goldstein presents thirty proven, flexible shortcuts for optimizing Scrum processes, actions, and outcomes. Each shortcut walks you through applying a Scrum approach to achieve a tangible output. These easy-to-digest, actionable patterns address a broad range of topics including getting started, quality and metrics, team members and roles, managing stakeholders, estimation, continuous improvement and much more. Whatever your role, Scrum Shortcuts without Cutting Corners will help you take your Scrum skills to the next level and achieve better results in any project you participate in.
With Acceptance Test-Driven Development (ATDD), business customers, testers, and developers can collaborate to produce testable requirements that help them build higher quality software more rapidly. However, ATDD is still widely misunderstood by many practitioners. ATDD by Example is the first practical, entry-level, hands-on guide to implementing and successfully applying it. ATDD pioneer Markus Gärtner walks readers step by step through deriving the right systems from business users, and then implementing fully automated, functional tests that accurately reflect business requirements, are intelligible to stakeholders, and promote more effective development. Through two end-to-end case studies, Gärtner demonstrates how ATDD can be applied using diverse frameworks and languages. Each case study is accompanied by an extensive set of artifacts, including test automation classes, step definitions, and full sample implementations. These realistic examples illuminate ATDD’s fundamental principles, show how ATDD fits into the broader development process, highlight tips from Gärtner’s extensive experience, and identify crucial pitfalls to avoid. Readers will learn to Master the thought processes associated with successful ATDD implementation Use ATDD with Cucumber to describe software in ways businesspeople can understand Test web pages using ATDD tools Bring ATDD to Java with the FitNesse wiki-based acceptance test framework Use examples more effectively in Behavior-Driven Development (BDD) Specify software collaboratively through innovative workshops Implement more user-friendly and collaborative test automation Test more cleanly, listen to test results, and refactor tests for greater value If you’re a tester, analyst, developer, or project manager, this book offers a concrete foundation for achieving real benefits with ATDD now–and it will help you reap even more value as you gain experience.
The Provocative and Practical Guide to Coaching Agile Teams As an agile coach, you can help project teams become outstanding at agile, creating products that make them proud and helping organizations reap the powerful benefits of teams that deliver both innovation and excellence. More and more frequently, ScrumMasters and project managers are being asked to coach agile teams. But it’s a challenging role. It requires new skills—as well as a subtle understanding of when to step in and when to step back. Migrating from “command and control” to agile coaching requires a whole new mind-set. In Coaching Agile Teams, Lyssa Adkins gives agile coaches the insights they need to adopt this new mind-set and to guide teams to extraordinary performance in a re-energized work environment. You’ll gain a deep view into the role of the agile coach, discover what works and what doesn’t, and learn how to adapt powerful skills from many allied disciplines, including the fields of professional coaching and mentoring. Coverage includes Understanding what it takes to be a great agile coach Mastering all of the agile coach’s roles: teacher, mentor, problem solver, conflict navigator, and performance coach Creating an environment where self-organized, high-performance teams can emerge Coaching teams past cooperation and into full collaboration Evolving your leadership style as your team grows and changes Staying actively engaged without dominating your team and stunting its growth Recognizing failure, recovery, and success modes in your coaching Getting the most out of your own personal agile coaching journey Whether you’re an agile coach, leader, trainer, mentor, facilitator, ScrumMaster, project manager, product owner, or team member, this book will help you become skilled at helping others become truly great. What could possibly be more rewarding?