Skip to content

Triaging issues

Aurélien PIERRE edited this page Jun 15, 2023 · 11 revisions

This page is written for people helping triaging issues on the issue Github tracker.

Preamble

  • Any project has limited resources, the difference between projects will be the threshold.
  • Any project should have clear goals. For Ansel, it is to manage, edit and export collections of RAW images on a desktop computer.
  • Any project has overhead, that is actions requested to meet the goals, although they are not directly the goal and therefore should stay minimal. For Ansel, it is the maintenance of the website, documentation, servers, nightly-built packages, code cleanups, regression tests, cross-OS support, issues triaging, etc.
  • Goals and overhead should be expressed in terms of tasks to perform in order to solve problems (issues),
  • because of resource limitation, tasks have to be ordered depending on their priority.

The following document aims at defining this priority.

Defining good issues

I love the SMART approach. Each task should be:

  • Specific (ex: finding URI of pictures Ansel exported on the filesystem and open them)
  • Measurable (ex: number of clicks/steps required, CPU time to perform the task on some target platform)
  • Actionnable/Achievable (ex: can be integrated on current code base with only minor rewrites, needs only a few hundreds of lines of code)
  • Relevant/Reasonable (ex: is part of a fairly-general photography workflow, would be used by a signicative part of users)
  • Time-bound (ex: requires at most 70 man-hours).

A good issue is one that leads to a SMART task. For Ansel, that means issues focusing on a clearly-defined problem affecting a clearly-defined step of the picture editing workflow ("I have problems doing X because Y and I would like Z").

Questions and general discussions should happen on https://community.ansel.photos.

Bad issues are:

  • too broad ("automatize workflow", "improve UX"),
  • focusing on the means ("use neural network", "extend tone curve") instead of the goal ("mask the sky out", "control saturation selectively"),
  • out of scope ("port to Android", "switch to Qt", "switch to Vulkan")
  • affecting third-party libraries/projects (Rawspeed, Libraw, Exiv2, Lensfun, GPhoto2, Gtk, etc.),
  • too subjective ("please do things like that other software I used in the past and really like")

Clone this wiki locally