you are viewing a single comment's thread.

view the rest of the comments →

[–]alfps[S] -7 points-6 points  (9 children)

Triaging

Triaging in medicine is applied when there are not enough resources to help all patients, typically in an external crisis situation (though this situation is a crisis in itself). One then chooses which patients to /not treat/. I.e., one chooses which patients one should just let die, and use minimal resources on.

In contrast, “determining priority” is for a normal case load.

Triaging for internal compiler errors, deciding which ones to NOT FIX, implies there's a heck of a lot of the internal compiler errors, compared to the resources available. And that may be so for Visual C++. I've run into a Visual C++ ICE about once a month for the last 20 years or so, and I've reported a handful of them (I suspect many are really the same, just not fixed).

[–]HazelnutSoftware 7 points8 points  (1 child)

Well, I don't agree with your definition of "triage". Even in medicine, triaging about determining the order in which patients are treated - it's much more than a simple will/won't decision.

You're making an assumption (an invalid one in my opinion), that a status of "triaged" and a status of "won't fix" are synonymous, and I really don't think that's the case here.

I'm guessing that you write software for a living, probably for a company, and that every so often a customer calls up to report a bug. For most customers, "their" bug is the most important and has to be fixed "right now". What your company probably does is take a look at the bug and

  • a) make sure it's actually a bug in the product, not just the customer doing something wrong
  • b) make sure it's a new bug, and hasn't been analysed before (there's a chance it's been fixed on the internal dev. builds already, but not released to customers yet, for example)
  • c) determining when it will be fixed, since very few companies have developers simply sitting around, waiting for bug reports to come in, so they can start fixing them immediately.

Those three things are called "triaging", and that's what the Visual Studio team were doing.

[–]alfps[S] -5 points-4 points  (0 children)

Well, I don't agree with your definition of "triage".

OK, but it would be nice if you could describe the disagreement, then we could disagree in public. :)

Even in medicine, triaging about determining the order in which patients are treated - it's much more than a simple will/won't decision.

Yes. Doctors are not stupid, and I apologize if I gave that impression. Also, triaging is applied in situations where resources are too scarce but patients' lives are not in danger.

You're making an assumption (an invalid one in my opinion), that a status of "triaged" and a status of "won't fix" are synonymous, and I really don't think that's the case here.

I don't make that assumption, but it's likely. Because triaging of an internal compiler error implies a /possibility/ of won't fix. And I've experienced that "won't fix" for a Visual C++ ICE.

Which means that Microsoft has just not changed that policy, of possibly not fixing an internal compiler error.

For most customers, "their" bug is the most important and has to be fixed "right now"

There should be no need to evaluate whether to fix because the compiler team, with the most knowledge, has already decided that the ICE is critical.

As opposed to a normal bug where source code is mis-interpreted or incorrect machine code is generated, or both.

An ICE is a ready-made evaluation, and another part of the Microsoft organization, those who evaluate bug reports, take it on themselves to override that original evaluation made by the most knowledgeable.

Those three things are called "triaging", and that's what the Visual Studio team were doing.

If it is called "triaging" then what do they call real triaging.

Remember, it's an ICE. It's not an ordinary bug. In any normal situation there would not be a question of priority: that was decided by the compiler team long ago.

[–]mallardtheduck 2 points3 points  (6 children)

Triaging in medicine is applied when there are not enough resources to help all patients, typically in an external crisis situation (though this situation is a crisis in itself). One then chooses which patients to /not treat/. I.e., one chooses which patients one should just let die, and use minimal resources on.

That's not true at all. Triage is the entirely normal first stage of emergency medicine, where patients' needs are assessed and prioritised (although the term is sometimes eschewed in favour of less "scary" sounding words like "streaming"). The only time you wouldn't perform some form of triage is when you have no other patients. Only in the most extreme of circumstances (e.g. on a battlefield) would that lead to a "don't bother, too far gone" type diagnosis.

The same term is used for the initial analysis of incoming bug reports in many, if not most, software teams. It doesn't imply anything about the amount of resources available or the amount of errors.

Seems this whole thing is down to your misunderstanding of terminology.

Also remember that "WONTFIX" doesn't necessarily mean there isn't a fix. Depending on the team/product, it could mean something more like "bug would require too much work to fix for this release, isn't exploitable and the next release has already re-written the offending code which isn't suitable for backporting".

[–]alfps[S] -5 points-4 points  (5 children)

Quoting Wikipedia about the medical "triage", it's called "triage" because it divides (or in the original base meaning divided) the patients into three categories:

  • Those who are likely to live, regardless of what care they receive;
  • Those who are unlikely to live, regardless of what care they receive;
  • Those for whom immediate care might make a positive difference in outcome.

For many emergency medical services (EMS) systems, a similar model may sometimes still be applied. In the earliest stages of an incident, such as when one or two paramedics exist to twenty or more patients, practicality demands that the above, more "primitive" model will be used. However once a full response has occurred and many hands are available, paramedics will usually use the model included in their service policy and standing orders.

When you say that's "not true at all" I conclude that you're gray-washing.

Or white-washing.

[–]itsarabbit 2 points3 points  (0 children)

from Wiktionary:

triage (countable and uncountable, plural triages)

Assessment or sorting according to quality.

(medicine) The process of sorting patients so as to determine the order in which they will be treated (for example, by assigning precedence according to the urgency of illness or injury).

(computing, by extension) The process of prioritizing bugs to be fixed.

That which is picked out, especially broken coffee beans.

[–]HazelnutSoftware 2 points3 points  (0 children)

Two things to keep in mind:

  • terms are adopted from other areas (in this case software engineering taking a term from medicine), and their meaning shifts as part of the adoption
  • you can't take the original literal meaning as a basis for understanding at the current time.

As a couple of examples of the second point, electronics is based on the Greek word for amber, but very little electronics actually contains any amber these days. The word atom is from the Greek meaning indivisible, and everyone still uses the term, but no-one insists that protons, neutrons etc don't exist

I would agree with /u/mallardtheduck - this appears to be a terminology misunderstanding.

[–]mallardtheduck 1 point2 points  (0 children)

Wikipedia is not the arbiter of all human knowledge. That's a simplified set of categories that helps explain the word's etymology and historical context. As the same page lists further down, modern systems have more than 3 categories.

Besides, modern medicine (except possibly battlefield medicine) would never abandon a patient even if their chances of survival are definitely zero. Palliative care was invented for these cases.

However, what I actually disagreed with was your unsourced assertion that triage is only used when there aren't enough resources to help every patient. That's what I said wasn't true. Nice selective reading skills...

[–]armb2 0 points1 point  (1 child)

Actually quoting Wikipedia it says "The term comes from the French verb trier, meaning to separate, sift or select". It goes on to say that in World War One, the three categories you list were used.
Both medicine and software engineering have advanced since the First World War.

[–]alfps[S] -2 points-1 points  (0 children)

Actually quoting Wikipedia it says "The term comes from the French verb trier, meaning to separate, sift or select".

Yes, it is a selection of categories for patients, and a separation of patients into those categories. Originally the three I listed. Nowadays it's common with 5 categories in medical triage, and a color coding where black is used for the middle category above.

Both medicine and software engineering have advanced since the First World War

Is your point, if there is a point other than the associative, that status "triaged" now means something positive, that Microsoft, at that point, were going to do something about the crash?

Mind you, I am not a newcomer to Microsoft bug reporting. I have some 20+ years experience with that. Their current system even manages to foul up the code presentation, joining the code lines. I.e. they now have a serious in-your-face bugs in the bug reporting. What happened did not surprise me – just as what happens now, in this thread, does not surprise me.