- STAFF PICKS
- GIFTS + GIFT CARDS
- SELL BOOKS
- FIND A STORE
More copies of this ISBN
Executable Specifications with Scrum: A Practical Guide to Agile Requirements Discoveryby Mario Cardinal
Synopses & Reviews
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
Effective specifications are essential to any significant software development project, and agile projects are no exception. Traditionally, “user stories” have been central to developing specifications in agile environments, but while these are indispensable, they have not proven sufficient. In Agile Specifications , Mario Cardinal offers simple best practices for creating specifications that are more accurate, can be used to automate program code verification, and significantly improve the likelihood of project success.
Cardinal integrates and simplifies proven techniques from practices such as FIT, ATDD, and BDD, showing how to use “executable examples” to verify that an application under construction meets your specifications – and to verify this repeatedly, at any time.
Cardinal’s techniques help you go beyond merely plotting user stories to actually implementing them effectively (and quantitatively). He helps you establish a ubiquitous language for connecting requirements directly to architecture, and for establishing highly-effective roles for business analysts and architects within agile project teams.
About the Author
Known for many years as an agile coach specialized in software architecture, Mario Cardinal is the co-founder of Slingboards Lab, a young start-up that brings sticky notes to smartphones, tablets and the web for empowering teams to better collaborate. A visionary and an entrepreneur, he likes to seize the opportunities that emerge from the unexpected. His friends like to describe him as someone who can extract the essence of a complicated situation, sort out the core ideas from the incidental distractions, and provide a summary that is easy to understand. For the ninth consecutive year, he has received the Most Valuable Professional (MVP) award from Microsoft. MVP status is awarded to credible technology experts who are among the very best community members willing to share their experience to help others realize their potential.
Table of Contents
PART A: Requirements Specifications
1. Expressing Goals with User Stories
2. Specifying User Stories Using Examples
3. Connecting Examples with Code
4. Verifying Code Correctness with Examples
PART B: Architecture Specifications
5. Partitioning Complexity into Responsibilities
6. Isolating Responsibilities Behind Visible Interfaces Specify the Interface Syntax Specify
7. Specifying Responsibilities with Examples
8. Architecting Domain Responsibilities Connect Requirements with the Domain Layer
9. Prototyping Presentation Responsibilities Connect Requirements with the Presentation
10: Isolating Infrastructure Responsibilities
What Our Readers Are Saying
Computers and Internet » Software Engineering » General