Ich habe von einem ehemaligen Kollegen gehört, dass nicht alle Fehler behoben werden müssen, da der Anwendungsfall, der diesen Fehler verursacht, mit zunehmender Priorität undeutlicher wird oder die Kundenzufriedenheit abnimmt. Aber Sie müssen noch viel Zeit aufwenden, um diesen Fehler zu beheben.
In dem Bemühen, unseren Produktbesitzer von diesem Konzept zu überzeugen, konnte ich keine guten Ressourcen finden. Ich konnte nur Diskussionen darüber finden, ob die Softwareentwicklung Grenzkosten verursacht oder nicht.
Gibt es wirklich nur einen geringen Vorteil bei der Behebung von Fehlern? Gibt es einen anderen Begriff, der dieses Konzept erklärt?
project-management
time-management
Gökhan Kurt
quelle
quelle
Antworten:
Aus betriebswirtschaftlicher Sicht unterscheidet sich eine Fehlerbehebung nicht von einer Funktionsanforderung. Es hat bestimmte Kosten in der Entwicklungszeit und einen bestimmten Wert für die Kunden. Wenn ein Fehler nicht kritisch ist, kann es durchaus wirtschaftlich sinnvoll sein, eine wichtige Funktion vor der Fehlerbehebung zu priorisieren.
Aber aus technischen Sicht Bugs kann kritischer sein, weil sie einen Fehler in einem Fundament geben an, welche anderer Code könnte / build verwendet auf, wobei in diesem Fall der Fehler „ansteckend“ ist und erhöht die Kosten für zukünftige Wartung. Also nicht einen Fehler Festsetzung ist eine technische Schulden , die Verwaltung erfordern, während nicht ein Merkmal der Umsetzung haben nicht wirklich eine laufende Kosten. Die Höhe der durch einen Fehler verursachten technischen Schulden hängt jedoch stark von der Art des Fehlers ab.
All diese Faktoren sollten bei der Priorisierung berücksichtigt werden.
Ob die Behebung von Fehlern einen geringfügigen Vorteil hat: Dies ist eine Selbstverständlichkeit. Da nicht alle Bugs gleich stark sind, priorisieren Sie natürlich zuerst die wichtigsten Bugs. Je mehr Fehler Sie beheben, desto geringer ist der Grenzwert für die Behebung des nächsten Fehlers. Aber ob es jemals das Level erreicht, bei dem die Behebung des Fehlers den Aufwand nicht wert ist, ist eher eine Geschäftsentscheidung als eine technische Entscheidung.
quelle
Hier ist eine gute Referenz
http://www.joelonsoftware.com/articles/fog0000000043.html
Sie können sicher sein, dass es umso länger dauert, bis diese Fehler behoben sind, sobald sie Priorität haben. Anstatt jetzt einen Rohnutzen zu haben, vermeiden Sie in Zukunft einen kostspieligeren Verlust.
Eine gute Möglichkeit, dies zu handhaben, besteht darin, eine bestimmte Zeitspanne für die Bearbeitung von Rückstandsproblemen festzulegen. Dies würde nicht so viel Aufwand verursachen wie Microsoft, aber es wird sicherstellen, dass zukünftige Probleme behoben werden, wenn sie noch nicht Ihr Problem sind, auch wenn es den Kunden nicht wirklich interessiert.
quelle
Angenommen, Sie arbeiten für eine kommerzielle Organisation, dann gibt es mit Sicherheit jemanden, der sich mit der Kosten-Nutzen-Analyse auskennt .
Ihre Organisation verfügt über eine begrenzte Menge an Entwicklerressourcen und eine unendliche Liste nützlicher Aufgaben. Zu diesen nützlichen Dingen gehört sowohl das Hinzufügen neuer Funktionen als auch das Entfernen vorhandener Fehler. Das Entfernen eines Fehlers verbessert die Software ebenso wie das Hinzufügen einer neuen Funktion.
Es ist also offensichtlich, dass Entscheidungen getroffen werden müssen, wie diese endliche Ressource dieser unendlichen Liste zugeordnet werden soll, und es ist nicht besonders überraschend, dass das Ergebnis ist, dass einige Fehler derzeit, in der nächsten Woche, im nächsten Jahr oder in der nächsten Woche nicht behoben werden Tatsache überhaupt.
Wenn Sie hier einen strukturierteren Ansatz suchen, können Sie das PEF / REV-System ausprobieren, das den Benutzer- und Programmiereransichten eines Fehlers Nummern zuweist , um zu entscheiden, was behoben wird - und was nicht.
Siehe auch diese beiden Beiträge hier auf Software Engineering:
Das Lösen der Fehler bietet den größten Kostenvorteil
Fast jeder gemeldete Fehler ist ein Fehler mit hoher Priorität
quelle
Nicht alle unbeabsichtigten oder unerwünschten Aspekte des Softwareverhaltens sind Fehler. Wichtig ist, sicherzustellen, dass die Software über eine Reihe nützlicher und dokumentierter Bedingungen verfügt, unter denen eine nützliche Funktionsweise gewährleistet ist. Stellen Sie sich zum Beispiel ein Programm vor, das zwei Zahlen akzeptieren, multiplizieren und die Ergebnisse ausgeben soll und das eine falsche Zahl ausgibt, wenn das Ergebnis bei mehr als 9,95, aber weniger als 10,00, mehr als 99,95, aber weniger als 100,00 usw. Liegt Wenn das Programm zum Zweck der Verarbeitung von Zahlen geschrieben wurde, deren Produkt zwischen 3 und 7 lag, und niemals zur Verarbeitung anderer aufgefordert werden würde, würde das Reparieren seines Verhaltens mit 9,95 es für den beabsichtigten Zweck nicht nützlicher machen. Es kann jedoch sein, dass das Programm für andere Zwecke besser geeignet ist.
In einer Situation wie der oben beschriebenen gibt es zwei sinnvolle Vorgehensweisen:
Beheben Sie das Problem, wenn dies praktisch ist.
Geben Sie Bereiche an, in denen die Programmausgabe zuverlässig ist, und geben Sie an, dass das Programm nur für Daten geeignet ist, von denen bekannt ist, dass sie Werte innerhalb gültiger Bereiche liefern.
Ansatz 1 würde den Fehler beseitigen. Ansatz Nr. 2 macht den Fortschritt möglicherweise für einige Zwecke weniger geeignet als ansonsten. Wenn jedoch keine Programme zur Behandlung der problematischen Werte erforderlich sind, ist dies möglicherweise kein Problem.
Auch wenn die Unfähigkeit, die Werte 99,95 bis 100,0 richtig zu handhaben, auf einen Programmierfehler zurückzuführen ist (z. B. die Entscheidung, zwei Stellen links vom Dezimalpunkt auszugeben, bevor auf eine Stelle nach dieser Stelle gerundet wird, was 00,00 ergibt), sollte nur a berücksichtigt werden Fehler, wenn das Programm in solchen Fällen ansonsten als aussagekräftig bezeichnet würde. [Übrigens trat das oben erwähnte Problem im printf-Code von Turbo C 2.00 auf; in diesem Zusammenhang ist es eindeutig ein Fehler, aber Code, der den fehlerhaften printf aufruft, wäre nur fehlerhaft, wenn er Ausgaben in den problematischen Bereichen erzeugen könnte.
quelle
In einem losen Sinne müssen ja nicht alle Fehler behoben werden. Es geht darum, das Risiko-Nutzen-Verhältnis zu analysieren.
Was im Allgemeinen passiert, ist, dass das Unternehmen ein Treffen mit technischen Leitern und Interessenvertretern hat, um Fehler zu besprechen, die nicht unbedingt behoben werden müssen. Sie werden entscheiden, ob sich die Zeit (= Geld), die in die Behebung des Fehlers investiert wurde, für das Unternehmen lohnt.
Beispielsweise kann ein "kleiner Fehler" ein geringfügiger Rechtschreib- / Grammatikfehler im Abschnitt "Allgemeine Geschäftsbedingungen" einer Website sein. Die Person, die dies angesprochen hat, hält es möglicherweise für zu geringfügig, um es zu ändern, aber das Unternehmen würde erkennen, welchen potenziellen Schaden es für die Marke verursachen könnte und wie einfach es ist, einige Zeichen zu ändern.
Auf der anderen Seite könnten Sie einen Fehler haben, der wichtig erscheint, der jedoch schwer zu beheben ist und nur eine vernachlässigbare Anzahl von Benutzern betrifft. Beispielsweise ist ein untergeordneter Schaltflächenlink für Benutzer, die eine ältere Version von Google Chrome verwenden, nicht mehr funktionsfähig. Außerdem ist Javascript deaktiviert.
Andere Gründe, warum das Unternehmen einen Fehler NICHT behebt, könnten sein, dass die investierte Zeit das Projekt unerwartet lange zurückwirft oder dass die Zeit des Entwicklers besser für die Bearbeitung anderer Fehlerbehebungen / Programmierungen aufgewendet wird. Es kann auch sein, dass der Fehler geringfügig genug ist, um live geschaltet zu werden und zu einem späteren Zeitpunkt behoben zu werden.
Hoffe das erklärt das Konzept ein bisschen besser! Ich würde sicher davon absehen, allgemein darüber nachzudenken - jeder Fehler ist einzigartig und sollte als solcher behandelt werden.
quelle
Also ist ihr "Argument" tatsächlich
Bugs sollten genau wie neue Feature Requests priorisiert und "in der richtigen Reihenfolge" behandelt werden (wohl aber über letztere hinaus).
quelle