Demos
What is Demos?
The practice of demonstrating working software has deep roots in iterative and incremental development methodologies that predated formal Agile frameworks. Early approaches, such as those in the 1970s and 80s, recognized the value of showing progress to users to avoid costly misinterpretations and late-stage rework. With the rise of Extreme Programming (XP) in the late 1990s, the concept of "on-site customer" and continuous feedback loops became central, emphasizing frequent interactions and demonstrations of code. Scrum formalized this practice into the Sprint Review, a dedicated event at the end of each Sprint where the Scrum Team and stakeholders collaborate on what was done in the Sprint and what to do next.
The purpose of a demo extends beyond simply showing what has been built. It serves multiple critical functions:
- Feedback Loop: It provides a structured opportunity for stakeholders to interact with the software, ask questions, and offer insights, ensuring that the product evolves in the right direction.
- Transparency: It makes the team's progress and the state of the product visible to everyone, fostering trust and shared understanding.
- Validation: It allows the team to validate their understanding of requirements and design decisions against real-world stakeholder expectations.
- Adaptation: Based on the feedback received, the Product Owner can adapt the Product Backlog, reprioritizing or refining items to reflect new insights. This embodies the "adapt" part of the "inspect and adapt" principle.
- Collaboration: It encourages active collaboration between the development team, Product Owner, and other stakeholders, breaking down silos and fostering a shared sense of ownership.
- Risk Reduction: By identifying potential issues or misunderstandings early, demos help mitigate the risk of building the wrong product or features that don't deliver value.
- Motivation and Recognition: It allows the development team to showcase their accomplishments and receive recognition for their hard work, boosting morale.
Demos are a cornerstone of Agile's emphasis on delivering value incrementally and continuously. They are closely related to the concept of Information Radiators and Visual Management, as they make progress tangible and visible. While the Sprint Review is the most prominent example of a demo in Scrum, the underlying principle of showcasing working software for feedback can be applied in various contexts, such as informal "show and tell" sessions, pre-release showcases, or even ad-hoc demonstrations for specific stakeholders. The core idea remains consistent: bring the work to life and engage those who will use or benefit from it.
How It Works
Preparation
Effective preparation is key to a successful demo. The development team, often in collaboration with the Product Owner, should:
- Identify Demonstrable Work: Select the features or increments that are truly "Done" according to the team's Definition of Done. This ensures that only shippable quality work is presented.
- Define the Audience: Determine who needs to see the demo. This typically includes the Product Owner, key business stakeholders, end-users, management, and potentially other development teams.
- Set the Context: Briefly outline the goals of the demo and what specific problems the demonstrated features aim to solve. This helps stakeholders understand the value proposition.
- Prepare the Environment: Ensure a stable, reliable environment for the demonstration. This might involve a staging server, a dedicated demo environment, or a local build. All necessary data should be pre-populated to showcase functionality effectively.
- Practice the Demo (Optional but Recommended): Running through the demo beforehand helps identify potential technical glitches, refine the narrative, and ensure a smooth flow. This also helps the team anticipate questions.
- Outline Key Scenarios: Plan specific user stories or use cases to walk through, focusing on how the new functionality delivers value. Avoid getting bogged down in technical implementation details.
Execution
During the demo itself, the focus is on interaction and feedback.
- Introduction: The Product Owner or a team member sets the stage, reminding attendees of the Sprint Goal (if applicable) and the objectives of the work being shown.
-
Demonstration: Team members showcase the working software. This should be an interactive experience, not just a passive viewing.
- Focus on the "what" and "why" from a user or business perspective, rather than the "how" from a technical perspective.
- Encourage stakeholders to interact with the software, ask questions, and provide immediate reactions.
- Demonstrate the functionality in a realistic context, showing how it solves a problem or adds value.
-
Feedback and Discussion: This is the most critical part.
- Actively solicit feedback, observations, and suggestions from all attendees.
- Facilitate open discussion about the demonstrated increment, its implications, and potential future directions.
- Capture all feedback, whether positive, negative, or suggesting new ideas. A designated note-taker can be very helpful.
- Review and Adapt: The team and stakeholders collaboratively review the progress towards the Product Goal and discuss what has been learned. This informs future decisions.
Follow-up
A demo's value is fully realized only when feedback is acted upon.
- Process Feedback: The Product Owner takes the captured feedback and incorporates it into the Product Backlog. This might involve creating new Product Backlog Items, refining existing ones, or re-prioritizing.
- Communicate Decisions: Share the outcomes of the demo and any resulting changes to the Product Backlog with all relevant stakeholders.
- Continuous Improvement: The team reflects on the demo process itself during events like the Sprint Retrospective to identify ways to make future demos more effective.
Key Concepts
Working Software
The core artifact presented during a demo. Agile principles prioritize functional, tested software over extensive documentation. Demos provide tangible proof of progress and value delivery, allowing stakeholders to experience the product directly rather than relying on abstract descriptions.
Feedback Loop
Demos are a critical mechanism for establishing and shortening feedback loops. By regularly exposing the product to stakeholders, teams can gather early and continuous input, enabling rapid course correction and ensuring the product remains aligned with evolving needs and market demands.
Stakeholder Engagement
Active participation from diverse stakeholders—including users, customers, product managers, and business leaders—is vital. Demos foster collaboration and shared understanding, ensuring that the product development is a collective effort driven by real-world needs and perspectives.
Transparency
Demos inherently promote transparency by making the team's progress, challenges, and the actual state of the product visible to all interested parties. This openness builds trust, reduces uncertainty, and ensures everyone has a clear, shared understanding of what is being built.
Inspect and Adapt
This fundamental Agile principle is directly facilitated by demos. The "inspect" phase involves stakeholders examining the product increment, while the "adapt" phase occurs as the Product Owner and team adjust the Product Backlog based on the feedback and insights gained from the inspection.
Definition of Done
The Definition of Done ensures that only truly complete, high-quality, and potentially shippable work is presented during a demo. This standard prevents the demonstration of unfinished or unstable features, maintaining credibility and focusing feedback on fully realized functionality.
Timeboxing
Many Agile events, including demos like the Sprint Review, are Timeboxing to a fixed maximum duration. This practice ensures efficiency, maintains focus, and encourages concise communication, preventing the session from becoming overly long or losing its purpose.
Practical Considerations
Benefits
- Early and Continuous Feedback: Stakeholders can provide input throughout the development lifecycle, allowing for timely adjustments and reducing the cost of change.
- Reduced Risk: Misunderstandings are identified and corrected sooner, preventing the team from building the wrong features or an undesirable product.
- Increased Transparency and Trust: Regular demonstrations build confidence among stakeholders by showing tangible progress and fostering an open dialogue.
- Improved Stakeholder Alignment: All parties gain a shared understanding of the product's evolution and current state, leading to better decision-making.
- Enhanced Team Motivation: Teams gain satisfaction from showcasing their accomplishments and receiving direct feedback on their work.
- Faster Learning and Adaptation: Demos accelerate the learning cycle, allowing the team to quickly incorporate new insights into subsequent iterations.
- Higher Product Quality: Early feedback often leads to better design choices and more robust solutions, as issues are caught before they become deeply embedded.
Limitations
- Time-Consuming: Preparation and execution of demos can take significant time away from development, especially if not managed efficiently.
- Risk of "Show and Tell": If not facilitated correctly, a demo can become a one-way presentation without genuine interaction or valuable feedback.
- Technical Glitches: Live demonstrations carry the risk of technical issues, which can disrupt the flow and undermine confidence.
- Scope Creep: Unmanaged feedback can lead to an influx of new requests, potentially overwhelming the Product Backlog and derailing current priorities.
- Requires Stable Environment: A reliable demo environment is essential, which can sometimes be challenging to maintain.
Common Mistakes
- Demoing Incomplete Work: Presenting features that do not meet the Definition of Done can lead to misleading feedback and erode trust.
- Lack of Preparation: An unprepared demo can appear disorganized, waste time, and fail to highlight the value of the work.
- Not Inviting the Right Stakeholders: Missing key decision-makers or end-users limits the quality and relevance of the feedback received.
- Treating it as a One-Way Presentation: Failing to actively solicit and facilitate discussion turns the demo into a passive viewing experience, missing its primary purpose.
- Failing to Capture or Act on Feedback: If feedback is not recorded or used to inform future work, the demo's value is significantly diminished.
- Focusing on Technical Details: Demos should emphasize business value and user experience, not the intricacies of the underlying code.
- Turning it into a Status Meeting: While progress is shown, the demo's focus should be on the product increment and feedback, not a detailed report of tasks completed.
Best Practices
- Focus on Business Value: Frame the demo around how the new functionality solves user problems or achieves business objectives.
- Keep it Interactive: Encourage questions, discussions, and hands-on interaction from stakeholders. Ask open-ended questions to stimulate dialogue.
- Invite Diverse Stakeholders: Ensure a broad representation of perspectives, including end-users, product owners, business analysts, and management.
- Prepare Thoroughly but Flexibly: Have a clear plan for what to show, but be ready to adapt based on stakeholder interest and questions.
- Timebox Effectively: Adhere to a set time limit to keep the demo focused and respectful of everyone's schedule.
- Capture Feedback Diligently: Designate a note-taker to record all feedback, questions, and suggestions for later processing by the Product Owner.
- Celebrate Successes: Use the demo as an opportunity to acknowledge the team's hard work and achievements.
- Use a Stable Environment: Minimize the risk of technical issues by using a well-tested and reliable demo environment.
- Relate Back to Product Goals: Always connect the demonstrated work back to the overarching product vision and goals.
Real-world Examples
- Scrum Sprint Review: A classic example where a Scrum Team demonstrates the increment completed during the Sprint to stakeholders, gathers feedback, and adapts the Product Backlog.
- Kanban Showcase: A Kanban team might hold informal, on-demand demos of completed features to the Product Owner or key users before moving them to deployment, ensuring continuous flow and feedback.
- Proof-of-Concept (PoC) Demo: An engineering team might demonstrate a working PoC to leadership or potential investors to validate a technical approach or secure funding for a new initiative.
- User Acceptance Testing (UAT) Session: While more formal, UAT often involves users "demoing" the software themselves to validate it against their requirements, with developers observing and gathering feedback.
- Internal Team "Show and Tell": Teams might hold informal internal demos to share knowledge, get peer feedback, or simply celebrate progress before a more formal stakeholder demo.
Frequently Asked Questions
Q: What is the difference between a demo and a Sprint Review?
A: A demo is the act of showcasing working software. The Sprint Review is a specific, formal event in Scrum that includes a demo as its central component, along with broader discussions about the Product Backlog and market conditions.
Q: Who should attend a demo?
A: Key stakeholders, including the Product Owner, end-users, customers, business representatives, management, and potentially other development teams. Anyone who can provide valuable feedback or is impacted by the product's evolution.
Q: How often should we do demos?
A: In Scrum, a formal demo (Sprint Review) occurs at the end of every Sprint (typically every 1-4 weeks). Kanban teams might conduct more frequent, informal demos on demand as features are completed. The frequency should align with the need for feedback and adaptation.
Q: What if there's nothing "new" to demo?
A: If no new features are completed to the Definition of Done, the demo can still be used to discuss progress, review existing functionality, gather feedback on recently deployed features, or discuss future plans. The goal is still inspection and adaptation, even if the increment is small.
Q: How do we handle negative feedback during a demo?
A: Embrace it as valuable input. Thank stakeholders for their honesty, capture the feedback objectively, and avoid defensiveness. Negative feedback is an opportunity to learn and improve the product, guiding future development efforts.
Q: Should the entire team participate in the demo?
A: While not every team member needs to present, the entire development team should ideally be present to hear feedback directly, understand stakeholder reactions, and contribute to discussions. This fosters shared ownership and understanding.
Explore Related Topics
References & Further Reading
- Schwaber, K., & Sutherland, J. (2020). The Scrum Guide™. Scrum.org.
- Beck, K. (1999). Extreme Programming Explained: Embrace Change. Addison-Wesley.
- Highsmith, J. (2002). Agile Software Development Ecosystems. Addison-Wesley.
- Poppendieck, M., & Poppendieck, T. (2003). Lean Software Development: An Agile Toolkit. Addison-Wesley.
- The Agile Alliance. (2001). Manifesto for Agile Software Development. AgileManifesto.org.
- Kniberg, H. (2007). Scrum and XP from the Trenches. C4Media.