BlakeRhodes / rotato

This is a pairing program to aid those who are pairing up.
https://www.rotato.dev
MIT License
1 stars 3 forks source link

Carrying dev should stay on the same board. #21

Closed BlakeRhodes closed 3 years ago

BlakeRhodes commented 3 years ago

When a dev carries a story sometimes the board they are on is important and should not change.

Given: I have a dev that is carrying a story And: I want that dev to stay on the board When: I rotate the devs Then: The dev that is carrying should stay with that board

Given: I have a dev that is carrying a story And: I have removed the board they were on When: I rotate the devs Then: The the dev that is carrying should be placed on a new board.

I think is a fine default behavior, and seems to be expected by the teams I have talked too.

giunto commented 3 years ago

What should happen in this scenario, when two devs are marked as carrying on the same board?

Screenshot 2021-06-14 at 19-23-16 🔄+🥔=🍐

Under the current behavior, the two carrying devs will be placed into two separate pairs. What should happen to the board in that case?

These are the scenarios I came up with:

giunto commented 3 years ago

Given: I have a dev that is carrying a story And: I have removed the board they were on When: I rotate the devs Then: The the dev that is carrying should be placed on a new board.

This might be a dumb question, but Just to make sure I understand correctly the same logic applies to disabled boards as well as deleted boards right?

BlakeRhodes commented 3 years ago

These are good questions, I think it might make this more complicated. Here are the scenarios I could think of and what I would want to happen.

User marked all the devs as carrying, it seem like what they really want to do is make the board stick. So maybe the correct behavior is for when all the devs on the board are marked as carrying, then the board is marked as sticking. Then we could use the current behavior for sticking to handle that case.

In the case of a tripair where two are carrying (or any number less than all), we would then want them to stay on the same board, but the third dev to be put into rotation like normal.

There is another case where the pair are carrying two different stories. In that case I think human intervention should be used, and we shouldn't guess the intent. If a team wanted to do this they could use the add board functionality to set up the pair carrying two different stories.

I think if someone is carrying and the board is deleted or disabled, the dev should be placed on a random board. The delete or disable should trump what is shown in the display.

Does that make sense?

giunto commented 3 years ago

Yeah I think that clears everything up. Thanks for answering my questions!

giunto commented 3 years ago

I thought I understood all of the conditions you outlined, but I actually have another question around this one:

User marked all the devs as carrying, it seem like what they really want to do is make the board stick. So maybe the correct behavior is for when all the devs on the board are marked as carrying, then the board is marked as sticking. Then we could use the current behavior for sticking to handle that case.

This might be a misunderstanding on my part, but I was under the impression that marking a pair as "sticking" made that pair untouchable. So in the scenario where there is an odd number of devs in rotation (with soloing disabled) and one pair sticking, that pair would never receive the extra dev. After playing around with the application I realized that the sticking pair actually does get the extra dev. The sticking pair isn't marked as sticking in the UI but they are persisted every rotation with a third dev that gets swapped out.

My question is, should we treat sticking pairs as untouchable and assume that the user wouldn't want a third dev to be paired up with that pair, or is the current functionality expected? I guess that question isn't completely related to this issue, but if the current behavior is how it's supposed to behave, would it make sense to just get rid of the sticking functionality altogether since now the carrying functionality does exactly the same thing?

BlakeRhodes commented 3 years ago

I have been thinking about this one, and I think you are right. There is no practical difference now between the two. I only hesitate to remove the sticking feature because I am unsure of how popular the feature is.