;doc:ISSUES: notes

This commit is contained in:
Simon Michael 2025-04-02 10:31:37 -10:00
parent b8f250bf7d
commit 3ed03a94b3

View File

@ -157,47 +157,91 @@ Some other loose conventions:
<https://lostgarden.home.blog/2008/05/20/improving-bug-triage-with-user-pain/>
describes an interesting method of ranking issues by a single "User Pain" metric.
What adaptation of this might be useful for the hledger project ?
Here's a simplified version that we are using in the hledger issue tracker:
Here's the simplified version that we are using in the hledger issue tracker:
Two [labels](https://github.com/simonmichael/hledger/labels) can be applied to bug reports,
each with levels from 1 to 5,
each beginning with the letter a so as to appear near the front of label lists:
each beginning with the letter `a` so as to appear near the front of label lists,
each with a level from 1 to 5:
**Impact**
Who may be affected by this bug ?
- affects1: Affects almost no one.
- affects2: Affects packagers or developers.
- affects3: Affects just a few users.
- affects4: Affects a significant number of users.
- affects5: Affects most or all users.
- affects1-noone: Affects almost no one.
- affects2-devs: Affects packagers or developers.
- affects3-few: Affects just a few users.
- affects4-many: Affects potentially a significant number of users.
- affects5-most: Affects most or all users.
**Severity**
To people affected, how serious is this bug ?
- annoyance1: Cleanliness/consistency/developer bug. Only perfectionists care.
- annoyance2: Minor to moderate usability/doc bug, reasonably easy to avoid or tolerate.
- annoyance3: New user experience or installability bug. A potential user could fail to get started.
- annoyance4: Major usability/doc bug, crash, or any regression.
- annoyance5: Any loss of user's data, privacy, security, or trust.
- annoyance1-trivial: Cleanliness/consistency/developer bug. Only perfectionists care.
- annoyance2-minor: Minor to moderate usability/doc bug, reasonably easy to avoid or tolerate.
- annoyance3-blocker: New user experience or installability bug. A potential user could fail to get started.
- annoyance4-major: Major usability/doc bug, or any regression or crash.
- annoyance5-critical: Any loss of user's data, privacy, security, or trust.
**User Pain**
The bug's User Pain score is **Impact * Severity / 25**, ranging from 0.04 to 1.
The bug's User Pain score is **Impact * Severity * 4**, so ranging from 4 to 100.
Then, practices like these are possible:
- All open bugs can be listed in order of User Pain (AKA priority).
- Developers can check the Pain List daily and fix the highest pain bugs on the list.
- The team can set easy-to-understand quality bars. For example, they could say “In order to release, we must have no open bugs with more than 0.5 pain.”
- The team can set easy-to-understand quality bars. For example, they could say “In order to release, we must have no open bugs with more than 50 pain.”
- If there are no bugs left above the current quality bar, they can work on feature work.
- If a bug is found that will take more than a week to fix, it can be flagged as a killer bug, for special treatment.
<!--
$ for i in `seq 1 5`; do for s in `seq 1 5`; do echo "$i x $s x 4 = " `ruby -e "p $i*$s*4"`; done; done
1 x 1 x 4 = 4
1 x 2 x 4 = 8
1 x 3 x 4 = 12
1 x 4 x 4 = 16
1 x 5 x 4 = 20
2 x 1 x 4 = 8
2 x 2 x 4 = 16
2 x 3 x 4 = 24
2 x 4 x 4 = 32
2 x 5 x 4 = 40
3 x 1 x 4 = 12
3 x 2 x 4 = 24
3 x 3 x 4 = 36
3 x 4 x 4 = 48
3 x 5 x 4 = 60
4 x 1 x 4 = 16
4 x 2 x 4 = 32
4 x 3 x 4 = 48
4 x 4 x 4 = 64
4 x 5 x 4 = 80
5 x 1 x 4 = 20
5 x 2 x 4 = 40
5 x 3 x 4 = 60
5 x 4 x 4 = 80
5 x 5 x 4 = 100
$ ghc -ignore-dot-ghci -package-env - -e 'import Data.List; import Text.Printf' -e 'let (is,ss) = ([1..5],[1..5]) in mapM_ (printf "%3.f\n") $ nub $ sort [i*s*100/(maximum is * maximum ss) | i<-is, s<-ss]'
4
8
12
16
20
24
32
36
40
48
60
64
80
100
$ for i in `seq 1 5`; do for s in `seq 1 5`; do echo "$i x $s / 25 = " `ruby -e "p $i*$s/25.0"`; done; done
1 x 1 / 25 = 0.04