Executable Specifications with Scrum


Book Description

Most books about specifications still assume that requirements can be known up front and won’t change much during your project. In today’s “real world,” however, you must specify and build software in the face of high and continuing uncertainty. Scrum and other agile methods have evolved to reflect this reality. Now, there’s a complete guide to specifying software in agile environments when prerequisites are unclear, requirements are difficult to grasp, and anything about your project could change. Long-time agile coach and enterprise architect Mario Cardinal shows how to create executable specifications and use them to test software behavior against requirements. Cardinal shows how to trawl requirements incrementally, step-by-step, using a vision-centric and emergent iterative practice that is designed for agility. Writing for analysts, architects, developers, and managers, Cardinal makes a strong case for the iterative discovery of requirements. Then, he moves from theory to practice, fully explaining the technical mechanisms and empirical techniques you need to gain full value from executable specifications. You’ll learn to connect specifications with software under construction, link requirements to architecture, and automate requirements verification within the Scrum framework. Above all, Cardinal will help you solve the paramount challenge of software development: not only to solve the problem right, but also to solve the right problem. You will learn how to • Establish more effective agile roles for analysts and architects • Integrate and simplify the best techniques from FIT, ATDD, and BDD • Identify “core certainties” on which your project team should rely to ensure requirements discovery • Manage uncertainty by discovering stakeholder desires through short feedback loops • Specify as you go while writing small chunks of requirements • Use storyboarding and paper prototyping to improve conversations with stakeholders • Express stakeholder desires that are requirements with user stories • Refine your user stories, and plan more effective Scrum sprints • Confirm user stories by scripting behaviors with scenarios • Transform scenarios into automated tests that easily confirm your software’s expected behavior as designs emerge and specifications evolve • Ensure higher-quality software by specifying nonfunctional requirements




Specification by Example


Book Description

Summary Specification by Example is an emerging practice for creating software based on realistic examples, bridging the communication gap between business stakeholders and the dev teams building the software. In this book, author Gojko Adzic distills interviews with successful teams worldwide, sharing how they specify, develop, and deliver software, without defects, in short iterative delivery cycles. About the Technology Specification by Example is a collaborative method for specifying requirements and tests. Seven patterns, fully explored in this book, are key to making the method effective. The method has four main benefits: it produces living, reliable documentation; it defines expectations clearly and makes validation efficient; it reduces rework; and, above all, it assures delivery teams and business stakeholders that the software that's built is right for its purpose. About the Book This book distills from the experience of leading teams worldwide effective ways to specify, test, and deliver software in short, iterative delivery cycles. Case studies in this book range from small web startups to large financial institutions, working in many processes including XP, Scrum, and Kanban. This book is written for developers, testers, analysts, and business people working together to build great software. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book. What's Inside Common process patterns How to avoid bad practices Fitting SBE in your process 50+ case studies =============================================== Table of Contents Part 1 Getting started Part 2 Key process patterns Part 3 Case studies Key benefits Key process patterns Living documentation Initiating the changes Deriving scope from goals Specifying collaboratively Illustrating using examples Refining the specification Automating validation without changing specifications Validating frequently Evolving a documentation system uSwitch RainStor Iowa Student Loan Sabre Airline Solutions ePlan Services Songkick Concluding thoughts




Managing Software Requirements the Agile Way


Book Description

Learn how to deliver software that meets your clients’ needs with the help of a structured, end-to-end methodology for managing software requirements and building suitable systems Key FeaturesLearn how to communicate with a project’s stakeholders to elicit software requirementsDeal every phase of the requirement life cycle with pragmatic methods and techniquesManage the software development process and deliver verified requirements using Scrum and KanbanBook Description Difficulty in accurately capturing and managing requirements is the most common cause of software project failure. Learning how to analyze and model requirements and produce specifications that are connected to working code is the single most fundamental step that you can take toward project success. This book focuses on a delineated and structured methodology that will help you analyze requirements and write comprehensive, verifiable specifications. You'll start by learning about the different entities in the requirements domain and how to discover them based on customer input. You’ll then explore tried-and-tested methods such as impact mapping and behavior-driven development (BDD), along with new techniques such as D3 and feature-first development. This book takes you through the process of modeling customer requirements as impact maps and writing them as executable specifications. You’ll also understand how to organize and prioritize project tasks using Agile frameworks, such as Kanban and Scrum, and verify specifications against the delivered code. Finally, you'll see how to start implementing the requirements management methodology in a real-life scenario. By the end of this book, you'll be able to model and manage requirements to create executable specifications that will help you deliver successful software projects. What you will learnKick-start the requirements-gathering and analysis process in your first meeting with the clientAccurately define system behavior as featuresModel and describe requirement entities using Impact Mapping and BDDCreate a feature-based product backlog and use it to drive software developmentWrite verification code to turn features into executable specificationsDeliver the right software and respond to change using either Scrum or KanbanChoose appropriate software tools to provide transparency and traceability to your clientsWho this book is for This book is for software engineers, business analysts, product managers, project managers, and software project stakeholders looking to learn a variety of techniques and methodologies for collating accurate software requirements. A fundamental understanding of the software development life cycle (SDLC) is needed to get started with this book. Although not necessary, basic knowledge of the Agile philosophy and practices, such as Scrum, along with some programming experience will help you to get the most out of this book.




A Scrum Book


Book Description

Building a successful product usually involves teams of people, and many choose the Scrum approach to aid in creating products that deliver the highest possible value. Implementing Scrum gives teams a collection of powerful ideas they can assemble to fit their needs and meet their goals. The ninety-four patterns contained within are elaborated nuggets of insight into Scrum’s building blocks, how they work, and how to use them. They offer novices a roadmap for starting from scratch, yet they help intermediate practitioners fine-tune or fortify their Scrum implementations. Experienced practitioners can use the patterns and supporting explanations to get a better understanding of how the parts of Scrum complement each other to solve common problems in product development. The patterns are written in the well-known Alexandrian form, whose roots in architecture and design have enjoyed broad application in the software world. The form organizes each pattern so you can navigate directly to organizational design tradeoffs or jump to the solution or rationale that makes the solution work. The patterns flow together naturally through the context sections at their beginning and end. Learn everything you need to know to master and implement Scrum one step at a time—the agile way.




Writing Great Specifications


Book Description

Summary Writing Great Specifications is an example-rich tutorial that teaches you how to write good Gherkin specification documents that take advantage of the benefits of specification by example. Foreword written by Gojko Adzic. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology The clearest way to communicate a software specification is to provide examples of how it should work. Turning these story-based descriptions into a well-organized dev plan is another matter. Gherkin is a human-friendly, jargon-free language for documenting a suite of examples as an executable specification. It fosters efficient collaboration between business and dev teams, and it's an excellent foundation for the specification by example (SBE) process. About the Book Writing Great Specifications teaches you how to capture executable software designs in Gherkin following the SBE method. Written for both developers and non-technical team members, this practical book starts with collecting individual feature stories and organizing them into a full, testable spec. You'll learn to choose the best scenarios, write them in a way that anyone can understand, and ensure they can be easily updated by anyone.management. What's Inside Reading and writing Gherkin Designing story-based test cases Team Collaboration Managing a suite of Gherkin documents About the Reader Primarily written for developers and architects, this book is accessible to any member of a software design team. About the Author Kamil Nicieja is a seasoned engineer, architect, and project manager with deep expertise in Gherkin and SBE. Table of contents Introduction to specification by example and Gherkin PART 1 - WRITING EXECUTABLE SPECIFICATIONS WITH EXAMPLES The specification layer and the automation layer Mastering the Given-When-Then template The basics of scenario outlines Choosing examples for scenario outlines The life cycle of executable specifications Living documentation PART 2 - MANAGING SPECIFICATION SUITES Organizing scenarios into a specification suite Refactoring features into abilities and business needs Building a domain-driven specification suite Managing large projects with bounded contexts




BDD in Action


Book Description

Summary BDD in Action teaches you the Behavior-Driven Development model and shows you how to integrate it into your existing development process. First you'll learn how to apply BDD to requirements analysis to define features that focus your development efforts on underlying business goals. Then, you'll discover how to automate acceptance criteria and use tests to guide and report on the development process. Along the way, you'll apply BDD principles at the coding level to write more maintainable and better documented code. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology You can't write good software if you don't understand what it's supposed to do. Behavior-Driven Development (BDD) encourages teams to use conversation and concrete examples to build up a shared understanding of how an application should work and which features really matter. With an emerging body of best practices and sophisticated new tools that assist in requirement analysis and test automation, BDD has become a hot, mainstream practice. About the Book BDD in Action teaches you BDD principles and practices and shows you how to integrate them into your existing development process, no matter what language you use. First, you'll apply BDD to requirements analysis so you can focus your development efforts on underlying business goals. Then, you'll discover how to automate acceptance criteria and use tests to guide and report on the development process. Along the way, you'll apply BDD principles at the coding level to write more maintainable and better documented code. No prior experience with BDD is required. What's Inside BDD theory and practice How BDD will affect your team BDD for acceptance, integration, and unit testing Examples in Java, .NET, JavaScript, and more Reporting and living documentation About the Author John Ferguson Smart is a specialist in BDD, automated testing, and software lifecycle development optimization. Table of Contents PART 1: FIRST STEPS Building software that makes a difference BDD—the whirlwind tour PART 2: WHAT DO I WANT? DEFINING REQUIREMENTS USING BDD Understanding the business goals: Feature Injection and related techniques Defining and illustrating features From examples to executable specifications Automating the scenarios PART 3: HOW DO I BUILD IT? CODING THE BDD WAY From executable specifications to rock-solid automated acceptance tests Automating acceptance criteria for the UI layer Automating acceptance criteria for non-UI requirements BDD and unit testing PART 4: TAKING BDD FURTHER Living Documentation: reporting and project management BDD in the build process




Agile Project Management with Scrum


Book Description

The rules and practices for Scrum—a simple process for managing complex projects—are few, straightforward, and easy to learn. But Scrum’s simplicity itself—its lack of prescription—can be disarming, and new practitioners often find themselves reverting to old project management habits and tools and yielding lesser results. In this illuminating series of case studies, Scrum co-creator and evangelist Ken Schwaber identifies the real-world lessons—the successes and failures—culled from his years of experience coaching companies in agile project management. Through them, you’ll understand how to use Scrum to solve complex problems and drive better results—delivering more valuable software faster. Gain the foundation in Scrum theory—and practice—you need to: Rein in even the most complex, unwieldy projects Effectively manage unknown or changing product requirements Simplify the chain of command with self-managing development teams Receive clearer specifications—and feedback—from customers Greatly reduce project planning time and required tools Build—and release—products in 30-day cycles so clients get deliverables earlier Avoid missteps by regularly inspecting, reporting on, and fine-tuning projects Support multiple teams working on a large-scale project from many geographic locations Maximize return on investment!




Agile Testing


Book Description

Crispin and Gregory define agile testing and illustrate the tester's role with examples from real agile teams. They teach you how to use the agile testing quadrants to identify what testing is needed, who should do it, and what tools might help. The book chronicles an agile software development iteration from the viewpoint of a tester and explains the seven key success factors of agile testing.




Professional Scrum Development with Microsoft Visual Studio 2012


Book Description

Discover how to turn requirements into working software increments—faster and more efficiently—using Visual Studio 2012 in combination with Scrum and Agile engineering practices. Designed for software development teams, this guide delivers pragmatic, role-based guidance for exploiting the capabilities of Application Lifecycle Management (ALM) tools in Visual Studio and Team Foundation Server. Team members will learn proven practices and techniques for implementing Scrum to manage an application’s life cycle, as well as seamlessly plan, manage, and track their Scrum projects.




Requirements Engineering: Foundation for Software Quality


Book Description

This book constitutes the proceedings of the 24th International Working Conference on Requirements Engineering - Foundation for Software Quality, REFSQ 2018, held in Utrecht, The Netherlands, in March 2018. The 23 full and 2 invited talks papers presented in this volume were carefully reviewed and selected from 57 submissions. The papers were organized in topical sections named: RE in Industrial Practice; NLP in Theory and Practice; Empirical Insights into Traceability; Taming Ambiguity; Large-Scale RE; Quality Requirements; User and Job Stories; Requirements Alignment; RE Previews and Visions; Big Data; Mindmapping and Requirements Modeling.