…and following stuff that interests you in an issue tracking system.
I work as a bugmaster in a large project. That means I interact with many people on many topics and try to have a quite hollistic view of what’s going on which requires processing vast amounts of information. Apart from good memory and basic technical understanding (“Wait, this report reminds me of another one which might be related”) I need to follow up and keep track of stuff.
When talking to fellow Wikimedians a common question I receive is: “How do you cope with being subscribed to basically every task in our bug tracker (Wikimedia Phabricator) and receiving those notifications?”
Assuming there is often “How can I cope with all that mail I receive?” hidden between the lines, I’m going to cover that first:
Phabricator options which allow you to follow or collect a list of stuff which interests you:
- Subscribe to a single task to receive notifications about it.
- Become a member of a project and/or watch the project to receive notifications about tasks associated with that project.
- Use flags (similar to bookmarks or a watchlist) to keep a list of tasks (to occasionally re-check?) but not necessarily to receive updates about them.
- Split notifications into email (more important?) vs. web (less important?) notifications (the bell icon in Phabricator’s top bar) via your personal email preferences.
- Advanced: Set up a custom dashboard with your favorite panels (e.g. search query results) as your personal Phabricator frontpage.
- I’m also aware of people going through Phabricator’s activity feed in the morning to check for stuff that interests them.
- (For those using Bugzilla: There is no built-in functionality to watch products or components. You can only watch the activity of other persons or install the separate ComponentWatching extension.
Probably “Personal Tags” in Bugzilla come closest to Flags in Phabricator, if you manage to remember how to search for non-empty fields as I’m not aware of any simple way to display those tags. Bugzilla now also offers comment tags, not to be confused with personal tags. Yeah.)
For completeness: Currently Phabricator does not offer a difference between “I subscribed to this task or got subscribed as I watch the associated project” versus “I got explicitly mentioned in a comment in this task” which can sometimes be unfortunate.
My mail workflow
My workflow is email based. Currently I actually take a look at about 400 to 700 bugmail notifications on a normal workday (I receive way more). Those are the emails that end up as “unread” in a subfolder of my email application (GNOME Evolution).
I apply filters locally, based on projects and/or senders (e.g. bots) of notifications. Phabricator includes a custom “X-Phabricator-Projects” header in every mail notification. As far as i know GMail does not support filtering on custom headers and last time I checked, GMail had a rather “creative” IMAP implementation which did not allow to perform such filtering server-side.
In Bugzilla, managing filter rules was easier as a task has exactly one product and component; further associations are expressed via keywords or whiteboard entries for those who fancy additional UI elements. As Phabricator tasks can have between zero and unlimited projects associated, the order of my local filters (and their criteria) is important.
For some projects and some senders, these filters set the email to “read” status (as in “has been read”) so I might never see these emails.
My default view is to display only unread messages, to order by message threads, and to display new messages on top.
When going through new (unread) messages I mark most messages as read (keyboard shortcuts are your friend). I keep some messages in “unread” message status whenever I plan to re-check or follow up at some point. I occasionally go through them and nag people.
For urgent tasks which need rechecking rather sooner than later, I mostly end up keeping open tabs in my web browser (if those tasks are not prioritized with the highest (“Unbreak Now!”) priority already anyway).
In addition, I also display some associated projects in the message list for faster orientation which software area the thread is about. I use labels for this, which is a gross hack. (I’d love to have an email application that allows displaying values of arbitrary header lines as a column in the list of emails.)
Obviously, such an email based workflow makes it hard to pass work to someone else for a limited time (the so-called “vacation” concept). Some mail services allow proxying though.
Expectations and service level
And the social part: As Wikimedia Phabricator is used by more and more teams (not only by engineering but also by chapters, to plan sessions at conferences, etc.), I clarified which service level to expect from me. So the page that describes my job says:
As the bugwrangler cannot support every single project and task in Phabricator to the same extent, maintainers and teams are more than welcome to contact the bugwrangler to express support requests for managing their tasks.
Do you have better workflows or tips to share?