How do you feel at the end of a product demo? Happy? Energized? Ready to celebrate? Does this feeling last?
My colleagues and I have seen our share of Scrum Meetings. We wrote previously about the Daily Scrum, and decided to focus on demos this time. Many of the demos we’ve seen had issues, and some issues keep repeating.
If your demo lasts more than 1 hour for a two week sprint, you have this issue (The long demo).
The worst offender has been a team whose demo lasted for 6 hours. (Yes, 6 hours) Everything looked good on paper. The PO and the team were involved. The business people, namely the board members, were very interested and attended. The team would demo the user stories finished during the sprint. The PO would accept them. But then, the board members started fighting over details related to the features. And this took a few hours of everyone’s time.
A long demo means that the facilitator of the meeting hasn’t done his or her job well enough. Typically, the facilitator of all Scrum meetings is the Scrum Master, but this job can be delegated to a volunteer or another team member. This is why we will refer to this role as facilitator, and not to the Scrum Master role specifically.
As the facilitator role is rarely well known and well applied, we took the time to detail it in the following section.
What Is Meeting Facilitation?
Good facilitation helps reaching the purpose of the meeting in the given time. Before the meeting, the facilitator should take care of things such as:
invite people
communicate purpose and agenda
prepare the room, the materials and the technical support for the meeting
During the meeting, the facilitator has to:
communicate the purpose, duration and agenda of the meeting
define the rules of engagement: who can speak, when can they speak, what kind of topics can be discussed and what kind of topics will be discussed separately etc.
keep the agenda
keep the time and aim for finishing on time
enforce the rules of engagement
moderate conflicts
help define next actions, if any
After the meeting, the facilitator has to:
communicate the results of the meeting and the next actions
Although many companies still use meeting minutes, this is typically considered waste in an agile / lean environment, except when requested by laws or regulations. In a typical Agile team it’s enough to communicate the conclusions and to add the next actions to the backlog. As a good practice, make sure that the next actions are assigned immediately to the right people and communicated to all the stakeholders.
Back to The Long Demo
As we’ve seen, the job of the facilitator is to make sure that the demo finishes on time. So, what can go wrong?
Typically, a demo lasts too long because the discussions move outside the scope and purpose of the demo.
The purpose of the demo is to communicate the progress done in the past sprint, to get feedback on the implemented stories, to accept the stories that are done and to reject the stories that are not done. At the end of the demo, the velocity for the last sprint should be computed based on the done stories and clearly communicated inside the team.
The demo is attended by a few active parties:
the team: one or more team members demo each user story done in the sprint
the Product Owner: accepts or rejects the stories
the facilitator: keeps the meeting running smoothly
and a few silent participants:
managers
business representatives
users
customers
etc.
In the case discussed above (The long demo), the facilitator did not communicate effectively the rules of engagement, namely:
The silent participants stay silent during the demo
But, I hear you protest: you spoke before about the importance of feedback! Isn’t this a good time for feedback? I’m glad you asked. If you will watch my talk, you will see that I discuss that good feedback has two characteristics: it is fast and it is high quality. In the case we were discussing, the board members were not focused on providing feedback, but on analyzing and planning the next features. This is not the purpose of the demo, but is rather a meeting that the PO should have after the demo with the interested parties.
So if you want to gather feedback from the managers, marketing professionals, commercials, users, customers etc. during the demo, there’s a very simple thing that can be done:
Provide in the agenda 5′ to anyone who has something to say about the features demoed or about the product as a whole.
But, I hear you again: how can I enforce rules for my managers? Won’t they get upset? Glad you asked. We can guarantee you that even the toughest managers won’t get upset, as long as you explain the reasons behind the rules. After all, they have a choice: keep everyone from working for a few more hours or write down the issues and concerns they have and discuss them separately with the PO, the senior business and technical leaders.
So, how about using the following agenda for your next demo:
“Hello,
I invite you to the Product Demo for <Your Product> on <Date> <Time> <Location>.
In the interest of keeping this meeting effective and finish in max <1 hour / 90′ / 2 hours>, we will use the following rules:
In the first part of the meeting, only the team, the PO and the facilitator (yours truly) can speak.
In the second part of the meeting, we want to hear your feedback. We will however have to limit it to max 5 people from a max of 5′.
In case you need to discuss more after the demo, <PO> will be available for further discussions.
The agenda is the following:
Intro (myself)
Demo User Story 1 – <Jane The Developer>
Demo User Story 2 – <Joe The Tester>
Demo …
Compute velocity
Feedback from participants – 5′ each, up to 5 people
Closing
After the demo, I will update the board with the next actions resulted from the feedback.
Thank you,
<Your Facilitator>”
The Failed Demo
Maybe your meeting doesn’t last that long, simply because none of the stories work when making the demo.
Look, we all know that software is tricky. It’s tough to make things work. It’s even tougher to make them work consistently.
However, the demo is important. And the facilitator has to make sure that it’s properly prepared. This should be easy, since you’ve created a very nice agenda, so you know exactly who should do what. The first thing you should do is:
Make sure that each person who demonstrates a story has a task assigned on the board (and ideally scheduled in the calendar) to prepare the demo.
Since the stories are split between team members, they can prepare in parallel. So, if your demo is at 15:00 every other Wednesday, make sure that 12:00 – 12:30 everyone checks they can demo their story. Why so early? Easy: to have time to fix the story if it doesn’t work.
The next step is to learn what makes the stories fail. Here are some of the most common reasons we found:
someone deployed something before the demo
someone changed something in the code, and the change made other things fail
the server got upgraded and this made things fail
All these things can be easily fixed with a simple rule:
Do not change anything in the last day / half day before demo
Or, at least:
Anything you change in the last day / half day before demo has to be peer reviewed
Isn’t that easy?
Demo Without Feedback
So you’re doing the demo and things work fine. Some things are not quite done, but the PO is nice enough to let them slip. You congratulate each other and move on. You’ve done a great job this sprint!
Or not?
I know that it’s great to have a feeling of accomplishment. Scrum offers an easy way to measure your accomplishments in a sprint: the story points that add up to the velocity of the sprint. You feel great when these points add up, even if you know that some of them are not done according to the Definition of Done.
But here’s the problem: velocity is typically used to predict the product’s advance. So what happens if your PO lets the not-that-done user stories pass and add up to the velocity? Let’s make a simple simulation:
Total story points for backlog: 100
Sprint 1: 7 sp accepted / 5 sp actual
Sprint 2: 10 sp accepted / 7 sp actual
Sprint 3: 15 sp accepted / 7 sp actual
Average velocity: 10 fake / 6 real
Total sprints to finish the backlog: 10 fake / 17 real
Care to guess who will have to work harder to meet the schedule in this scenario?
You are trading your short-term happiness for your long term unhappiness (and you shouldn’t).
The solution is to embrace reality, to take feedback seriously and to act on it. Lack of feedback won’t only create more challenges, but it will stop you from improving. The fact that your team finishes the sprint with stories not done is a great input for retrospective. It’s something you can analyze and improve. It’s definitely annoying that you cannot do it now, but here’s the thing: we cannot change the past. The only thing we can do is to change the way we do things from now on. For a more in-depth look at why we need feedback in Scrum, read this article on the topic.
Embrace feedback. Don’t negotiate doneness. Act on the findings.
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
var astra = {"break_point":"921","isRtl":"","is_scroll_to_id":"1","is_scroll_to_top":"1","is_header_footer_builder_active":"1","responsive_cart_click":"flyout","is_dark_palette":"","revealEffectEnable":"","ajax_url":"https://mozaicworks.com/wp-admin/admin-ajax.php","infinite_count":"2","infinite_total":"0","pagination":"infinite","infinite_scroll_event":"scroll","no_more_post_message":"No more posts to show.","grid_layout":{"desktop":"3","tablet":1,"mobile":1},"site_url":"https://mozaicworks.com","blogArchiveTitleLayout":"","blogArchiveTitleOn":"","show_comments":"Show Comments","enableHistoryPushState":"1","masonryEnabled":"","blogMasonryBreakPoint":"0","shop_infinite_count":"2","shop_infinite_total":"0","shop_total_products":"1","shop_pagination":"number","shop_infinite_scroll_event":"scroll","shop_no_more_post_message":"No more products to show.","shop_result_count_format":"Showing 1\u2013{count} of {total} results","checkout_prev_text":"Back to my details","checkout_next_text":"Proceed to payment","shop_quick_view_enable":"disabled","shop_quick_view_stick_cart":"","shop_quick_view_auto_height":"1","woo_cart_empty_featured_product":"","single_product_qty_ajax_nonce":"f4533d8bb3","quick_view_nonce":"fee635796c","single_product_ajax_add_to_cart":"1","is_cart":"","is_single_product":"","view_cart":"View cart","cart_url":"https://mozaicworks.com/cart","checkout_url":"https://mozaicworks.com/checkout","add_to_cart_options_single":"rt_add_to_cart","is_astra_pro":"1","shopRevealEffectEnable":""};
//# sourceURL=astra-theme-js-js-extra
document.addEventListener( 'wpcf7submit', e => turnstile.reset() );
//# sourceURL=cloudflare-turnstile-js-after
var astraAddon = {"is_elementor_active":"","sticky_active":"1","svgIconClose":"\u003Cspan class=\"ast-icon icon-close\"\u003E\u003C/span\u003E","hf_account_show_menu_on":"hover","hf_account_action_type":"link","hf_account_logout_action":"link","header_main_stick":"1","header_above_stick":"","header_below_stick":"","stick_header_meta":"","header_main_stick_meta":"","header_above_stick_meta":"","header_below_stick_meta":"","sticky_header_on_devices":"both","sticky_header_style":"none","sticky_hide_on_scroll":"1","break_point":"921","tablet_break_point":"768","mobile_break_point":"544","header_main_shrink":"1","header_animation_effect":"none","header_logo_width":"","responsive_header_logo_width":{"desktop":200,"tablet":"","mobile":150},"stick_origin_position":"","site_layout":"ast-full-width-layout","site_content_width":"1070","site_layout_padded_width":"1200","site_layout_box_width":"1024","header_builder_active":"1","component_limit":"10","single_product_sticky_product_image":"","single_product_sticky_product_image_top_offset":"0","cart_sticky_cart_totals":"","order_review_toggle_texts":{"toggle_show_text":"Show Order Summary","toggle_hide_text":"Hide Order Summary"},"check_user_exist_nonce":"bfb3704023","woocommerce_login_nonce":"60706542bc","is_logged_in":"","user_validation_msgs":{"error_msg":"Entered user detail is not a valid.","success_msg":"This user is already registered. Please enter the password to continue."},"checkout_order_review_sticky":"","cartflows_version":"","is_registration_required":"1","is_complete_package":"1","is_header_builder_active":"1"};
//# sourceURL=astra-addon-js-js-extra
var xoo_wsc_params = {"adminurl":"https://mozaicworks.com/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","qtyUpdateDelay":"500","notificationTime":"5000","html":{"successNotice":"\u003Cul class=\"xoo-wsc-notices\"\u003E\u003Cli class=\"xoo-wsc-notice-success\"\u003E\u003Cspan class=\"xoo-wsc-icon-check_circle\"\u003E\u003C/span\u003E%s%\u003C/li\u003E\u003C/ul\u003E","errorNotice":"\u003Cul class=\"xoo-wsc-notices\"\u003E\u003Cli class=\"xoo-wsc-notice-error\"\u003E\u003Cspan class=\"xoo-wsc-icon-cross\"\u003E\u003C/span\u003E%s%\u003C/li\u003E\u003C/ul\u003E"},"strings":{"maxQtyError":"Only %s% in stock","stepQtyError":"Quantity can only be purchased in multiple of %s%","calculateCheckout":"Please use checkout form to calculate shipping","couponEmpty":"Please enter promo code"},"nonces":{"update_shipping_method_nonce":"0ff35ae28c"},"isCheckout":"","isCart":"","sliderAutoClose":"1","shippingEnabled":"","couponsEnabled":"1","autoOpenCart":"yes","addedToCart":"","ajaxAddToCart":"yes","showBasket":"always_show","flyToCart":"yes","flyToCartTime":"1500","productFlyClass":"","refreshCart":"no","fetchDelay":"200"};
//# sourceURL=xoo-wsc-main-js-js-extra
var complianz = {"prefix":"cmplz_","debug":"","user_banner_id":"1","set_cookies":[],"block_ajax_content":"0","banner_version":"22","version":"7.5.4","store_consent":"","do_not_track_enabled":"1","consenttype":"optin","region":"eu","geoip":"","dismiss_timeout":"","disable_cookiebanner":"","soft_cookiewall":"","dismiss_on_scroll":"","cookie_expiry":"365","url":"https://mozaicworks.com/wp-json/complianz/v1/","locale":"lang=en&locale=en_US","set_cookies_on_root":"0","cookie_domain":"","current_policy_id":"26","cookie_path":"/","categories":{"statistics":"statistics","marketing":"marketing"},"tcf_active":"","placeholdertext":"Click to accept {category} cookies and enable this content","css_file":"https://mozaicworks.com/wp-content/uploads/complianz/css/banner-{banner_id}-{type}.css?v=22","page_links":{"eu":{"cookie-statement":{"title":"Cookie Policy ","url":"https://mozaicworks.com/cookie-policy-eu"},"privacy-statement":{"title":"Terms And Conditions","url":"https://mozaicworks.com/terms-and-conditions"},"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}},"us":{"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}},"uk":{"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}},"ca":{"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}},"au":{"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}},"za":{"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}},"br":{"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}}},"tm_categories":"","forceEnableStats":"","preview":"","clean_cookies":"","aria_label":"Click to accept {category} cookies and enable this content","iapi_nav":"fallback"};
//# sourceURL=cmplz-cookiebanner-js-extra