Während der Entwicklung (entweder Features oder Fehlerbehebungen) entdecke ich manchmal Fehler, die nicht direkt mit dem zusammenhängen, woran ich arbeite. Was soll ich in dieser Situation tun? Repariere es einfach? Versuchen Sie sich zu erinnern, es später zu beheben? Irgendwo aufschreiben? Oder in das Bug-Tracking-System eintragen?
Ich gebe es in der Regel in das Bug-Tracking-System ein und lasse den Prozess von selbst ablaufen (z. B. Testen, Zuweisen usw.). Allerdings habe ich kaum einen anderen Entwickler gesehen, der einen Fehler gemeldet hat. (Warum ist das so?)
development-process
issue-tracking
JoelFan
quelle
quelle
Antworten:
Wenn Sie einen Fehler entdecken, fällt mir kein guter Grund ein, ihn nicht in das Fehlerverfolgungssystem aufzunehmen, unabhängig davon, ob Sie ihn beheben oder nicht. Schließlich ist das Bug-Tracking-System dafür gedacht.
In einigen Fällen ist es möglicherweise sinnvoller, dies einer Person mit mehr Erfahrung im Umgang mit dem System zu melden. In jedem Fall sollte der Fehler jedoch nachverfolgt werden.
Es ist möglich, dass es einen Grund gibt, der gültig ist oder nicht, dass Entwickler keine Fehler eintragen sollten. Ein möglicher Grund könnte sein, dass das Fehlerverfolgungssystem für Außenstehende sichtbar ist und zu viele gemeldete Fehler schlecht aussehen. Das ist ein sehr schlechter Grund, der auf eine andere Weise angegangen werden sollte, die es weiterhin ermöglicht, Fehler zu verfolgen. Fragen Sie Ihren Chef.
(Wenn es einen Fehler im Code gibt, an dem Sie noch arbeiten und der in keiner veröffentlichten Version auftaucht, müssen Sie ihn natürlich nicht im System nachverfolgen, auch wenn es sich möglicherweise um einen TODO-Kommentar im Quellcode handelt Eine gute Idee. Im Extremfall ist "Dieser Code wird nicht kompiliert, da ich das Semikolon am Ende dieser Zeile noch nicht eingegeben habe" kein meldepflichtiger Fehler.)
Wenn Sie wissen möchten, warum andere Entwickler keine Bugs eintragen, müssen Sie sie fragen. Sie sollten es wahrscheinlich tun.
quelle
In beiden Fällen müssen Sie die Fehler in das Fehlerverfolgungssystem eingeben:
Wenn der Fehler direkt den Code betrifft, an dem Sie arbeiten,
Wenn der Fehler den Code betrifft, an dem Sie gerade nicht arbeiten, oder den Teil, an dem ein anderer Entwickler arbeitet.
Dies ist von wesentlicher Bedeutung, da das Bug-Tracking-System ... zur Verfolgung von Bugs dient. Jeder Fehler. Wenn Sie einen Fehler entdecken, beheben Sie ihn nicht einfach. Dokumentieren Sie es über das Bug-Tracking-System. Wenn ein Kunde, der eine frühere Version der Software ausführt, später einen Fehler meldet, bei dem es sich um ein genaues Duplikat handelt, können Sie ihn mit Ihrem Bericht verknüpfen. Wenn Sie nichts zu verlinken haben, verschwenden Sie Ihre Zeit (oder Ihren Kollegen) damit, nach dem Fehler in früheren Versionen zu suchen. Versuchen Sie dann, ihn zu beheben, und stellen Sie schließlich fest, dass der Fehler bereits auf magische Weise behoben wurde.
Dies erklärt auch, warum Freiberufler sowohl die Versionskontrolle als auch das Fehlerverfolgungssystem verwenden müssen: Diese beiden Tools sind nicht nur für Teams gedacht.
quelle
Es gibt keinen triftigen Grund, einen Fehler nicht in das Fehlerverfolgungssystem einzutragen. Die einzigen Stellen, an denen ich Fehlerbehebungen ohne Nachverfolgung gesehen habe, sind die, weil der Prozess grundlegend fehlerhaft war. Wenn dies der Fall ist, beheben Sie den Vorgang.
Gründe für die Nichteinreise sind:
quelle
Es ist wahrscheinlich eine schlechte Idee, den Fehler sofort zu beheben. Erstens arbeitet möglicherweise eine andere Person an derselben Fehlerbehebung, was zu doppeltem Aufwand führt, und je nach der von Ihnen angewendeten Entwicklungsmethode ist es vorrangig, was als Nächstes zu tun ist (Beheben eines Fehlers oder Implementieren einer neuen Funktion) Managemententscheidung dann eine Entwicklungsentscheidung.
quelle
Die Entscheidung ist nicht eindeutig und beinhaltet Kompromisse.
(einige) PROS
Die Verfolgung von Fehlern ist für die Kommunikation von entscheidender Bedeutung, insbesondere bei großen Teams. Einer der besten Vorteile, wenn Sie mehrere Augen auf den Code haben, ist die Fähigkeit, Probleme früher zu erkennen. Dieser Vorteil geht verloren, wenn Fehler während der Entwicklung nicht protokolliert oder nachverfolgt werden.
Das Protokollieren von Fehlern, wie Sie sie finden, ist im Allgemeinen eine gute Angewohnheit.
(einige) CONS
Das Eingeben von Fehlern in ein Fehlerverfolgungssystem kann lästig und zeitaufwendig sein und die Entwicklungsarbeit erheblich beeinträchtigen - häufiger, wenn Sie in großen Teams arbeiten. Es kann erwartet werden, dass Sie:
Manchmal ist Bug-Tracking einfach nicht die effizienteste Nutzung Ihrer Zeit.
Dies sind zwei allgemeine Prinzipien, die sich nur schwer ausbalancieren lassen - eine gute Strategie zu finden ist eine Kunst. In solchen Situationen ist es meines Erachtens am besten, eine flexible Heuristik anzuwenden, die ich für ein bestimmtes Projekt, Team, Arbeitsumfeld und Ihre allgemeinen Fähigkeiten anpasse. Meine Strategie folgt normalerweise ungefähr dem folgenden Muster:
Nehmen Sie sich zu Beginn eines jeden neuen Arbeitstages Zeit, um sich im Rahmen Ihrer Vorbereitung auf die Arbeit mit den Stickies zu befassen. Ich nehme mir 10-15 Minuten Zeit, um meine Liste der erkannten Probleme vom Vortag durchzugehen, und tue, was am schnellsten ist:
Im Laufe der Zeit habe ich alle möglichen Verbesserungen für nützlich befunden. Zum Beispiel:
Ich bin der Meinung, dass im Allgemeinen, wenn Sie diese Art von Strategie verfolgen, immer mehr Kollegen und andere Unternehmensmitglieder beginnen, Ihre Arbeit und Ihre Verpflichtung zur Qualität zu respektieren. Nach einiger Zeit haben Sie den nötigen Respekt und die nötige Autorität, um den gesamten Prozess nach Ihren Wünschen zu optimieren. Halten Sie nach solchen Gelegenheiten Ausschau und ergreifen Sie sie entsprechend.
quelle
Ich glaube, wenn ein Entwickler einen Fehler trifft , die nicht bezieht , was sie arbeiten und dass sie nicht werden , Festsetzung, sie sie in das System eingeben sollte nur haben einige Aufzeichnungen darüber. Auf diese Weise können Sie QA-Teststarts (und sie sind immer noch nicht behoben) diese Liste mit Fehlern als "bekannte Fehler" kennzeichnen, sodass sie nicht die gleichen Fehler melden.
Vielleicht behalten andere Entwickler, die Fehler finden, diese selbst im Auge, wenn sie beabsichtigen, sie zu beheben, aber in diesem Fall laufen sie Gefahr, dass zwei Entwickler denselben Fehler unabhängig voneinander finden und beheben.
quelle
Ich würde hinzufügen, dass es eine gute Idee ist, den Fehler zu verfolgen, auch wenn er bereits behoben wurde (was nicht hätte passieren dürfen, bevor er in einem Issue-Tracker aufgezeichnet wurde).
Auf diese Weise ist es relativ einfach, das Problem als "bereits behandelt" zu erkennen und zu lesen, wie es beim ersten Mal behoben wurde, falls das Problem erneut auftreten sollte (es kommt zu Regressionen!).
quelle
Warum ist das so? Da sich die meisten Entwickler mit dem Problem befassen, das sie ansprechen müssen, und mit dem Code, den sie schreiben und berechnen müssen, ist es einfacher, sich nicht darum zu kümmern.
Ob dies jedoch richtig ist, hängt von Ihrem Prozess ab. Haben Sie ein QA-Team? Denken Sie, dass es ihnen etwas ausmacht, wenn Sie nur Code ändern, der nicht nachverfolgt wird? Was ist mit Code-Reviews? Wird es diesen Riss überspringen? Was ist mit dem Geschäft? Müssen sie wissen, dass Sie einen Fehler behoben haben, damit sie ihn später nicht mehr auslösen?
Was ist mit anderen Entwicklern? Was ist, wenn sie es gleichzeitig auf eine andere Weise beheben? Was ist, wenn sie später einen ähnlichen Fehler finden und Sie nur noch sagen können: "Oh, verdammt, ich weiß, wir hatten so etwas schon einmal - was war es jetzt?"
Es gibt ungefähr eine Million Gründe, Fehler im Bug-Tracking-System aufzuzeichnen. Wenn Sie sicher sind, dass Sie keines dieser Probleme haben, sollten Sie sich nicht darum kümmern. Aber wenn Sie sich nicht sicher sind, sollten Sie es aufzeichnen, auch wenn die meisten Menschen dies nicht tun.
quelle
Programmierung ist grundsätzlich eine komplexe Arbeit. Die Fehler sind komplex. Daher habe ich einen Fehler anhand zweier Faktoren bewertet:
Ich würde einen Bug in einen der folgenden Typen einteilen:
In Fall 1 ist ein Kochbuch oder eine häufig gestellte Frage ein gutes Hilfsmittel für das Team, um solche Fehler in Zukunft zu beheben.
In Fall 2 ist eine ausführliche und nachvollziehbare Aufzeichnung für das Team erforderlich, da es eine Verschwendung von Aufwand ist, wenn ein anderer Programmierer solche Fehler erneut erleidet. Zum Beispiel: Speicherverlust.
In Fall 3 ist es meiner Meinung nach keine große Sache, dass nichts mehr aufgezeichnet werden muss, da Sie nicht zu viel Zeit für die Behebung eines einfachen Fehlers aufwenden. Zum Beispiel ein Tippfehler für die ID des Elements in HTML.
In Fall 4 verursachen solche Fehler ein Dilemma. Es braucht einige Zeit, um eine ausführliche und verständliche Aufzeichnung zu schreiben, um solche Fehler zu beschreiben. Dieser Datensatz wird jedoch in Zukunft nur noch selten verwendet. Ohne eine Aufzeichnung wäre das Auftauchen solcher Fehler jedoch wieder ein Kampf. Solche Fehler treten beispielsweise aufgrund von Computerviren auf dem Computer einer anderen Person auf.
quelle
Natürlich sollten Sie es eingeben. Oder melden Sie es zumindest Ihren QA-Mitarbeitern, wenn dies Ihr normaler Prozess ist.
Selbst wenn Sie den Fehler nur selbst beheben, möchten Sie eine Aufzeichnung der Änderung, damit diese dann getestet werden kann, um sicherzustellen, dass die Korrektur tatsächlich funktioniert und keine Regression stattgefunden hat. Es ist auch möglich, dass ein Benutzer den Fehler irgendwann meldet. Wenn er im System vorhanden und als behoben markiert ist, können Ihre Support-Mitarbeiter ihm mitteilen, dass er bereits behoben wurde.
quelle
In der Tat sollten Sie sie im System aufzeichnen, und falls es nicht geübt wird, ist es gut, anzufangen.
In meiner Vergangenheit war ich Teil eines Produktteams, und wir befanden uns in der Beta - Version eines neuen Produkts, und gelegentlich fanden wir Fehler, die wir zu diesem Zeitpunkt notierten und an die jeweiligen Personen schickten, die die Module betreuten (wir hatten) ein Bug-Tracking-System, aber wir dachten nicht daran, sie dorthin zu schieben). Später, als die Tage vergingen, wurden die Postsendungen aufgrund anderer Prioritäten ignoriert, was schließlich zu schlaflosen Nächten führte.
Dann, eines Tages, Nirvana! Warum verwenden wir den Bug-Tracker nicht, auch wenn Sie etwas gefunden haben, das wie ein Bug aussieht und möglicherweise nicht vorhanden ist (Ihre Überlegungen zum Prozess sind falsch / fehlerhaft). Zumindest auf der Liste, die dann getestet werden könnte, und vor allem eine Rückmeldung, warum es kritisch ist, oder auf der anderen Seite ist es perfekt, und so sollte es aus den Gründen 1 ... 2 ... funktionieren. .
Jetzt haben Sie die Liste und auch für diejenigen, die einige Teile der Anwendung missverstanden haben, haben sie das Feedback, anhand dessen sie ihre Gedanken klären können. Eine win-win Situation.
quelle
Vorausgesetzt, der Code ist bereits getestet (und insbesondere freigegeben).
Dafür gibt es eine Reihe von Gründen:
Speicher - Es ist sehr unwahrscheinlich, dass das System den Fehler vergisst, was jeder Entwickler tun kann.
Metriken - Die Anzahl der gefundenen und geschlossenen Fehler sowie die benötigte Zeit können einfach zu erfassende Metriken sein, die Aufschluss über den Fortschritt der Codequalität geben
Dringlichkeit - Für den Entwickler scheint es das Wichtigste auf der Welt zu sein, aber die Zeit, die für die Behebung dieses Problems aufgewendet wird, sollte besser für etwas verwendet werden, das der Endbenutzer zuerst möchte (siehe auch Speicher).
Vervielfältigung - Möglicherweise wurde sie bereits entdeckt und wird von einer anderen Person überprüft / behoben. Alternativ ist es vielleicht gegen die Dringlichkeitsregel verstoßen und wurde abgesetzt. Die Tatsache, dass Sie es wiedergefunden haben, bedeutet natürlich nicht nur, dass es nicht getan werden sollte, es könnte auch bedeuten, dass (da es immer weiter auftaucht), dass es jetzt dringender ist, es zu beheben.
Ursachenanalyse - Der am einfachsten zu behebende Fehler war noch nie vorhanden. Es kann sein, dass das Team diesen Fehler untersuchen sollte, um herauszufinden, wie er entstanden ist. Dies ist definitiv nicht, um den Verantwortlichen zu bestrafen (was nie hilft), sondern um herauszufinden, wie die Situation in Zukunft vermieden werden kann.
Umfassende Auswirkungsanalyse - Der billigste Fehler, den Sie finden können, ist der, den Sie kannten, bevor Sie ihn gefunden haben. Anhand dieses Fehlers (insbesondere nach einer Ursachenanalyse) kann schnell klar werden, dass dieses Problem an anderen Stellen im Code auftreten kann. Infolgedessen kann sich das Team entscheiden, es zu suchen, bevor es in einem peinlicheren Moment seinen hässlichen Kopf hebt.
Die Zeit, die für diese (falls vorhanden) aufgewendet wird, hängt weitgehend von der Reife und dem Qualitätsniveau des Codes ab. Die Ursachenanalyse ist für ein winziges Team, das an Demonstrationscode arbeitet, wahrscheinlich übertrieben, aber ein großes Team, das sich mit geschäftskritischer Entwicklung befasst, muss die Lektionen wahrscheinlich effektiv und effizient lernen.
Erfahrungsgemäß gibt es zwei Gründe, warum Entwickler das Tool nicht verwenden:
Punkt 1 impliziert, dass ein besseres / einfacheres System erforderlich sein kann; oder alternativ könnte eine zwingendere Rechtfertigung des bestehenden Systems angebracht sein.
Punkt 2 sollte ein nützliches Warnsignal für den Entwicklungsleiter bezüglich der aktuellen Aufgabenverteilung sein.
quelle
Ich stimme meistens mit FrustratedWithFormsDesign überein, aber ich denke, es ist noch klarer, wenn das ganze Problem in zwei Bereiche unterteilt ist:
Diese werden oft als gleich behandelt und ihre Trennung wird mit ziemlicher Sicherheit viel helfen.
Diese können bearbeitet werden mit: Bug Reporting: - Wie jeder sagt, ins System stellen.
Fehlerbehebung: - Alle ein oder zwei Wochen (passen Sie sich an Ihren Entwicklungsplan an, usw.) treffen sich alle am Projekt und entscheiden, was behoben werden soll, von wem usw. Dies war, dass jeder auf derselben Seite ist und sehen kann, was zu tun ist getan werden. In Agile Development ist dies das Sprint Planning Meeting.
Ein gutes Werkzeug, das die Leute benutzen wollen , macht auch einen großen Unterschied. Ich mag Pivotal Tracker und es hat meinen 'wirklich nützlichen Tool'-Test bestanden, als ich damit angefangen habe, nur um den Überblick über Dinge zu behalten, die ich in meinen eigenen privaten Projekten tun oder reparieren möchte!
quelle
Wenn Sie etwas sehen, dann sagen Sie etwas!
Ich gebe sogar Fehlerberichte zu meinen eigenen Modulen ein, weil ich meine aktuelle Aufgabe nicht unterbrechen möchte. Und ich kann sicherstellen, dass alle Schritte zur Reproduktion enthalten sind :-)
Und es ist noch besser, wenn jemand anderes sieht, dass Sie etwas als bekannten Fehler aufgelistet haben. Sie möchten wissen, dass es auch jemand anderes gefunden hat.
quelle
Ich denke, dies ist eher eine politische Frage als eine Frage zu bestpractice.
Meiner Meinung nach ist es eine gute Praxis, nicht triviale Fehler in das Tracker-System aufzunehmen, aber das Management muss entscheiden, wie es damit umgehen soll.
In nicht trivialen Fällen sollten Sie das Problem nicht beheben, ohne jemanden zu konsultieren, um dies sicherzustellen
quelle