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

EPIC: Record All Actions App for Transparency + Replayability #295

Open
14 tasks
nelsonic opened this issue Oct 21, 2022 · 0 comments
Open
14 tasks

EPIC: Record All Actions App for Transparency + Replayability #295

nelsonic opened this issue Oct 21, 2022 · 0 comments
Labels
enhancement New feature or enhancement of existing functionality epic A feature idea that is large enough to require a sprint (5 days) or more and has smaller sub-issues. technical A technical issue that requires understanding of the code, infrastructure or dependencies

Comments

@nelsonic
Copy link
Member

One of the things that has always deeply frustrated me when using tools like JIRA
is the rudimentary notifications and inability to "replay" actions performed by colleagues.
You can see comments on issues and basic status updates. But only the current point-in-time.
Unless you're an "admin", you cannot see history of what has happened in an issue much less in the whole project.
So ... for someone new joining a project with 100+ members and 1000's of issues it's totally overwhelming.

What we want with our product/project is:
complete traceability of every character typed, mouse movement made and action permed
so that it can all be replayed by anyone so that complete context is preserved.

Yes, this transforms a basic "todo list" into the complete history of every action performed in the company/organisation. That's exactly what we want from a "single source of truth". It will naturally imply considerably more data will be collected & stored for each person, item, list etc. But I encourage you to think about it this way: most Apps already capture/store this data as "Analytics". e.g. using a tools like Data.ai, Mixpanel, Segment, Firebase, etc.

The problemz with using 3rd party external analytics tool -
and I've used most of them over the years - is that:

a. Only what you deliberately send to the analytics/tracking service is recorded/tracked. 👩‍💻
So devs either forget to track something and then later cannot see the historical data ... 🤦‍♂️
or devs track everything and the company ends up paying a fortune in storage costs for the "Data Lake". 💸
b. Using a 3rd party tool usually means there are per-user costs
both from the perspective of what you track and then who can view the data so it creates silos.
c. The people using your app almost always don't have any visibility of what is being recorded,
i.e. they the analytics are totally hidden from them. IMO: this is a huge mistake & missed opportunity.

Ask friend-of-dwyl & data science extraordinaire @pratik-IDWT, he can back me up on this. 😉
Trying to apply analytics retrospectively to an App is always more costly [expensive consultants].
Thinking about how to capture actions/events in an App up-front will be one of our USPs longer-term.
Instead of collecting a bunch of data on usage behaviour and keeping it to ourselves,
We will collect the data from the "user's perspective" and make it a feature of our App.
i.e. they can see exactly how they themselves use the App, i.e. personal dashboard/metrics
and in "Team Mode" they can see all the actions performed by their teammates as a replayable log.
I haven't seen this done before in a team collaboration/communication App, have you? 💭

So, to summarise, we want to capture everything:

  • "Pages" viewed - this will be both the URL they viewed and given the timestamp, we can derive the contents of what was viewed by querying the data at that time.
  • Login/logout events - so people know when they logged-in/out
  • Browser/devices used
  • Location data so that people know where they are using the App

    Note: the App will request access to location services and explain why it's useful/relevant
    both from a security and personal analytics perspective. They have the option to not grant permissions.
    We will keep this data very safe and never share/sell it to anyone ever!

  • Characters typed into every field - so that anything can be undone/re-done and replayed later
  • tags applied
  • items added to a list
  • people added/removed to/from a group
  • Mouse Movement on the page (desktop): see: Write a Tutorial From First Principals using Phoenix LiveView to Sync Cursors on a Canvas/Page phoenix-liveview-realtime-cursor-tracking-tutorial#1
  • Clicks/Taps
  • Drags and Drops - see: SPIKE: Drag-and-drop reordering of items in a list learn-alpine.js#4
  • Anything else that you/we deem is relevant to people using the App.

Todo

  • Confirm you understand why we want to do this;
    i.e: we want the people using the App to have deep insights into their own usage of the App.
  • As engineers we need to "work back" from the goal of total transparency/replayability and build accordingly.
@nelsonic nelsonic added enhancement New feature or enhancement of existing functionality technical A technical issue that requires understanding of the code, infrastructure or dependencies epic A feature idea that is large enough to require a sprint (5 days) or more and has smaller sub-issues. labels Oct 21, 2022
@nelsonic nelsonic changed the title EPIC: Recording All Actions Performed in App for Transparency + Replayability EPIC: Record All Actions App for Transparency + Replayability Oct 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or enhancement of existing functionality epic A feature idea that is large enough to require a sprint (5 days) or more and has smaller sub-issues. technical A technical issue that requires understanding of the code, infrastructure or dependencies
Projects
None yet
Development

No branches or pull requests

1 participant