Live data from Hacker News

My goal of closing 10% of Emacs bugs (2020)

lars.ingebrigtsen.no

41–50 of 117 posts

Re: My goal of closing 10% of Emacs bugs (2020)

#41

Little bit related: When I come into a company as CTO, and there are too many bugs, I just close all bugs older than 6 months. Usually that's more than 10% (and the org wasn't capable or willing to fix them). Hasn't created any problems yet, but everyone feels better immediately (and we implement ways to not reach high bug levels again).

I'm calling Poe's Law [0] on this one.

I could 100% believe this is genuine, but I would also 100% believe this is a quote from a Dilbert-like comic strip.

[0] https://en.wikipedia.org/wiki/Poe%27s_law

Re: My goal of closing 10% of Emacs bugs (2020)

#42

Unrelated to the echievent the article mentions. But I'm curious, how does emacs fare for modern C++ these days? Is it a good IDE? It always struck me that an editor with the history it has, couldn't handle C++11 syntax in 2014. Or, I didn't want to try to figure out how. To clarify, I include common packages as part of "out of the box". From a quick Google search, it does look like cc-lang might be catching up. And…

lsp-mode or eglot and company combined with clangd works very well. I also just use the built in "c++-mode" for the major mode.

None of these packages are built into Emacs, but eglot and company are on elpa which means they are a "package-install" command away. melpa packages (which lsp-mode is one of) are also pretty trivial to install, it just requires adding melpa to the package archive list variable then installing like normal.

Some Linux distros have these available to install with the system package manager. Even Debian has a decent bit of Emacs packages available. I personally use my distros system package manager to manage my Emacs packages since it has everything I need available.

Re: My goal of closing 10% of Emacs bugs (2020)

#43

Little bit related: When I come into a company as CTO, and there are too many bugs, I just close all bugs older than 6 months. Usually that's more than 10% (and the org wasn't capable or willing to fix them). Hasn't created any problems yet, but everyone feels better immediately (and we implement ways to not reach high bug levels again).

This a well known bug handling workflow known as the "CADT Model".

Re: My goal of closing 10% of Emacs bugs (2020)

#45

Unrelated to the echievent the article mentions. But I'm curious, how does emacs fare for modern C++ these days? Is it a good IDE? It always struck me that an editor with the history it has, couldn't handle C++11 syntax in 2014. Or, I didn't want to try to figure out how. To clarify, I include common packages as part of "out of the box". From a quick Google search, it does look like cc-lang might be catching up. And…

[deleted]

Re: My goal of closing 10% of Emacs bugs (2020)

#46

Unrelated to the echievent the article mentions. But I'm curious, how does emacs fare for modern C++ these days? Is it a good IDE? It always struck me that an editor with the history it has, couldn't handle C++11 syntax in 2014. Or, I didn't want to try to figure out how. To clarify, I include common packages as part of "out of the box". From a quick Google search, it does look like cc-lang might be catching up. And…

I use sublime because it has nice IDE-like features like a file tree, goto-file, goto-symbol, references to, definitions of, but it is doing simple pattern matching; no IDE will be smart enough to figure out the ungodly build system I work with.

If I'm on windows I like visual studio, love the debugger, but for regular code-slinging I find it pretty slow/unresponsive. I also found VSCode totally unresponsive on Linux so I have pretty high expectations for speed.

People I work with use everything from Atom to Vim to VSCode to Eclipse to Emacs to visual studio on a windows machine, network mounting their linux drive. Everyone builds from a terminal because that is the only thing that works.

Re: My goal of closing 10% of Emacs bugs (2020)

#47

Little bit related: When I come into a company as CTO, and there are too many bugs, I just close all bugs older than 6 months. Usually that's more than 10% (and the org wasn't capable or willing to fix them). Hasn't created any problems yet, but everyone feels better immediately (and we implement ways to not reach high bug levels again).

And as a plus, it teaches your customers not to waste their time filing bugs, so your stats look even better! A perfect example of management by excel sheet.

Re: My goal of closing 10% of Emacs bugs (2020)

#48
post #19

Earlier quoted context omitted.

Wh... why?

Because if they’re not resolved yet, there’s no client suffering from them in short term. If they suffer from such a bug, someone will raise it again.

Users don't always complain, they sometimes simply go away.

Re: My goal of closing 10% of Emacs bugs (2020)

#49
post #27

Earlier quoted context omitted.

You can just archive the bugs somewhere, so you can open them again later if you want to. (You don't need to completely delete them or so.) I can see how this can provide psychological benefits to some people.

Yes, if the org is vehemently against it, you can create another project as a "bad bank".

That might actually also be a good technical way to keep track of which bugs were already 'properly' closed, and which were only closed as part of the clean slate.

(Depending on what kind of operations your bug tracker supports or doesn't support.)

Re: My goal of closing 10% of Emacs bugs (2020)

#50

Little bit related: When I come into a company as CTO, and there are too many bugs, I just close all bugs older than 6 months. Usually that's more than 10% (and the org wasn't capable or willing to fix them). Hasn't created any problems yet, but everyone feels better immediately (and we implement ways to not reach high bug levels again).

This is sometimes called a "bug bankrupcty". I'm not that convinced of its usefulness.

Let's apply basic systems theory: if bugs are filed faster than they are resolved, the tendency of the open bug count is toward the infinite. You can declare bankruptcy but it won't change the dynamics of the system: bugs will keep piling up. So you may feel temporary relief, but the underlying problem is still there, causing stress.

You could apply the rule more dynamically: all bugs older than X are always automatically demoted to wontfix status, on the basis that factually, they haven't actually been prioritised for a while. In this case you're using real-world prioritisation decisions to drive the prioritisation status in your bug tracker. This is a more stable solution.

----

But here's where you can take it to the next level. You're de-prioritising a bug for 6 months and then automatically marking it as wontfix. Using "open for 6 months" as the signal to wontfix a bug is relying on a lagging signal.

It would be nice with a leading signal instead, so that you can mark it as wontfix immediately as soon as you know it won't be fixed for six months.

How do you know which bugs fall into the wontfix category immediately? Here's one way:

Make note of the average rate of commits the team is capable of, and decide how much of their time they should spend on bugs, and call the product of that M. Let's say you like the 6 month wontfix threshold, and call this time W. Apply Little's law:

    L = M*W
L is the number of open bugs you can have. Find the top L bugs, and mark the rest as wontfix (or the lowest priority level, depending on what angers your users less.)

Concrete example: my previous team committed stuff at a rate of 6.2/day. They spent 30 % of their time fixing bugs. That's roughly 1.9 bug fixed per day. Six months is on average something like 110 workdays. All in all 1.9 * 110 ~= 200 bugs can be open with this the team at any given time.

Anything other than the most important 200 gets marked wontfix immediately.

----

You might complain that it's difficult to say that a bug is less important than 200 other bugs, and you'd be right. Based on my experience, I'd run this with two priority levels and much stricter thresholds. When I have run the analysis on internal bug databases, bugs that are allowed to linger for more than a month are very rarely fixed anyway.

When you have stricter thresholds, you can't just mark everything else "wontfix", because it makes your users angry when it seems like you won't even bother with most of their reported bugs, so you have to add a third priority level that serves as the "probablywontfix" bucket in practise.

- Priority 1 bugs should be fixed within a week,

- Priority 2 bugs should be fixed within a month.

- Priority 3 bugs come without any sort of SLO.

How many open bugs can we have of the priority levels? Same sort of reasoning, but we also need to allocate effort toward priority 1 and priority 2. Let's say 50/50 because I haven't tried evaluating the optimal split.

- Priority 1 bugs open: 1.9 bugs/day * 0.5 * 5 days ~= 5 open bugs

- Priority 2 bugs open: 1.9 bugs/day * 0.5 * 22 days ~= 20 open bugs

- Priority 3 bugs open: everything else.

This you can actually work with.

Post reply on HN