Summary

One of the main aspects for this app is the ability for people to give feedback to each other after a pairing session (Pair Request). Later on in the future we might want to allow other feedback. We should have a way to prompt and save any questions/answers that are given per each user.

Proposals

Feedback Trigger

The first question is, how do we know to send a feedback form to someone after a Pair Request is completed. For this initial release I think we can go with something as simple as: once a pair request is marked as completed (by the author), we can somehow let both the author and invitee know to fill out a feedback form.

Basic Requirements:

  1. Allow feedback to be given on a PairRequest
    1. Make sure this accommodates allowing to give other entities (like a User) feedback directly
  2. Know who the author and receiver are easily
  3. Remind people to fill out feedback for a PairRequest when it is missing (remind like once a day, etc…)

Proposal 1: Pair Request column for when feedback is completed ❌

The idea here is that instead of having to do some janky (with most likely left outer joins) sql to try and figure out which pair requests haven’t had feedback completed, we could just check a field on the pair request. This would add a column like “feedback_status” which can be “completed” or “incomplete”. This would only be marked as completed if both the author + invitee have completed their feedback..

Pros:

  1. Simple to integrate

Cons:

  1. mixing of concerns and heavily tying a pair request to feedback.
  2. Easier query, but still not perfect because you will need to figure out who hasn’t completed their feedback.

Proposal 2: Create a Feedback Object (with status) ❌

This is kind of similar to the first proposal, but the main difference is we move this onto the Feedback object directly AND we create an empty object that just has something like “status: incomplete” and all the questions we are going to ask. Once the user has finished answering the questions it updates (or we can create a new record using like papertrail) that will now include the answers from the user.

Pros:

  1. Is less tied to the feedback (part of cons is it is still technically connected just not as much)