logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

GitHub-notifications.md (4827B)


  1. ---
  2. date: 2020-03-13
  3. title: "GitHub's new notifications: a case of regressive design"
  4. layout: post
  5. ---
  6. *Disclaimer: I am the founder of a company which competes with GitHub. However,
  7. I still use tools like GitHub, GitLab, and so on, as part of regular
  8. contributions to projects all over the FOSS ecosystem. I don't dislike GitHub,
  9. and I use it frequently in my daily workflow.*
  10. GitHub is rolling out a new notifications UI. A few weeks ago, I started seeing
  11. the option to try it. Yesterday, I received a warning that the old UI will soon
  12. be deprecated. At this pace, I would not be surprised to see the new UI become
  13. mandatory in a week or two. I'm usually optimistic about trying out new
  14. features, but this change worried me right away. I still maintain a few projects
  15. on GitHub, and I frequently contribute to many projects there. Using the
  16. notification page to review these projects is a ritual I usually conduct several
  17. times throughout the workday. So, I held my breath and tried it out.
  18. The new UI looks a lot more powerful initially. The whole page is used to
  19. present your notifications, and there are a lot more buttons to click, many of
  20. them with cute emojis to quickly convey meaning. The page is updated in
  21. real-time, so as you interact with the rest of the website your notifications
  22. page in the other tab will be updated accordingly.
  23. Let's stop and review my workflow using the *old* UI. I drew this beautiful
  24. graphic up in GIMP to demonstrate:
  25. ![](https://cmpwn.com/system/media_attachments/files/000/659/354/original/d9abc4befe1a074c.png)
  26. I open the page, then fix my eyes on the notification titles. I move my mouse to
  27. the right, and while reading titles I move the mouse down, clicking to mark any
  28. notifications as read that I don't need to look at, and watching in my
  29. peripheral vision to see that the mouse hits its mark over the next button. The
  30. notifications are grouped by repository, so I can read the name of the repo then
  31. review all of its notifications in one go. The page is fairly narrow, so reading
  32. the titles usually leads my eyes naturally into reading any other information I
  33. might need, like the avatars of participants or age of the notification.
  34. I made an equally beautiful picture for the new UI[^1]:
  35. ![](https://cmpwn.com/system/media_attachments/files/000/659/353/original/b15f20de0ae35cd3.png)
  36. [^1]: Both of these pictures were sent to GitHub as feedback on the feature, three weeks ago.
  37. This one is a lot harder to scan quickly or get into your muscle memory. The
  38. title of the notification no longer stands out, as it's the same size as the
  39. name of the repo that was affected. They're no longer grouped by repo, either,
  40. so I have to read both every time to get the full context. I then have to move
  41. my eyes *all the way* across the page to review any of those other details,
  42. through vast fields of whitespace, where I can easily lose my place and end up
  43. on a different row.
  44. Once I've decided what to do with it, I have to move my mouse over the row, and
  45. wait for the action buttons to appear. They were invisible a second ago, so I
  46. have to move my mouse again to get closer to the target. Clicking it will mark
  47. it as read. Then, because I have it filtered to unread (because "all"
  48. notifications is really _all_ notifications, and there's no "new" notifications
  49. like the old UI had), the row disappears, making it difficult to undo if it was
  50. a mistake. Then I heave my eyes to the left again to read the next one.
  51. This page is updated in real-time. In the old UI, after I had marked everything
  52. as read that I didn't need to look at, I would middle click on each remaining
  53. notification to open it in a new tab. On the new real-time page, as soon as the
  54. other tab loads, the notification I clicked disappears (again, because I have it
  55. filtered to "unread"). This isn't immediate, though — it takes at least as
  56. long as it takes for the new tab to load. Scanning the list and middle-clicking
  57. every other message becomes a Sisyphean task.
  58. And the giant sticky header that follows you around! A whole 160 pixels, 14% of
  59. my vertical space, is devoted to a new header which shows up on the next page
  60. when I follow through a notification. And it's implemented with JavaScript and
  61. done in a bizzare way, so writing a user style to get rid of it was rather
  62. difficult.
  63. Aside: I tried adding a custom filter to show only pull requests, but it seems
  64. to silently fail, and I just see all of my notifications when I use it.
  65. ---
  66. Anyway, we're probably stuck with this. Now that they've announced the imminent
  67. removal of the old UI, we can probably assume that this feature is on the
  68. non-stop release train. Negative feedback almost never leads to cancelling the
  69. roll-out of a change, because the team's pride is on the line.
  70. I haven't spoken to anyone who likes the new UI. Do you?