1

Imagine a Scrum team with a canonical sprint of 2 weeks. The product could be anything - backend, frontend, mobile, PC game etc.

The devs write code and unit test it. So each knows their end of the woods but no one has the broader perspective.

The QAs observe metrics on automated tests, A/B tests, support calls, task completion statistics - but they too are engineers, not business people.

The PO knows about the business goals but they do not understand the technical aspects of "BUG X".

So how should a roll-out happen in a sane organization? Who approves it; based on input from whom? Do they use their private keys to deploy or do they write an e-mail to engineering "OK, do it"?

Bonus question: how should a roll-back happen?

Creating tag release. Perhaps it is not needed; perhaps the whole question is better off migrated to another SE.

8
  • 5
    Personally I think a PO (in collaboration with the devs) should be able to understand the impact of BUG X. "10% of users will suffer poor performance", "There's a chance we might corrupt our data and have to spend 3 weeks restoring it", etc Commented Feb 8, 2022 at 14:33
  • 3
    In a sane organization deploys happen every time a commit passes the CI process and business folks turn on feature flags when they are ready for new functionality to become front facing.
    – mxyzplk
    Commented Feb 8, 2022 at 14:50
  • 2
    You're going to get a whole lot of people here being prescriptive about what the "best" way to do things are, (usually with sweeping generalizations that hold no merit) but there are a range of factors that go into this, which makes the question rather unanserable. You should consider asking in the Project Management SE. I'm also going to remove the "release" tag, as in the context of TWP, it makes no sense. Commented Feb 8, 2022 at 15:37
  • 5
    @mxyzplk You are assuming that everybody is developing an internet connected web app. Not everybody does.
    – nvoigt
    Commented Feb 8, 2022 at 15:43
  • 3
    There is no "right" way to do deploys. The whole point of Scrum is to tighten up the feedback loop so the team is constantly self-examining its process and adapting to improve. So I would put the question back to you: Given what your team has learned during its sprints and retrospective conversations, how should your team be doing deployments so you meet your goals?
    – Seth R
    Commented Feb 8, 2022 at 16:29

2 Answers 2

-4

Generally, it's a project management plan which has the timeline for the deployment. As long as the person or the team is concerned, it's either the DevOps (hosted) or the Service/Customer Experience team (on-premise) handles the deployment. There's no hard and fast rule, but in my experience that's the arrangement in many of the product organizations.

To elaborate, the scrum works towards completing features which contribute to a "Milestone" (can also be referred to as a "release" candidate). In the roadmap, the individual work items are mentioned and mapped to that release, so as the work is done, the completion status / percentage is updated. Other than Dev and QA, there are other components as part of the roadmap, like Scale/Load/Performance testing, Security/vulnerability Checks, Licensing checks, Legal and compliance checks, and once all these checks are passed and final release build is generated, it is tagged with "GA" (or generally available) build.

Then, based on the arrangement,

  • either the DevOps team start the deployment process and take care of provisioning the instance, so that the service is up and running and accessible to the end users, or,
  • the builds are handed over to the Service management / Customer Experience team, which then co-ordinates with Customer SPoCs to find out a slot for the deployment / upgrade of the application/service.

To answer "How should a roll-back happen?": That is a defined process for update of any existing / running version, and usually accomplished by creating and following a MoP for the process. The same team in charge of deployment, can take care of the rollback, as and when needed.

6
  • My question was assuming continuous delivery of software increments to an already released piece of software - but I never spelled it out. Anyway Your bullet points address that. Thanks.
    – Vorac
    Commented Feb 8, 2022 at 18:09
  • Can anyone explain which part of the answer you disagree with? Commented Feb 9, 2022 at 11:50
  • 4
    I didn't downvote, but you're describing ONE way to do deployments, which is not universally true. Your answer is totally unsuitable for a variety of businesses. e.g. You assume the existence of a DevOps team and a Customer Experience team for example. Commented Feb 9, 2022 at 16:46
  • @GregoryCurrie Thanks for the note. I think I also mentioned that this is not THE practice/ way, but common for many of the organisation. Sure, there are ways / processes / methods which vary widely, but the approach mentioned in this answer covers a vast majority of the cases. For example: there may be a team of people working as DevOps, or the entire pipeline can be automated with no manual intervention - but either way it's DevOps practice that takes the build to the deployment - is not it? Commented Feb 10, 2022 at 9:33
  • 4
    I disagree that this covers "the vast majority" of cases Commented Feb 10, 2022 at 10:10
9

I think you have some misconception about Scrum

So each knows their end of the woods but no one has the broader perspective.

In this case you don't have a team, you have a collection of people working on the same software. In Scrum the team work implements sprint goals to achieve a product goal each a broader perspective than a task

The QAs observe metrics on automated tests, A/B tests, support calls, task completion statistics - but they too are engineers, not business people.

Support calls, at least nature and volume, and task completion statistic should also be checked by the PO, which is a business role.

The PO knows about the business goals but they do not understand the technical aspects of "BUG X".

Do they truly understand the business if they don't understand how BUG X affect the business? The technical aspect is a business aspect, at least in difficulty and effort to solve. The technical details however should be entrusted to developer and the PO have trust in them (and developers need to earn and keep this trust)

So how should a roll-out happen in a sane organization? Who approves it; based on input from whom? Do they use their private keys to deploy or do they write an e-mail to engineering "OK, do it"?

It depends of the organization and functional context. "Sane" in finance and trading is not the same as e-commerce. Ideally it would be no-one. It just rolls out when it's ready because you have automated everything possible and you just eventually have people with different role/credential to validate some steps. Sometimes you can roll out when a developer click on "push" for it's code. Sometimes there are marketing campaign and you want to hold until a release date.

Bonus question: how should a roll-back happen?

It depends. Either easily or painfully. E-commerce you can roll back a commit and push to prod. A bug in automobile software you have to recall all vehicle or at least have them sent to a workshop for software update.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .