Closed tannerwelsh closed 7 years ago
Logic + UI changes added. Ready for review @LearnersGuild/software
So is there a hidden implication here that stats will be (re-)calculated after each new retro submission? If so, I'd recommend that we prioritize this after we have a pull-based stats UI (https://github.com/LearnersGuild/game-prototype/issues/109) to avoid confusion.
You're right, there is a hidden implication @jeffreywescott. Now unhidden: #145
Prioritization is up to you, but frankly I think this can and should be done before #109. The confusion it may cause is less than the benefit we'd get from fewer arbitrary locks on data collection. Also, people are already confused by how stat calculation works :/
So ... will we still only send one DM w/ stats, or a new DM every time the stats are re-calculated?
Not sure I understand what you're saying jeffrey. We're talking about retro not review. Stats are calculated one time once all team members have submitted their retros. That's when the DM goes out.
Good point, @shereefb -- sorry -- I was confused, indeed.
I like this change. Two pieces of feedback:
I could easily see people accidentally submitting reviews for the current project on Mondays when they intended to submit one for the previous week since the forms will look identical except for the name at the top.
I'm wondering if we should keep the REFLECTION
state (at least for a while). And have it work this way:
REFLECTION
you can't submit reviews for a project in that cycle. REFLECTION
state, typing /retro
pulls up the review survey for your most recent past project. That way when people type retro
on the first day of the cycle the systems acts as they would expect: pulling up the review for the project they just completed, not the one they just started. We could implement this my adding a completed
flag to projects and just setting that flag for all projects in a cycle when the cycle enters REFLECTION
. Then we can default the /retro
command to act on your "most recent completed project". That logic would continue to work as we decouple projects from cycles more; we could just provide a way for teams to mark their project completed
manually. At that point the REFLECTION
state could go away altogether. I suppose we could move to this model now, but it just adds work for all teams right now since currently all projects get completed at the same time.
/review
?Does this change affect how /review
works at all? Should it?
@bundacia thanks for catching that. What if we removed the default retro/review entirely? I.e. we make the #project-id
parameter for both commands required, so people have to specify the project?
@tannerwelsh: I'm not sure that would solve all our problems. We'd still be allowing people to complete a retro for a project that was not complete. Since the surveys would have to be created "on demand" (instead of at /cycle reflect
like they are now). You could run into strange cases like this:
/retro #my-brand-new-project
command on the first day of the cycle. Even if they realize their mistake and don't complete the survey, it's still been generated in the system for that project.So the even though the "just make the project name a required arg" fix would allow us to remove logic around finding the right project, which would simplify the system, we'd still have to add a bit of complexity in other areas to mitigate cases like the one above.
@bundacia, it seems like (if we remove the REFLECTION
state), when a project team changes composition (team members are added or removed), the system would have to delete any retrospectives that were submitted with the previous team composition, because they'd no longer be valid, right? Especially since people cannot change their retro answers once they've submitted them.
Moving back to Review
-- this isn't fully baked.
@jeffreywescott, yeah we'd have to do something like that, which seems a bit complex. I'd rather avoid jumping through all those hoops if we don't need to.
Reading over my suggestion again, I'm realizing we don't actually need the REFLECTION
state at all. We can just change the /cycle reflect
command to mark all of the projects complete. It's not really a state, just an event. Maybe we'd rename the command in that case. It would then be trivial in the future to add commands to mark individual projects complete.
Nice thinking, @bundacia -- so do you think this is now RFI? I'll move it back over if so.
@jeffreywescott, the description would still need to up updated first I think. The Logic Changes section should read:
#### Logic changes
Players can submit a retro for any of their projects that have been marked complete
With this, there is no need for a cycle to have a `REFLECTION` state.
- Remove `REFLECTION` state from cycle model
- Change `/cycle reflect` command so that it just markes all cycle projects complete.
- Allow players to submit retro surveys for any completed project that they have been on (via the `/retro #project` command)
We also need to decide weather to continue to support /retro
without an explicit project name, and update the description if not.
It seems to me that cycles should no longer haves states, and projects should track their states.
Cycles should be aware of their project lists, but projects should not care or know anything about their cycles.
Agree with @bundacia that cycle commands simply trigger their projects into a different state. So /cycle reflect switches all its projects to REFLECTION state, not COMPLETE. Once all retros and enough reviews are submitted for a project it goes into COMPLETE state and no more retros are allowed there.
We're going to need a REFLECTION state for projects to differentiate between projects that have a complete set of retros/reviews. For example, projects in REFLECTION state can nag/remind team members to get their retros in.
/retro command should not infer the project, and project id should be passed to it.
We're going to need a REFLECTION state for projects to differentiate between projects that have a complete set of retros/reviews. For example, projects in REFLECTION state can nag/remind team members to get their retros in.
I could definitely see us needing this in the future, but I'd rather create this extra reflection state for projects once we have a concrete use case for it. Not sure we need it now. Either way that's more of an implementation decision. Either way would support the use case for this issue, allowing players to submit retros for any project independent of cycle state.
Okay, thanks, all. I've updated it as @bundacia suggested. We'll definitely want to do more work around decoupling cycle state from project state in the future, but that's definitely beyond the scope of this particular issue. Moving to RFI, and then eventually implementation.
Issue moved to LearnersGuild/game #629 via ZenHub
Critical Strategic Goals
Benefits
What are the benefits of this change, and whom do they impact?
Description
Describe the change, and provide any needed context.
Players can
/retro #project
at any time to submit a retro for any project they have been on (unless they've already submitted a retro for that project).Logic changes
Players can submit a retro for any of their projects that have been marked complete
With this, there is no need for a cycle to have a
REFLECTION
state.REFLECTION
state from cycle model/cycle reflect
command so that it just marks all cycle projects complete./retro #project
command)UI changes
/retro
/retro
will load survey for the player's most recent completed project, if they have only one. Otherwise, will let them know that they have to choose one of their projects (no change from current UI/UX)/retro
When submitting a retro for a particular project...
If the player has not already submitted a retro for that project: -> open the retro survey for that project
If they player has already submitted a retro for that project: -> show the following screen and error message