Warum brauchen wir sowohl Priorität als auch Schweregrad?

11

Ich verstehe, was sie bestimmen, aber ist es wirklich nützlich, diese den gefundenen Problemen zuzuordnen? Ich meine, es muss entweder schnell behoben werden oder nicht.

Ich weiß, wie man sie einstellt, kategorisiert usw. Ich weiß, dass IEEE / ISO dies erfordert. Ich verstehe einfach nicht warum.

Pietross
quelle
Hmm, ich denke, ein Fehler, der Daten beschädigen würde, ist schwerwiegender als etwas, das nur ärgerlich ist, wie zum Beispiel, dass das Laden einiger Funktionen zu lange dauert. Beide sollten behoben werden, aber diejenigen mit höheren negativen Auswirkungen sollten zuerst behoben werden.
Thorsten Müller
Nein, wie ich schrieb, weiß ich, was sie sind oder wie man sie einstellt. Ich sehe den Nutzen einfach nicht.
Pietross
In den meisten Fällen nein. Es gibt jedoch immer Randfälle, in denen es sinnvoll ist, die beiden zu trennen. Ob es sich lohnt, die Trennung für jedes Problem beizubehalten, um diesen seltenen Anlässen gerecht zu werden, ist eine andere Frage.
Biziclop
1
Sie können einen UI-Fehler haben, der die Benutzerfreundlichkeit der Apps nicht wirklich beeinträchtigt ( geringer Schweregrad ), aber eine hohe Priorität hat, weil er hässlich ist. Sie können einen Fehler haben, der die App vollständig zum Absturz bringt ( hoher Schweregrad ), aber eine niedrige Priorität hat, da die Bedingungen dafür eine von einer Million sind und praktisch nie eintreten werden (dies ignoriert die Tatsache, dass One-in eine Million Chancen ergeben sich neun von zehn ).
Binary Worrier

Antworten:

24

Es ist absolut möglich, dass sich diese Werte unterscheiden. Wenn Sie einen Verkauf an eine wichtige Regierungsbehörde tätigen müssen, die eine hohe Leistung erfordert, aber niemals Modul X verwendet, ist es wirtschaftlich sehr sinnvoll, einen geringfügigen Datenbankverfügbarkeitsfehler früher als einen schwerwiegenden Fehler im X-Modul zu beheben. Grundsätzlich sind technische Gründe nicht der einzige Faktor, wenn Sie ein Software- Geschäft betreiben .

Kilian Foth
quelle
Genau: Priorität gibt den Geschäftswert an und ist das Ergebnis des Projektmanagements. Der Schweregrad zeigt die Auswirkung an und ist das Ergebnis von Fehlern. Jede Aufgabe kann eine Priorität haben, aber z. B. haben neue Funktionen keinen Schweregrad. Abgesehen von sicherheitskritischen Fehlern mit hohem Schweregrad wäre es dumm, den Schweregrad allein die Prioritäten bestimmen zu lassen, oder die Menschen würden einen falschen Anreiz erhalten, den Schweregrad ihres Problems zu überschätzen.
Amon
5
Ich denke, das Wichtigste ist, dass nur eine Maßnahme (die Priorität) die Reihenfolge der Entwicklung direkt steuert. Wie nützlich ein Team eine zusätzliche "Schwere" als Teil einer Fehlerbeschreibung findet, ist äußerst naheliegend: Einige finden sie möglicherweise hilfreich, andere wie @arnaud halten sie für "Bürokratie" - beide Gesichtspunkte sind möglicherweise vernünftig.
Doc Brown
4
Hohe Priorität, niedriger Schweregrad: Die Zielseite Ihrer Anwendung, die monatlich von Millionen von Benutzern angezeigt wird, enthält einen Tippfehler in Ihrem Firmennamen. Niedrige Priorität, hoher Schweregrad: Das System stürzt beim Start einer Anwendung, die nächste Woche eingestellt wird, in 25% der Fälle ab.
Gort the Robot
2
Der Schweregrad kann im Allgemeinen durch Regeln von automatisierten und Live-Testern bestimmt werden. Die Priorität kann vom Unternehmen nur subjektiv bewertet werden.
Gort the Robot
3

Datums- und Zeitfehler

Fehler: Die Verarbeitung zum Jahresende beschädigt Ihre Datenbank vollständig. Das ist eindeutig ein schwerer Fehler.

Datum: 15. Dezember. Der Fehler hat eine sehr hohe Priorität.

Datum: 1. Februar. Der Fehler hat eine niedrige Priorität.


Versehentlicher Start des Raketenwanzen

Fehler: Die ICBM-Steuerungssoftware kotzt, wenn sie vom 28. Februar bis zum 1. März in Jahren durch 4 teilbar ist. Das Ergebnis ist ein nicht befohlener Start.

Das ist ein so schwerwiegender Fehler wie möglich. Die Priorität ist jedoch sehr niedrig. Gibt es eine realistische Chance, dass die Software verwendet wird, wenn die Bedingung ausgelöst wird?


Versehentliche "schlechte" Wörter auf dem Bildschirm

Fehler: Nachrichten, die ihren Platz auf dem Bildschirm überschreiten, führen dazu, dass versehentlich ein profaner Verweis auf Bob angezeigt wird. (Reale Welt: Wir hatten Leute, die in der Abteilung "Final Ass" arbeiteten. "Ass" = "Assembly".)

Leider machen Sie morgen eine Präsentation, in der der Verkauf für das Unternehmen ein Kinderspiel ist. Sie halten die Präsentation für jemanden namens "Bob". Schweregrad: Sehr niedrig. Priorität: Sehr hoch.

Loren Pechtel
quelle
Im Zusammenhang mit den von Ihnen erwähnten Fehlern 'Überlauf' und 'Datum / Uhrzeit' - Sie können die Phase des
0

Sie schrieben:

Ich meine, es muss entweder schnell behoben werden oder nicht.

Das ist richtig. Wenn Sie jedoch wie die meisten Unternehmen sind, sind Ihre Ressourcen begrenzt. Entweder haben Sie nicht genug Leute, um alle Probleme zu beheben, oder Sie haben nicht genug Zeit.

Angesichts der Tatsache, dass ein Fehler entweder schnell behoben werden muss oder nicht und Sie viele Fehler haben, die behoben werden müssen, beantwortet "Priorität" die Frage "Welchen behebe ich zuerst"?

Der Schweregrad hingegen ist ein Indikator, der von der Person verwendet wird, die die Priorität festlegt. Aus Entwicklersicht ist der Schweregrad ein strittiger Punkt. Aus der Sicht des Auftraggebers ist der Schweregrad eine wichtige Information, die bei der Entscheidungsfindung hilft.

All dies sind natürlich sehr allgemeine Informationen. Wenn Sie ein Team mit einem unglaublich langen Rückstand an Fehlern sind, bedeuten Priorität und Schweregrad etwas völlig anderes als in einem Team mit einer nahezu leeren Fehlerdatenbank.

Wenn Sie in einem Team mit "hoher Schweregrad == hohe Priorität" arbeiten, spielt dies keine Rolle und Sie benötigen nicht beide Metriken. Letztendlich sind dies nur Werkzeuge. Ihr Team muss entscheiden, wie es sie verwendet. Für Ihr Team ist es möglicherweise nicht sinnvoll, beide zu verwenden.

Bryan Oakley
quelle
0

IMHO, sowohl Priorität als auch Schweregrad zu setzen, ist nur Bürokratie.

In der Praxis benötigen Sie nur ein Maß für "Wichtigkeit". Oft wird Priorität dafür verwendet, und der Schweregrad wird dann als Fachbegriff wie "hoch = System stürzt ab oder macht es unbrauchbar", "mittel = fehlerhaftes Verhalten, potenziell schädlich", "niedrig = lästig, ärgerlich, aber harmlos" verwendet.

In der Regel geht die Priorität mit der Schwere einher. Einige Gegenbeispiele sind ein "Ärgernis, bei dem sich jeder immer beschwert" oder ein "Absturz, der einmal in einer exotischen Umgebung aufgetreten ist".

... aber am Ende müssen Sie als Entwickler (oder Manager usw.) nur wissen, in welcher Reihenfolge Sie die Dinge reparieren / verbessern sollten, das ist alles. Eine Maßnahme reicht also aus.

Die Notwendigkeit der Priorität ist klar: Es ist zu wissen, in welcher Reihenfolge die Fehlerberichte behandelt werden sollen. Der andere, IMHO wie üblich, ist Bürokratie. Warum brauchst du es? Es ist anscheinend nutzlos zum Sortieren, weil Priorität dies tut. Und die Konsequenzen (Schweregradbeschreibung) sind ohnehin im Fehlerbericht beschrieben.

Ich denke sogar, dass es schädlich ist, weil es weniger klar macht, welcher Fehler wichtiger ist:

  • Einige denken vielleicht, dass ein "kritischer" Fehler eine höhere Priorität hat als ein "hoher Priorität" -Fehler.
  • Einige Benutzer, die einen Fehler melden, können Schweregrad und Priorität verwechseln
  • ... insgesamt führt dies eher zu Verwirrung darüber, in welcher Reihenfolge die Fehler behoben werden sollen
dagnelies
quelle
1
Und sind Entwickler die einzigen Menschen, die wichtig sind?
Biziclop
2
@biziclop Nein, du hast recht, es war eine schlechte Formulierung von mir. Es gilt für alle: Was zählt, auch für Manager usw., ist, was zuerst behoben werden sollte und was weniger wichtig ist. Dafür reicht eine Maßnahme.
Dagnelies
1
Nun, aus Sicht des Risikomanagements ist es falsch - Priorität = Schweregrad * Häufigkeit des Auftretens. Hat ein Tippfehler im Frontp-Alter eine niedrigere Priorität als ein schwerwiegender Serverabsturz, der auftritt, wenn der Nachname des Benutzers 46 Zeichen überschreitet?
Pietross
1
@Pietross: Nun, du hast es festgehalten: Welches sollte zuerst angegangen werden? Der schwere Absturz mit niedriger Priorität oder das Ärgernis mit hoher Priorität? Wie priorisieren Sie? Wer macht dieses Urteil? Jeder, der sich die Liste ansieht? Wenn nur eine Prioritätsmaßnahme verwendet wird, wird diese einmal priorisiert und dann ausgeführt. Die Auswirkungen und der Schweregrad werden ohnehin im Fehlerbericht beschrieben.
Dagnelies
Die Sache mit "Schweregrad" ist, dass man ziemlich leicht "Absturz = hoch, Tippfehler = niedrig" sagen kann. Man muss sich darüber im Klaren sein, dass ein Tippfehler, bei dem 'o' nicht auf der Homepage steht, eine höhere Priorität hat als die Seite, die sich überhaupt nicht laden lässt.
Gort the Robot
0

Stellen Sie sich neben anderen Antworten das folgende Szenario vor: Die Behebung von Fehler A dauert 30 Minuten und hat einen "niedrigen" Schweregrad. Es kann mehr als 2 Wochen dauern, bis Fehler B behoben ist und einen hohen Schweregrad aufweist. Darüber hinaus kann Fehler B im Entwicklerteam und möglicherweise außerhalb des Teams viel Diskussion und Koordination erfordern. Fehler A kann sofort von einem einzelnen Entwickler behoben werden. Es ist vollkommen in Ordnung, Fehler A mit höherer Priorität zu versehen.

Natürlich können "Schweregrad" und "Priorität" unterschiedlich interpretiert werden.

In einem kleinen Bug-Tracker, den ich für meinen eigenen Gebrauch erstellt habe, habe ich stattdessen "Schwierigkeit" und "Priorität" bevorzugt, bei denen Probleme mit hohem Schweregrad immer die höchste Priorität haben, und ich könnte mich entscheiden, die Bearbeitung aufgrund von Schwierigkeiten zu verzögern.

Eine Sache, die ich an der Schwere nicht mag, ist, dass sie nur für Fehler und nicht für Funktionen gilt. Es ist möglicherweise besser, eine einzige Liste aller Themen zu haben, die nach Priorität und Schwierigkeitsgrad geordnet sind, da es direkter hilfreich ist, zu entscheiden, woran ich als Nächstes arbeite.

Regnerisch
quelle
0

Ich habe Prozesse in einem Softwareunternehmen entworfen und implementiert, die nach ISO9001: 2007 zertifiziert sind. Der Standard wurde seit 2007 aktualisiert, daher gibt es möglicherweise zusätzliche Anforderungen, die mir nicht bekannt sind ... jedoch:

Mit der Norm ISO9001 soll sichergestellt werden, dass Ihr Unternehmen Prozesse mit Rückkopplungsschleifen zur Verbesserung des Prozesses entwirft und implementiert, wenn Produkt- und Prozessfehler festgestellt werden.

Während der Entwurfsphase konzentrieren sich die Anforderungen darauf, ob die vorgeschlagene Lösung bei korrekter Implementierung den Entwurfsauftrag tatsächlich lösen würde (Validierung) und ob die Implementierung tatsächlich fehlerfrei implementiert wurde (Überprüfung).

Wenn in der Rückkopplungsschleife Fehler erkannt werden, reicht es nicht aus, dass sie aufgezeichnet werden. Ein Defekt muss auch auf seinen Schweregrad untersucht und die Nacharbeit priorisiert werden.

Der entscheidende Teil ist, dass die Art und Weise, wie Ihr Unternehmen entscheidet, den Schweregrad zu bewerten und Entscheidungen über die Priorität zu treffen, nicht durch den ISO-Standard definiert ist. Es ist ein Handels- und Governance-Problem für das Unternehmen, zu entscheiden und zu dokumentieren.

Da dies als Anforderung in den Standard geschrieben ist, hat jedes zertifizierte Unternehmen einen Prozess zur Bewertung der Schwere eines Fehlers und einen Prozess zur Bestimmung der Priorität der Arbeit zur Behebung des Fehlers. Es sind definitiv zwei getrennte Entscheidungen, die getroffen werden müssen.

Der Schweregrad des Fehlers ist nur ein Datenpunkt. Auswirkungen auf den Kunden Ist ein weiterer Datenpunkt. Es werden auch Anstrengungen unternommen, um das Alter, das verbleibende Geschäftsleben des Produkts und alle anderen Faktoren, die das Unternehmen in seine Entscheidungsfindung einbezieht, zu beheben, Fehler zu beheben. Die eine Sache sollte nicht als „gegenwärtiger Fehler für den Produktmanager zur Entscheidung über die Priorität“ geschrieben werden, da dies nur die Befugnis definiert, die Entscheidung zu treffen, und nicht den Prozess, dem sie folgen, um die Entscheidung zu treffen.

Ich bevorzuge die Priorisierung, die darauf ausgerichtet ist, eine hohe Rate kleiner und wichtiger Änderungen zu erzielen, da dies den besten Beitrag zur allgemeinen Produktzuverlässigkeit zu leisten scheint. Dies bedeutet, dass ein schwerwiegender Fehler, dessen Behebung viel Arbeit erfordert, in kleinere Teile zerlegt werden muss, um eine ausreichende Priorität für die Planung zu erhalten.

Michael Shaw
quelle
-3

Aus Gründen, die Priorität und Schweregrad stark unterscheiden:

Ein einfaches Beispiel. Stellen Sie sich vor, Sie haben eine enge Stelle, die eine Skalierung Ihres Systems verhindert - einige Algorithmen haben die Komplexität O (N ^ 3), wobei N die Anzahl der Kundenspeicher ist. Der Kunde sagt, dass im nächsten Jahr 200 neue Geschäfte eröffnet werden und die erforderlichen Berechnungen (Warenverteilung, Transportplanung usw.) nicht rechtzeitig abgeschlossen werden. Derzeit verfügt dieser Client jedoch nur über 30 Filialen, und die Ressourcen reichen aus. Die Aufgabe, diesen Algorithmus zu optimieren (auf O (N ^ 2) oder besser), ist definitiv wichtig (Sie verlieren den Client, wenn er nicht implementiert wird), aber wahrscheinlich nicht dringend: Sie haben einige Monate Zeit, um den neuen Algorithmus zu implementieren.

Beispiel 2: Eine Anwendung stürzt systematisch ab, diese Version wird jedoch aufgrund eines Upgrades oder einer Migration innerhalb weniger Tage nicht mehr verwendet. Das Beheben ist dringend, da Abstürze die Benutzererfahrung wirklich beeinträchtigen, aber von geringer Bedeutung sind.

Natürlich werden beide Parameter unter Verwendung einer Metrik (entweder formell oder informell) vereinheitlicht, um einen kurzfristigen Arbeitsplan zu erstellen, da letzterer eindimensional ist (Abfolge von Aufgaben). Langfristig sollen sie jedoch nicht vereinheitlicht werden.

Netch
quelle