Who has the responsibility to decide what and when to release?

Last post 12:35 pm April 17, 2022
by Vladimir Jovanović
8 replies
Author
Messages
10:08 am April 14, 2022

Hi all, 

I'm currently studying for my PSM-III, after an initial attempt i'm working through my feedback and trying to brush up on what isn't clear to me. 

I'm really struggling to find a definitive answer on something I got feedback on:

"When it comes to releasing, what does Scrum say about it? Who has the responsibility to decide what and when to release?"

I know in the 2017 guide, it was more explicit that releasing was a PO decision, but this has since been removed and there's no real mention of it in the guide. I read Eric Naiburg's comment that it was removed because there may be other factors in an organzation beyond the scrum team that determine release. While this sounds pragmatic and reasonable, it leaves me confused as to the 'correct' scrum answer for who decides when and what to release. 

My gut tells me that releasing is a technical consideration more often than not these days, and even the word 'release' is ambiguous (is something behind a feature flag 'released'?), so given the statement "The Scrum Team is responsible for all product-related activities", the current correct answer is 'the scrum team' is responsible, but this still doesn't feel quite right to me, given the PO is accountable for the value of the product, and releasing is ultimately a value question, not a quality question (given the DoD). 

Am I overthinking this? Does anyone have any insights? 

11:19 am April 14, 2022

Even with the removal of explicit mentions of making the decision to release in the 2020 updates, I'd say say the answer is the Product Owner. However, I'd also add that in addition to what and when to release, the Product Owner is ensures that how the product Increments get released is acceptable to the various stakeholder groups.

The Product Owner is responsible for representing the needs of the stakeholders. If the stakeholders have specific needs regarding how the product Increment is released, deployed, or otherwise made available, the Product Owner is the voice of those needs on the Scrum Team.

Regardless of your release/deployment/delivery approach, the Product Owner is accountable for the ordering the Product Backlog. That is the order in which changes and improvements to the Product are made, and therefore available for delivery to the stakeholders and end users of the product.

If you are operating in a manual batch release environment (including the use of techniques like Continuous Integration) or Continuous Delivery, the Product Owner would make the decision on when the product Increment is delivered. If the team wishes to employ Continuous Deployment, the Product Owner would have to accept or reject that idea, since it impacts how stakeholders receive the product. If the team is using feature flags and controls when they are enabled or disabled, then the Product Owner would make the decision on when to enable the feature in various environments or how many users to enable the feature for.

I would point out that the Product Owner is responsible to all stakeholders. That includes the concerns of the Developers, the developing organization, the customers, and the end users. Different groups will have different concerns about when and how the product is made available. Even within the same group, there may be differing opinions. The Product Owner needs to weigh the available options, their costs and benefits, and reach a decision that maximizes the value delivered for the various stakeholder groups.

12:15 pm April 14, 2022

The PO has overall responsibility to determine product release in as long as the product meets the DOD and adds value to customers. PO's are value maximizers and interact with stakeholders (Internal and external). I therefore believe the PO utilizes feedback from all stakeholders to determine whether or not release the product.   

04:35 pm April 14, 2022

My opinion is that it is the stakeholders that decide when something is ready to be released.  They provide feedback to the Scrum Team that directs the development of the product to something they want/need.  Who is better to say "this is something we can use right now" vs "can we wait until you make the changes we just discussed" vs "this will work for us but until you add that other part, it isn't something we can use yet". 

There are some responsibilities that the Product Owner has to help with this.  First, they need to make sure that the stakeholders are being involved and providing feedback. Second, they need to make sure that the Developers are working on the right things in order to create increments that have the potential to be usable and needed by the stakeholders. 

But the Developers also have responsibilities that play into whether something can be released.  They must ensure that what was built is "production worthy" as defined by the organization.  They have to ensure that it is technically capable of handling the workload that will be put on the product when in Production. They have to ensure that all quality and security standards of the organization are being met.

The decision of what and when to release is multi-faceted with multiple entities having responsibilities.  I'm willing to say that the Product Owner is in the best position to coordinate the business side but the technical side needs to be coordinated by Developers. 

05:33 pm April 14, 2022

If an increment is Done, you would need a darned good reason not to release it. The imperative in Scrum is to release accumulated value and to obtain empirical feedback.

Scrum would never force people to do the wrong thing of course, so if an increment is Done but it no longer makes sense to release it, you wouldn't have to.

I'd suggest that the question isn't who has the responsibility to decide what and when to release, but rather who has the authority to stop it. I'd argue that anyone on the team can pull the emergency cord if they have good reason, and we'd respect and trust them to do so.

12:38 pm April 15, 2022

It depends on what kind of product you have, and how stakeholders and management feel about new releases. To me it seems there are 3 options:

  1. Every Increment is released
  2. PO, together with stakeholders and/or management decide when to release what
  3. Every Increment is released with feature flags set to disabled, and then PO + stakeholders and/or management decide which feature to enable when for which users.

I am partial to feature flags, because you can enable a new feature for a small group of stakeholders and/or users that can provide feedback.

Now, did you mean "release to production" or "release to test"? Because you release to test as soon as possible, there is no need to delay, except ... if you have a good reason.

@Ian: Does "Release" refer to any form of making an increment usable by anyone? I'm sure many people mean "make available to everyone" when they say "release"?

05:27 pm April 15, 2022

Does "Release" refer to any form of making an increment usable by anyone?

I'd suggest it's more specific than that, and means enabling empirical feedback to happen. Whatever environment or context an increment is being released into, useful feedback will need to be obtained from doing so, and the increment will need to be of usable quality.

07:35 pm April 16, 2022

Exactly. Thanks, Ian. I love your answers.

09:49 pm April 16, 2022

These are all great points.

So, in summary, the answer to the initial question: "Who has the responsibility to decide what and when to release?" would be: 

It is the Scrum Team who has the responsibility to release the product.

The Product Owner is responsible for representing the needs of the stakeholders.

 So, if all the stakeholders in unison are for releasing, the Scrum team would do so. 
If not all of the stakeholders are aligned, it is the PO, as a member of the Scrum team, to break the tie and decide to release or not. 
 

I therefore believe the PO utilizes feedback from all stakeholders to determine whether or not release the product.  

We have in the SG2020 twice the appearance of "The Scrum Team and its stakeholders" (the Scrum team and stakeholders together) and also for the Sprint Review: "During the event, the Scrum Team and stakeholders review what was accomplished in the Sprint and what has changed in their environment. Based on this information, attendees collaborate on what to do next." (attendees, i.e. the Scrum Team and stakeholders collaborate on what to do next, e.g. whether to release or not). 
 

I'm willing to say that the Product Owner is in the best position to coordinate the business side but the technical side needs to be coordinated by Developers. 

These roles (yes, roles, as stated in the Glossary) make up the Scrum Team, which is responsible for these two main aspects of releasing. 

I'd suggest that the question isn't who has the responsibility to decide what and when to release, but rather who has the authority to stop it. I'd argue that anyone on the team can pull the emergency cord if they have good reason, and we'd respect and trust them to do so.

If the stakeholders have the authority to stop the release they'd be accountable, but it is the Scrum Team who would be responsible for stoping it.

So, It is the Scrum Team who has the responsibility to release the product.
 

Agree?