Sollte ich einfache Korrekturen protokollieren?


28

Ich bin in einem Code-Shop von zwei. Und obwohl ich verstehe, dass ein Bug-Tracker nützlich ist, wenn die Anzahl der Programmierer größer oder gleich eins ist, bin ich nicht so überzeugt, dass das Protokollieren von Fehlern, Änderungen und Korrekturen die Zeit wert ist, wenn sie unbedeutend sind. Wenn ich einen einfachen Fehler finde, verstehe ich ihn, behebe ihn und führe einige Tests durch. Und dann wurde mir klar, dass ich es aufzeichnen muss.

Ich weiß in der Theorie, dass die Fehlerprotokollierung irgendwo zwischen dem Auffinden des Fehlers und dem Beheben des Fehlers durchgeführt werden sollte, aber wenn das Beheben schneller ist als das Protokollieren, scheint es ein Problem zu sein. In größeren Code-Shops achtet der Chef darauf, wer was macht, und es ist schön zu wissen, wo andere herumalbern.

Ich beschreibe Dinge, die ich bereits behoben habe, und schließe sie dann sofort ab. Ich habe Zweifel, dass sich irgendjemand diesen geschlossenen Bug noch einmal ansehen wird. Ist es Zeit, das Prozessfett zu reduzieren?


6
Wenn Sie einen Fehler finden, notieren Sie den Fehler auf Papier. Wenn Sie den Fehler behoben haben, notieren Sie sich, welche Dateien geändert wurden. Bevor Sie das Update senden, protokollieren Sie den Fehler und senden Sie die Änderungen. Wenn Sie dies jedes Mal tun, wenn Sie sich daran gewöhnen, haben Sie derzeit eine schlechte Angewohnheit. Das Protokollieren von Fehlern ist keine Zeitverschwendung.
Ramhound

5
Wie können Sie sicher sein, dass diese Bugs trivial sind?

2
@ashansky, hast du sogar den zweiten Satz meiner Frage gelesen?
Philip

1
Wenn Sie Ihre eigene Arbeit nicht protokollieren, können Sie a) keine Gutschrift dafür erhalten und b) gefragt werden, warum X nicht ausgeführt wird und warum Sie an Y arbeiten.
Michael Durrant

1
Man kann nicht alles protokollieren, es ist einfach nicht praktisch. Warum springen manche Leute auf und ab und denken, dass manche, wie man ein paar kleine Dinge nicht protokolliert, überhaupt nicht protokolliert ???
Darknight

Antworten:


36

Sie sollten jede Änderung, die Sie an Ihrem System vornehmen, protokollieren. Es ist nichts Falsches daran, es nach dem Ereignis zu protokollieren - solange Sie den Fehlerbericht mit der Änderungsnummer verknüpfen.

Wenn dann jemals etwas schief geht, können Sie den Fehler nachverfolgen und herausfinden, warum Sie die vorgenommene Änderung vorgenommen haben.

In den allermeisten Fällen haben Sie Recht und niemand wird sich diese jemals wieder ansehen, aber im 1 von 100 Fällen, in denen etwas schief geht, sind diese Informationen von unschätzbarem Wert - insbesondere, wenn das Problem erst 6 Monate später auftritt.

AKTUALISIEREN

Wenn Sie noch eine neue Funktion entwickeln und einen Fehler in einem Teil der Funktion entdecken, von dem Sie dachten, dass Sie damit fertig sind, ist es offensichtlich nicht erforderlich, ihn als separate Änderung zu protokollieren. In diesen Fällen würde ich es gegen das Element protokollieren, das die Hauptfunktion anfordert.

Sobald das System mit dem Merkmal hat QA oder den Kunden weitergegeben worden ist , dann ist es notwendig , zu tun , was ich oben beschrieben.


Während der frühen Entwicklungsphase, bevor eine erste Version vom Engineering-Team veröffentlicht wird, müssen keine Änderungen im Bug-Tracker protokolliert werden. Die Änderungen werden jedoch in den Versionskontrollprotokollen für jede Einreichung vermerkt.
uɐɪ

@Ian Dies ist wahr, aber im Allgemeinen werden Sie während der frühen Entwicklung (vorausgesetzt, Sie meinen tatsächlich das Entwickeln und nicht das Erforschen von Prototypen oder dergleichen) in der Regel gegen eine Art Feature-Set arbeiten. In diesem Fall sollte jede Änderung mit den unterstützten Funktionen verknüpft werden. Kleinere Fehlerbehebungen in der Zeile bis zu einer "fertigen" Funktion könnten weiterhin eine Verknüpfung herstellen, um die Unterstützung dieses Elements anzuzeigen. Allerdings hängt dies davon ab, wie Sie Funktionen und Spezifikationen verfolgen.
CodexArcanum

1
@ Darknight - es ist nicht einfach! Dies wird durch die Tatsache unterstützt, dass wir TFS verwenden und es so eingerichtet haben, dass keine Eincheckvorgänge möglich sind, denen kein Arbeitselement zugeordnet ist. Ja, Sie können die Regel außer Kraft setzen, aber sie hört auf und lässt Sie darüber nachdenken, was Sie tun.
ChrisF

1
@ Darknight Sorry, aber diese Zahlen bedeuten nichts. Zu sagen, dass es nicht wahr ist; auch wenn Sie das alles bestätigen könnten, na und? Die einzige Schlussfolgerung, die ich aus Ihrer Darstellung dieser Zahlen ziehen kann, ist der Versuch, sich auf irgendeine Weise über andere zu positionieren, was, ganz offen gesagt, zwecklos, unnötig und grenzenlos unhöflich / anstößig erscheint.
casperOne

3
@All Bitte nimm diese Diskussion zum Chatten mit.
maple_shaft

14

Wenn Sie ein Versionsverwaltungs-Tool verwenden, können Sie den Fehler, den Sie in der Commit-Beschreibung behoben haben, beschreiben. Dies ist normalerweise eine ausreichende Dokumentation für sehr kleine, triviale Fehlerbehebungen.

Wenn Sie einen Bug- / Feature-Tracker verwenden, der vollständig in Ihre Quellcodeverwaltung und Repositorys integriert ist, wie z. B. FogBugz und Kiln , können Sie mit der globalen Suche nach diesen Bugfixes suchen und feststellen, welche Codeänderungen Sie vorgenommen haben leicht.

Außerdem können Sie Ihrem Programmierpartner eine Codeüberprüfung zuweisen, damit er die von Ihnen vorgenommene triviale Korrektur überprüfen kann, aber ich schweife ab ...


1
Ja, das mache ich. Obwohl ich manchmal finde, Dinge zu reparieren, während ich in einer Filiale bin, und sie in andere Commits zu bündeln.
Philip


@matthieu Warten Sie, integriert Jira mit SVN? Meine Güte, warum machen wir das nicht? Sieht so aus, als gäbe es ein paar Plug-Ins.
Philip

5

Aus metrischer Sicht kann es durchaus noch nützlich sein.

Diese Informationen könnten verwendet werden, um dem Chef eine Reihe von Dingen zu zeigen:

  • Wir brauchen mehr Entwickler
  • Etwas anderes im Prozess ist kaputt (warum so viele Bugs? Erzeugt der andere Typ die meisten Bugs), was vielleicht anzeigt, dass Sie zu viele Bugs haben. Vielleicht hat etwas damit zu tun? Entlassen Sie zu früh? Wird genug getestet?
  • Eine gute Liste von dem, woran Sie gearbeitet haben, gibt es in der Bonuszeit.

Das alles hängt davon ab, wie klein der Fehler ist, von dem Sie sprechen. Ein Liner, den Sie zufällig beim Hinzufügen von neuem Code entdecken, wäre wahrscheinlich sinnlos, um ihn beispielsweise zu protokollieren.


2

Ich versuche, jede Änderung, die ich vornehme, unabhängig von der Größe zu protokollieren. Sie wissen nie, wann Sie oder jemand anderes (zukünftig oder gegenwärtig) zurückgehen müssen, um zu sehen, ob diese Änderung die mögliche Ursache für etwas anderes ist.


1

Tracking ist wichtig, aber denken Sie auch an ein anderes Szenario: Wenn es Zeit für Ihre Überprüfung ist. Es wird formell persönlich oder informell geschehen, ohne dass Sie dort über Ihren Chef Berichte aus dem Bug-Tracker abrufen.

Betrachten Sie sie als "Gimmes", die Ihre Zahlen steigern. Schließlich handelt es sich um Fehler, die Sie behoben haben, und Sie sollten für die Behebung von Fehlern erkannt werden, auch wenn es sich um geringfügige Korrekturen handelt.

Log sie.


Ja, in größeren Code-Shops hat der Chef "Metriken", die darauf basieren, also ist es ein guter allgemeiner Rat. Es führt auch dazu, dass Leute den Bug-Tracker missbrauchen und diese Metriken in die sinnlose Hölle werfen. Aber hier sind es nur ich und der andere. Boss benutzt den Bug Tracker nicht.
Philip

1

Um dies zu beantworten, kommt es wirklich darauf an, wo Sie sich gerade befinden.

Diese können für ein neues Projekt oder einen neuen Funktionssatz gelten, der entworfen wird.

Anfängliches Design Wenn Sie Fehler in Code finden, den wir während des anfänglichen Designs erstellt haben, ist es nicht erforderlich, eine Fehlerspur dafür zu erstellen. Ich würde ein separates Commit für die Änderung vorschlagen, damit Sie es problemlos rückgängig machen können, wenn Sie später ein Problem finden.

Testen

Code wird beim Unit-Test normalerweise immer noch als unreif eingestuft. Wenn er nicht von einer anderen Gruppe ausgeführt wird, würde ich nein sagen. Wenn Unit-Tests von einer anderen Gruppe als einem Bug-Tracker durchgeführt werden, ist dies eine gute Möglichkeit, das Testverfahren zu formalisieren.

CSCI-Tests hängen davon ab. Wird es von einer anderen Gruppe gemacht? Wenn ja, dann ja (so). Ist dies der letzte Testschritt vor der Veröffentlichung? Dann ja, denn zu diesem Zeitpunkt sollte Ihre Software als ausgereift angesehen werden. Wenn Sie sich für Metriken interessieren, ist es auch sinnvoll, an dieser Stelle mit der Verfolgung von Fehlern zu beginnen.

Für eine höhere Teststufe sollten Sie Bug-Tracking verwenden. An diesen Punkten sollte Ihre Software als ausgereift betrachtet werden und die Verfolgung von Fehlern ist wichtig.

Veröffentlichung

Sie sollten Fehler im veröffentlichten Code immer nachverfolgen. Dies ist wichtig für die Rechenschaftspflicht.

Es ist auch wichtig, einen Prozess zu optimieren, der Ihren Anforderungen entspricht. Benötigen Sie wirklich ein riesiges Bug-Tracking-System? Sind wirklich alle Felder für ein Team von 2 Personen so wichtig?


1

Ist es möglich, dass jemand anderes auf den Fehler stößt, möglicherweise in einer älteren Version der Software, die für die Außenwelt freigegeben wurde? In diesem Fall kann es hilfreich sein, sowohl den Fehler als auch den Fix zu protokollieren.

Andere haben vorgeschlagen, dass es sich nicht lohnt, den Fehler zu protokollieren, wenn es länger dauert, als ihn zu beheben. Ich schlage vor, dass die relevante Zeitspanne nicht zwischen dem Auffinden und Beheben des Fehlers liegt, sondern zwischen dem Zeitpunkt, zu dem der Fehler eingeführt wurde, und dem Zeitpunkt, zu dem der Fix veröffentlicht wird.

Wenn der Änderungs- und Veröffentlichungsverlauf anzeigt, dass der Fehler nie das Licht der Welt erblickt hat, sollte es ausreichen, den Fix beim Einchecken in die Quellcodeverwaltung zu protokollieren.

Dies ist ziemlich nah an dieser Frage , aber ich bin nicht sicher, ob es sich um ein Duplikat handelt, da sich dieses auf triviale Korrekturen konzentriert.


1

Warum sollten Sie Fehler nicht aufspüren, von Jon Arid Torresdal - beheben Sie sie stattdessen.

  1. Während der Entwicklung: Sie stoßen auf einen Fehler für ein Feature. Sie fügen einen Testfall hinzu, der den Build bricht , und checken dann das Update gegen das Feature ein.

  2. Nach der Freigabe: Dokumentieren Sie das Verhalten . Wenn Sie vorhaben, ein Update zu veröffentlichen, gehen Sie zu Schritt 1. Wenn Sie nicht für dieses Update verantwortlich sind, bewahren Sie den Test + Fix in einem privaten Zweig auf.

Nach der Veröffentlichung des Codes kann es andere Prioritäten geben, und während die Behebung des Fehlers trivial sein kann, ist die Verteilung des Fixes möglicherweise nicht wirtschaftlich, es sei denn, Sie führen eine kontinuierliche Bereitstellung durch.


-6

Hängt davon ab, wie trivial ich diese Maßnahme verwende:

Wenn das Protokollieren länger dauert als das Beheben , lohnt es sich nicht , es zu protokollieren.


3
Nur weil die Protokollierung länger dauert als die Korrektur, ist dies keine ausreichende Begründung. Ha! Dieser hatte eine Erklärung :)
u

2
Ich habe das nicht abgelehnt, aber wenn ich raten müsste, warum es jemand getan hat, dann, weil er daran glaubt, alle Fehlerbehebungen zu protokollieren, oder weil er der Meinung ist, dass Ihre Antwort nicht sehr hilfreich / aufschlussreich ist.
CFL_Jeff

3
Ich werde es nicht ablehnen, aber ich stimme dem in der Regel nicht zu (obwohl ich in den meisten Fällen sehe, dass es Sinn macht!). Was wäre, wenn Sie einen Fehler hätten, der ausgeliefert wurde, aber durch das QA-Netz gelaufen ist? Die Protokollierung dauert länger als die
Reparatur

2
Wenn es nicht angemeldet ist, kann es von QA
17 vom 26.

3
-1 Dies ist nur Programmierer-Arroganz (' Ich mache keine Fehler') und Ignoranz (ich habe nichts Schlimmes mit kleinen Korrekturen gesehen). Ein wirklich sehr guter Crash und Burn von einem 'kleinen' Fix hilft normalerweise dabei (auch als Erfahrung bekannt).
Michael Durrant
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.