A Scrum Master friend of mine missed Karaoke night on Saturday because she had to stay until midnight at work getting the release out of the door. Briefly, the story is like this:
It was the release week and the new version of the application should have been on UAT environment on Thursday night. Even if the team worked overtime every day, the release wasn’t ready on Friday evening. Everyone had to come on Saturday because the release of other applications depended on it. The release was finally made on Saturday at midnight, with minor configurations left for Sunday and small bugs for Monday.
Does it sound familiar? I am sure many of you have experienced such a black weekend or night. Or both.
When I heard this story, I had a question: what should a Scrum Master do in this situation? Here are some options:
Short term and immediate actions
1. Emergency retrospective
Even if Scrum requires a retrospective after each sprint, sometimes it’s not enough. This situation triggers an emergency retrospective after the release with the purpose of understanding what has slowed down the release and define actions that will avoid similar issues. A focused meeting allows productive collaboration to find solutions and create the improvement actions.
The Scrum Master role mandates that she will make sure the meeting has the best chances of success. Here are some hints for what she could do:
Set a simple structure for the meeting: state context, gather what went wrong from the team’s members point of view, discuss what corrective actions to take
Facilitate the meeting according to this structure
Avoid the blame game through facilitation, by presenting the events in a neutral way.
Help the team members blow steam before the meeting (as a suggestion, one on one coffee break discussions helps a lot). This comes from understanding of how teams work: it’s rarely someone’s fault for a mistake, usually the system set for the team is not set in a way to avoid those types of mistakes.
2. Change the team policies
Any team respects a set of policies. Scrum teams in particular have things such as: Definition of Done, Definition of Ready, the sprint length, a choice of technical practices they use and so on. These policies should change to reflect what the team has learned from the incident. Here are 4 possible team policies’ changes:
Review the definition of done: A story shouldn’t be marked as done if its deployment information is not clear and not validated by the deployment team. The Scrum Master involves the team in improving this definition. She makes it visible and enforces it to be followed.
Review stories against the definition of done: The stories having impact on the deployment scripts are reviewed with the deployment team before marking them as ready for testing. The Scrum Master arranges for a colleague from Operations (Ops) to participate in these reviews.
Update release scripts every week or when a story is ready for test: For a good release, this practice must be included in the definition of done. After making the definition visible and bringing Ops to collaborate, the Scrum Master checks on the good execution of this practice and takes corrective actions when needed.
Release to test environment more often: To avoid unexpected situations when releasing to production, deploying often on test environment is a solution. If the test environment is a copy of the production environment, then the risk of having a broken release decreases considerably. The Scrum Master has the responsibility to present this idea to the team and get the support of technical leaders to run an experiment.
Actions for the long term
For the deeper issues, we have to pay even more attention. Here are some long-term actions that can solve more problems at once:
3. More automated acceptance tests
A broken release introduces regressions. Regressions should be caught early so that the team has enough time to fix them. One solution is to implement automated acceptance tests and schedule them to run every day on a test environment where last changes were deployed.
For teams that are not eager to try this practice, the Scrum Master can build a case for running an experiment: how about one person from the team (maybe even the Scrum Master) writes a few automated acceptance tests and presents them to the team at the next retrospective? There are two advantages in this case:
It validates that automated acceptance tests are the right solution for this problem in the team’s context
It’s easier to accept the change
One person learns how to implement the automated acceptance tests and can teach the others at a later time
4. Automate builds
There is an alternative to deploy often on test environment: automated builds. The developers and the Ops team can work together to implement this change. They should continue to collaborate in order to keep the scripts up to date. This long-term action can be a success if the Scrum Master has the skills to organize the collaboration between the two teams.
5. Better communication with the Operations (Ops) team
Sometimes, the developers and the operations’ teams have different types of tasks and most of the time they work separately. Organizing their collaboration can therefore present many challenges.
The Scrum Master can start with improving the communication between the two teams with:
Raise the frequency of discussions with the Scrum Master or Team Leader from the Ops team. After a while the communication gets better and the two teams keep themselves up to date about the release-related issues
A developer can team up with an Ops member and release to test environment whenever a story generates deployment changes.
Conclusion
Release management is not easy, but the Scrum Master can have a positive impact upon it by using her skills to obtain the following benefits:
increase the morale of the team after a difficult moment
help the team realize the importance of the retrospective
improve communication with the Ops team
motivate the team to write acceptance tests
enforce best practices inside the team: pair-programming, pair-testing, pair-review
spot bad execution of release practices earlier and take corrective actions right away
lead the team to collaborate with the Ops team throughout the whole development cycle
After the next successful release, you can celebrate with your team during a karaoke night! Until then, share with us what did you do in similar situations.
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":"08d5d3c4b4","quick_view_nonce":"559535b10a","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":"bf3ed881e1","woocommerce_login_nonce":"4367261445","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":"f7666ccbc4"},"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.6","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","is_cookiepolicy_page":""};
//# sourceURL=cmplz-cookiebanner-js-extra