Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Export the results of a session #106

Closed
pblanton opened this issue Sep 3, 2020 · 14 comments
Closed

Export the results of a session #106

pblanton opened this issue Sep 3, 2020 · 14 comments
Labels
feature-request A new feature that further extends Poinz' functionality

Comments

@pblanton
Copy link
Contributor

pblanton commented Sep 3, 2020

I'd like to be able to export the results of a Poinz session. The export should be probably in JSON, and it's format should be something like ...

  "poinz-session-name" : "Session name",
  "stories" : 
  [
    {"story-name": "Develop thing one",
      "story-description" : "Thing one is a thing that needs to be developed",
      "notes" : "discussion notes",
      "round-results" : 
      [
        {"name" : "Bob", "result" : "3"},
        {"name" : "Stan", "result" : "3" },
        {"name" : "Sue", "result" : "5"},
        {"name" : "Nick", "result" : "8"},
        {"name" : "Rich", "result" : "5"},
        {"name" : "Amelia", "result" : "3"}
      ]
    },
    {"story-name": "Develop thing two",
      "story-description" : "Thing two is a thing that needs to be developed",
      "notes" : "discussion notes",
      "round-results" : 
      [
        {"name" : "Bob", "result" : "2"},
        {"name" : "Stan", "result" : "3"},
        {"name" : "Sue", "result" : "3"},
        {"name" : "Nick", "result" : "5"},
        {"name" : "Rich", "result" : "2"},
        {"name" : "Amelia", "result" : "1"}
      ]
    },
    {"story-name": "Develop thing three",
      "story-description" : "Thing three is a thing that needs to be developed",
      "notes" : "discussion notes",
      "round-results" : 
      [
        {"name" : "Jim", "result" : "2"},
        {"name" : "Stan", "result" : "1"},
        {"name" : "Rachel", "result" : "3"},
        {"name" : "Nick", "result" : "5"},
        {"name" : "Rich", "result" : "3"},
        {"name" : "Amelia", "result" : "1"}
      ]
    }
  ]
}
@xeronimus xeronimus added the feature-request A new feature that further extends Poinz' functionality label Sep 4, 2020
@xeronimus
Copy link
Contributor

Hey @pblanton ,

thanks so much for this idea / feature request.

I have some question in order to understand the requirements a bit better

  • Do you always want to export all stories in the room? Do you re-use Poinz rooms for multiple sessions and have "old" stories present in the room?
  • Where do you want to add the "Notes" per story. is this an additional (somewhat separate) feature request: "As a user, I want to add comments to a story. in addition to the description field"
  • Do you want to include a flag in the export that shows whether consent was achieved? This information is implicitly already included. (if all "result" values are the same, then consent was achieved)
  • if you start multiple estimation rounds for the same story, currently Poinz does not "remember" (store) previous estimation values.. ist this a must, or is it ok that the export contains the "last" estimation results?
  • should the export be displayed in a text field as formatted json string, or would you expect a file download?

@xeronimus
Copy link
Contributor

some thoughts...

  • optional the user can enter the name of the session (or we could auto generate the name with roomId and date/time)
  • optional the user can select which the stories to export (or we could export all the stories in the room)
  • clarify UI, where to trigger export? if additional selection/data is needed, how to display that "form"

@pblanton
Copy link
Contributor Author

pblanton commented Sep 4, 2020

Thanks for the great feedback!

By the way, we used to do this in a conference room, with physical cards. We are all remote now and will be from now on, and I think many teams are in this same boat, so your app for distributing planning-poker so that we can do it remotely is going to be in high demand.

I'm just going off of what we do in our sessions. We start with a list of stories. One at a time, we then...

  • Discuss the story
  • Vote by playing our cards
  • Discuss any outliers to see why someone may have played an 8 while others played a 3.
  • Re-vote by playing another hand until we are all pretty close and in agreement.
  • Make notes of the discussion and team thoughts on the story.
  • Move to the next story.

Being able to export those sessions so that we can document them in Jira is where I am thinking of an export mechanism.

Your questions:

  • Do you always want to export all stories in the room? Do you re-use Poinz rooms for multiple sessions and have "old" stories present in the room?

No. I think each session should have its own stories.

  • Where do you want to add the "Notes" per story. is this an additional (somewhat separate) feature request: "As a user, I want to add comments to a story. in addition to the description field"

Having a text box at the bottom of the playing area that everyone can edit, would be a good way to capture those discussion notes. I'd think they'd look something like,

"Dan thinks this is a pretty easy feature, but Jacob says that the
integration with the sales engine back-end is non trivial. Suggest
we rope in someone from the sales-engine team to verify / provide
guidance"

  • Do you want to include a flag in the export that shows whether consent was achieved? This information is implicitly already included. (if all "result" values are the same, then consent was achieved)

That might be helpful for some, but we always reach consensus before moving to the next story. If we don't then that story gets kicked to the backlog for further research.

  • if you start multiple estimation rounds for the same story, currently Poinz does not "remember" (store) previous estimation values.. ist this a must, or is it ok that the export contains the "last" estimation results?

I think that is over-thinking it. If we run into an unforseen issue during development, we document the story in Jira and then return to the planning session as if its a new story needing estimation. The fact that we estimated incorrectly is part of that "new" story.

  • should the export be displayed in a text field as formatted json string, or would you expect a file download?

I think a file download.

  • optional the user can enter the name of the session (or we could auto generate the name with roomId and date/time)

Allowing the user to enter a name would be good, but if they left it blank, then an auto-generated name with roomId and date/time would be necessary

  • optional the user can select which the stories to export (or we could export all the stories in the room)

Export all stories in the room. If they decide not to estimate a story, then thy can delete it from the room before estimation, or add a comment to the discussion field.

  • clarify UI, where to trigger export? if additional selection/data is needed, how to display that "form"

I am thinking of an [Export] button at the bottom of the pane where the stories are. Make the export mechanism generic so that users can add new formats to it that would show up as a drop-down on the export button, much like you already use in other places in the app. Maybe plain text, JSON, and CSV would be good options to start.

@pblanton
Copy link
Contributor Author

pblanton commented Sep 4, 2020

I can do some of the work if you'll assign me tasks and provide feedback. I am already running a custom, branched version of PoinZ on our network and have modified it some for our needs. This modification though, goes kind of deep into the system.

xeronimus pushed a commit that referenced this issue Sep 5, 2020
/api/room/ROOM_ID?mode=file    will trigger json file export
/api/room/ROOM_ID       still responds with json data in HTTP Body
@xeronimus
Copy link
Contributor

xeronimus commented Sep 5, 2020

that's cool :)

I would suggest we aim for the MVP, and later we extend..

MVP: User can trigger file download of json file that contains the roomId, all stories and estimations

I quickly added the api endpoint that either returns the data as json (default) and with ?mode=file triggers file download

@xeronimus
Copy link
Contributor

I added an export "Button" to the Menu...

screenshot_userMenu_export_button

@xeronimus
Copy link
Contributor

xeronimus commented Sep 5, 2020

@pblanton If you find the time to checkout branch https://github.com/Zuehlke/poinz/tree/106-session-export and provide some feedback, that would be great! Thanks again for your input!

@pblanton
Copy link
Contributor Author

pblanton commented Sep 5, 2020

Wow. That was fast! That's why the chicks dig you. I'll check it out!

xeronimus pushed a commit that referenced this issue Sep 6, 2020
@pblanton
Copy link
Contributor Author

I have been wrapped up in other tasks, but will download and review this feature probably tomorrow. I'm not ignoring you.
Thanks for the quick work!

@pblanton
Copy link
Contributor Author

Looks good! I thought at first the export button was under the stories in the session, but then I read your comment more better. It works great!

@pblanton
Copy link
Contributor Author

I think the Export Stories button should be at the bottom of the stories pane, like this...

2020-09-18_11-27-23

@pblanton
Copy link
Contributor Author

Maybe don't show it - or gray it out - until there are some stories in the list.

@xeronimus
Copy link
Contributor

I'm not yet convinced that this is the right "spot"... mainly because some users have quite long lists of stories, so the "Export" Card would be only visible if you scroll down...

@xeronimus
Copy link
Contributor

xeronimus commented Sep 19, 2020

btw, which browser are you using? the estimation "badges" on the stories should be circles, not ellipses. looks like a CSS bug...

Edit: found it myself. and fixed it here 4dac6c5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request A new feature that further extends Poinz' functionality
Projects
None yet
Development

No branches or pull requests

2 participants