Timeline view for threaded discussions on incidents
Release Notes
GitLab comments and threads are a great way to collaborate on Incidents, but how can you understand everything that happened in a chronological order from threaded discussions? The ability to transform a threaded discussion into a timeline of comments will help your team understand the sequence of events during a fire-fight and hold an effective post incident review.
Documentation: https://docs.gitlab.com/ee/operations/incident_management/
Problem to solve
As discussed in #218694 (comment 376847539): When incident issues are public, there can be many comments from customers who are impacted (example). These comments can often be very useful in terms of providing information and feedback but they can also make it difficult for those trying to triage the incident to locate the information their team members are posting as they work to resolve the incident.
Original ideas to address this problem:
- Introducing a toggle to the discussion section, which could toggle on/off comments coming from non-project team members. This would allow customers to provide info and would allow people working on the incident to toggle the external comments off, if needed, so they can focus on only on the content that's strictly relevant to mitigating/resolving the incident asap.
- While threaded comments are useful, having them always visible can make it difficult to see the "timeline" of the incident. So, perhaps in addition to the toggle, we could perhaps have an option to show comments in an un-threaded, timeline fashion so that someone working on the incident can quickly see the latest updates.
Intended users
User experience goal
Allow those working to resolve incidents the option of filtering comments so they can more quickly assess the situation and digest the latest updates.
Proposal
Introduce a button to the incident issue type
(and only this issue type - it won't appear on issues generally) that will allow users to see a "timeline view" of the comments. Clicking this button will unthread all comments on the incident into chronological order, displaying the most recent comment first. Here is an example:
Threaded discussion:
- Comment A - yesterday, 4pm
- Reply B - yesterday, 9pm
- Reply C - today, 2pm
- Comment D - today, 9am
- Reply E - today, 11am
- Reply F - today, 5pm
User toggles to timeline view...
Unthreaded, timeline view:
- Reply F - today, 5pm
- Reply C - today, 2pm
- Reply E - today, 11am
- Comment D - today, 9am
- Reply B - yesterday, 9pm
- Reply A - yesterday, 4pm
Further details
The new timeline button will interact with the existing oldest/newest and show all activity dropdowns. Essentially, enabling the timeline view will trigger a change in the dropdowns, but only on the incident being viewed.
- If the timeline button is enabled, the oldest/newest dropdown will update to have "newest first" and "show comments only" selected.
- Those selections will not persist across incidents, just on the incident being viewed.
- If the user manually changes the "oldest/newest" dropdown, the sort order of the timeline view will be adjusted accordingly and that change will impact all incidents (the current behavior).
- If the user changes the selection from "show only comments" to either "show all activity" or "show activity only", the timeline view will be turned off and that change will impact all incidents (the current behavior).
Also, longer-term we'll likely want to introduce additional time constraints here so users can more easily see comments from specific time periods only. That will look like this:
That work is out of scope for this issue.