it-swarm-eu.dev

Wie verfolgen Sie Fehler in Ihren persönlichen Projekten?

Ich versuche zu entscheiden, ob ich meinen Fehlerverfolgungsprozess für meine eigenen Projekte neu bewerten muss. In den letzten Jahren verfolge ich Fehler nur mithilfe von TODO -Tags im Code und verfolge sie in einer bestimmten Ansicht (ich verwende Eclipse, das über ein anständiges Tagging-System verfügt).

Leider frage ich mich, ob dieses System nicht nachhaltig ist. Die Fehler, die ich finde, hängen normalerweise mit einem Codeausschnitt zusammen, an dem ich arbeite. Fehler, die nicht sofort verstanden werden, werden häufig vergessen oder ignoriert. Ich habe einen Antrag für meine Frau geschrieben, die seit fast 9 Monaten einen schweren Defekt hat, und ich vergesse immer wieder, ihn zu beheben.

Welchen Mechanismus verwenden Sie, um Fehler in Ihren persönlichen Projekten zu verfolgen? Haben Sie ein bestimmtes System oder einen Prozess zur Priorisierung und Verwaltung?

45
bedwyr

Fogbugz (kostenlose Einzellizenz), wenn es sich um ein längeres Projekt oder eine einfach zu erledigende Liste handelt (mithilfe von Google-Aufgaben)

25
Amit Wadhwa

Normalerweise verwende ich ein webbasiertes Revisionskontrollsystem (Github, Bitbucket, Redmine, Google Code, ...), um meinen Quellcode zu speichern und Fehler zu verfolgen. Wenn Sie der Meinung sind, dass ein bestimmter Code einen Fehler enthält, können Sie ein Problem mit der Versionsnummer/Änderungsliste/dem Änderungssatz erstellen und angeben, welche Datei und welchen Zeilenbereich Sie vermuten.

17
Thierry Lam

Früher habe ich pro Projekt eine Tabellenkalkulations-/Textdatei verwendet (ToDo-Kommentare im Code lassen sich aus den von Ihnen angegebenen Gründen nicht gut skalieren; sie sind lokal für den Code, und wenn es ein Problem gibt, das nicht der Fall ist, rutscht es in der Regel durch Risse).

Kürzlich habe ich einen Redmine Server in meinem Heimnetzwerk eingerichtet. Es ist ein bisschen schwer für ein "Team" von einem, aber ich arbeite in meiner Freizeit an einigen Projekten und verwende in der Regel nur die Issue Tracker + Repository-Optionen mit möglicherweise der einen oder anderen Wiki-Seite an komplexeren Stellen.

Ein Freund von mir schwört auf Pivotal Tracker für die gleichen Zwecke, aber mein derzeitiger Arbeitgeber verwendet Redmine intern, sodass ich dachte, dies würde mir etwas Übung geben. Es ist nicht schlecht.

Für Open Source-Projekte verwende ich nur das Issue Tracking von GitHub.

8
Inaimathi

Ich habe das Free Mantis Bugtracker-System tatsächlich auf meinem gehosteten Webserver installiert (den ich für ein Blog und andere Dinge verwende) und alle meine Mängel darin behoben.

Mit anderen Worten, ich leite meine Sachen so, als wären sie professionell und bezahlt.

Ich finde, es hilft dabei, eine bessere Denkweise zu bewahren (Fehler zu schließen usw.) und mit anderen in der Industrie üblichen Praktiken in Einklang zu stehen (ish).

Verwenden Sie TODO-Notizen auch im Code usw. - aber nur für Notizen wie oben: "Eines Tages muss ich dies effizienter gestalten, die Blasensortierung beeinträchtigt die Leistung." Oder für direktere Notizen darüber, wo du angekommen bist, als du zum Abendessen abgeholt wurdest :)

7
quickly_now

Ich benutze das Programm ToDo List, einen Open Source Code aus Codeproject

http://www.codeproject.com/KB/applications/todolist2.aspx

Sehr schön und mit vielen Funktionen.

5
Aristos

Wir verwenden JIRA an meinem Arbeitsplatz und ich bin ein großer Fan davon. Viele Produkte und Leute sind involviert und es schafft alles ganz gut.

5
PatrickJ

Ich habe vor einiger Zeit nach einer Antwort darauf gesucht und seitdem ein sehr ordentliches und einfaches System ausgearbeitet, das diese Hauptziele für mich erfüllt:

Ziele in der Reihenfolge ihrer Wichtigkeit:

  1. Machen Sie es möglich, eine neue Aufgabe/einen neuen Fehler so mühelos wie möglich einzugeben, damit ich ihn notieren kann, sobald ich ihn sehe oder erträume, und zum Codieren zurückkehren kann, bevor ich meinen Platz verliere.
  2. Machen Sie es einfach, die Probleme zu sehen und zu verwalten, ohne viel suchen, klicken und einen Drilldown durchführen zu müssen.
  3. Machen Sie es sich einfach, sich an die Versionskontrolle zu binden, damit ich später herausfinden kann, welche Änderungen zur Behebung eines Problems vorgenommen wurden oder welche Aufgabe oder welcher Fehler zu einer bestimmten Änderung des Codes geführt hat.
  4. Machen Sie die Einrichtung relativ einfach: minimale Installation und Konfiguration und minimaler Preis.

(3 und 4 sind weniger wichtig, und ich wäre mit einem System einverstanden gewesen, das sie nicht bereitgestellt hat, aber dieses tut es).

Schritt 1: Holen Sie sich ein Projekt in Bitbucket

Ich verwende bitbucket zur Problemverfolgung und zur Git-Versionskontrolle (zum Beispiel für ein iOS-Projekt in XCode). Ich habe mir FogBUGz (über das ich jahrelang in JoelOnSoftware gelesen habe) und GitHub und andere angesehen, aber Bitbucket scheint die besten kostenlosen Funktionen für kleine Teams zu haben.

Schritt 2: Verwenden Sie Bitbucket Issue Tracking im Projekt

Als nächstes habe ich die Problemverfolgung im selben Bitbucket-Projekt eingerichtet. Mein Projekt verfügt nun über ein Git-Repository und eine Problemverfolgung.

Schritt 3: Machen Sie die Problemverfolgung einfach!

Dafür verwende ich Bitbucket Cards , ein schönes, einfaches kanbanartiges Frontend für die Bitbucket-Probleme. Sie müssen sich nur bei Ihrem Bitbucket-Konto anmelden und die gewünschten Spalten einrichten. Ich habe vier Spalten: Backlog, Next, Bugs und Resolved. (Ich denke darüber nach, Bugs mit Backlog zusammenzuführen, aber das macht mir vorerst nichts aus.)

Bitbucket Cards example (Dieses Bild stammt aus dem Bitbucket Cards-Blog, nicht aus meinem Projekt, daher unterscheiden sich die Spalten von denen, die ich verwende.)

Mit Bitbucket Cards können Sie für jede Liste einen sehr einfachen Filter einrichten, in dem Sie den Status und die Art (en) der Probleme auswählen, die in einer Kartenspalte auftreten. Also, open Statusprobleme der Art bug gehen in die Spalte Bug .

Column definition (Dieser stammt aus meinem Projekt: So wähle ich aus, was in der Spalte "Fehler" steht.)

Was wirklich cool ist, ist, dass beim Ziehen und Ablegen einer Karte von einer Spalte in eine andere der Status des Problems, das die Karte darstellt, automatisch so geändert wird, dass er dem in der Definition der Zielspalte entspricht.

Eine weitere schöne Sache bei Bitbucket-Karten ist, dass es nicht leicht zu einer Zeitüberschreitung kommt. Dies ist von entscheidender Bedeutung, da das Ziel dieser gesamten Einrichtung darin besteht, es einfach zu machen. Dieses System funktioniert also für mich, anstatt dass ich dafür arbeite. Ich öffne ein Lesezeichen für meine Kartenseite und es bleibt den ganzen Tag auf einem Tab Chrome) geöffnet.

Dies kümmert sich um mein 2. Ziel.

Schritt 4: Binden Sie es mit der Versionskontrolle.

Bitbucket-Probleme passen gut zur Versionskontrolle (wie bei den meisten Mitbewerbern). Wenn ich mit der Arbeit an einem Problem fertig bin, schreibe ich es mit der Meldung "Das Ding wurde zum Whatsit hinzugefügt. Fixes # 245". Wenn ich dies festschreibe, dann Push it und dann meine Bitbucket Cards-Seite neu lade, wird das Problem in die Spalte Behoben verschoben. Cool.

Da ist mein 3. Ziel erreicht.

Schritt 5: Erleichtern Sie das Erstellen von Problemen.

Sie denken wahrscheinlich, dass die Einrichtung dieser gesamten Einrichtung bereits viel zu kompliziert ist, und warum sollte ich dem Prozess eine weitere Web-App hinzufügen? Denken Sie an mein Hauptziel oben: Ich möchte es so einfach machen, eine Aufgabe hinzuzufügen, dass ich nicht meinen Gedankengang verliere, bevor ich zum Textbereich komme, um sie einzugeben, und ich möchte auch nicht meinen Platz verlieren der Code, wenn ich fertig bin.

Mit Bitbucket Cards kann ich jetzt problemlos Aufgaben erstellen ziemlich, aber es ist nur ein bisschen zu klickend/scrolly, um Ziel 1 vollständig zu erreichen. Sie müssen auf Problem erstellen klicken. dann erscheint ein modaler Editor; Nach Eingabe Ihres Problemtitels müssen Sie nach unten scrollen, um die Art (Fehler/Aufgabe) und die Priorität anzugeben. Klicken Sie dann auf Erstellen.

Stattdessen habe ich mich für eine zweite Bitbucket-App namens taskrd entschieden.

Sie können taskrd einrichten, indem Sie ihm Ihr Bitbucket-Login geben, es auf ein Lesezeichen und einen Tab setzen und es den ganzen Tag geöffnet lassen, genau wie Bitbucket-Karten. Taskrd hat einen viel einfacheren Workflow zum Hinzufügen einer neuen Aufgabe. Geben Sie ihn einfach ein, optional Legen Sie die Art und Priorität fest und klicken Sie auf die Schaltfläche Hinzufügen.

tasrkd interface (Dieses Bild stammt aus dem Taskrd-Blog)

Nun ist es wohl nicht die Mühe wert, Taskrd über die Verwendung von Bitbucket-Karten oder sogar Bitbuckets eigenem Issue-Entry-System einzurichten. Schließlich muss ich mit Taskrd auf eine Registerkarte in meinem Browser klicken und auf meiner Seite mit Bitbucket-Karten auf Neu laden klicken, damit sie aktualisiert und das neue Problem abgerufen wird, das ich in der Taskrd-App hinzugefügt habe. Tatsächlich stelle ich jedoch fest, dass ich mich im Allgemeinen im Modus oder im anderen befinde: Entweder verwende ich Bitbucket-Karten, um zu organisieren, was ich als Nächstes mache, oder um die Fehlerliste zu durchsuchen, oder ich bin damit beschäftigt, Aufgaben zu codieren und einzugeben/Bugs, wie sie mir einfallen - alles im Schnellfeuermodus. Für diese zweite Arbeitsweise ist der Taskrd großartig: Ich lasse ihn einfach auf einem separaten Monitor offen und gebe während der Arbeit schnell Probleme ein.

Das deckt also Ziel 1 ab.

Mein letztes Ziel war einfach/billig einzurichten. Gut billig ist es: all dies ist kostenlos. Bitbucket hat kostenlose private Repositories für bis zu fünf Benutzer und die anderen Apps waren kostenlos. Das Setup scheint auf der Grundlage des oben Gesagten nicht trivial zu sein, aber der komplizierteste Teil war das Einrichten von git für Push in das Bitbucket-Repository, das überall gleich sein wird. Ich musste nichts installieren und das Verbinden beider Apps mit meinem Bitbucket-Repository war ziemlich einfach. Das Einrichten der Kartenspalten, wie ich sie mochte, erforderte ein wenig Herumspielen, war aber nicht wirklich schwierig.

Wenn ich das zurücklese, könnte ich für Bitbucket ein bisschen schillern - aber das will ich wirklich nicht. Es ist nur so, dass ich diesen Prozess seit Wochen verwende - nachdem ich jahrelang verschiedene Konfigurationen ausprobiert habe, um zu verfolgen, was ich tue - und ich grabe ihn wirklich, also dachte ich, ich würde mir die Zeit nehmen, ihn für andere auszulegen.

4
Rhubarb

Ich benutze die $ 10 Starter Lizenz für Jira. Es ist billig und ich kenne es schon gut von der Arbeit.

3
speshak

Wenn Sie mit der Verwendung von TODO-Tags in Eclipse vertraut sind, besteht ein einfacher Schritt darin, Mylyn zu verwenden. Im einfachsten Fall handelt es sich um eine einfache Aufgabenliste. Es verknüpft aber auch den Kontext mit Aufgaben - klicken Sie auf eine Aufgabe, um sie zu aktivieren, erledigen Sie einige Aufgaben. Wenn Sie sie das nächste Mal aktivieren, öffnet Eclipse die relevanten Klassen und zeigt Ihnen die relevanten Methoden. Noch leistungsfähiger ist, dass Mylyn Aufgaben von diesen Systemen abrufen und in Ihrer IDE präsentieren kann, wenn Sie irgendwann zu einem anderen Fehlerverfolgungssystem wechseln.

Bei den meisten Eclipse-Downloads dieser Tage ist Mylyn standardmäßig enthalten. Durchsuchen Sie einfach die Aufgabenlistenansicht und fügen Sie Aufgaben hinzu.

3
RevBingo

Ein bisschen überrascht, dass dies noch niemand gesagt hat, aber es gibt verteilte Fehlerverfolgungslösungen, die als Teil Ihrer verteilten Quellcodeverwaltung fungieren, d. H. Die Fehlerdatenbank lebt mit Ihrem Code in Ihrer Revisionskontrolle. Bekannte Implementierungen umfassen "Bugs Everywhere", Fossil und Ditz.

Siehe https://stackoverflow.com/questions/773818/distributed-projectmanagement-bug-tracking und https://stackoverflow.com/questions/1851221/distributed-bug-tracker- to-go-with-dvc? rq = 1 für eine Diskussion.

2
Niall Douglas

Wie andere hier verwende ich entweder eine Textdatei oder den Bug-Tracker, der in den dvcs-Hosting-Service integriert ist.

Vieles hängt davon ab, um was für ein "persönliches Projekt" es sich handelt. Wird es jemals das Licht der Welt erblicken oder ist es nur ein Experiment? Wird dieses Projekt von der Öffentlichkeit genutzt?

Zum Beispiel wurde eines meiner persönlichen Projekte mäßig populär und das Einrichten einer Get Satisfaction -Seite dafür funktionierte wirklich gut. Nicht wirklich "Bug Tracking", aber es funktionierte hervorragend für Bug/Feature-Anfragen.

2
Mike

Für persönliche Projekte reichen mir normalerweise TODO-Kommentare und eine Textdatei mit TODOs und Bugs etc. aus.

1

Für meine persönlichen Projekte verwende ich Omnifocus.

Update: 25.10.2010 Wenn ich einen Fehler finde, den ich nicht sofort beheben kann oder will, füge ich ihn schnell dem Omnifocus-Posteingang hinzu. Wenn ich später eine Überprüfung durchführe, sammle ich alle Informationen, die ich für erforderlich halte, um den Fehler zu beheben, und füge sie dann dem Projekt hinzu. Die Position in der Aufgabenliste zeigt die relative Bedeutung an.

Ich behandle Fehler in den meisten Punkten genauso wie Anforderungen/Funktionen.

1
Henry

Ich benutze ToDoList für meine persönlichen Projekte; Es ist leicht, kostenlos und hat viele Funktionen. Ich bin mir nicht sicher, wie gut es für Teamprojekte skaliert, aber es ist großartig, wenn ich alleine arbeite. Ich bin mir nicht sicher, wie ich mit der integrierten Aufgabenliste von Visual Studio so lange überlebt habe, es ist Mist.

1
Andrew Arnold

Wir verwenden eine Kombination aus JIRA und Google Text & Tabellen. Ich habe mir andere Tools angesehen, da unsere JIRA-Installation älter als Schmutz ist und nicht so einfach zu bedienen ist wie die neueren, schickeren Drag & Drop-Schnittstellen.

Ich habe mir Manymoon, Zoho Projects, Insightly, Redmine und Assembla angesehen. Wir werden mit dem Assembla free Stand Up Tool experimentieren. Es ist eine sehr einfache 3-Feld-Berichtsoberfläche, die jedem Teammitglied 3 Fragen stellt: Was haben Sie letzte Woche getan? Was wirst du diese Woche machen? Welche Hindernisse stehen Ihnen im Weg?

Am Ende denke ich, dass ich mich an JIRA, Google Docs und das Assembla Stand Up-Tool halten werde, da die Kombination mir alles bietet, was ich brauche.

1
jmort253

Ich mag Trac am meisten, weil es leicht, einfach zu bedienen und einfach zu konfigurieren ist. Das integrierte Wiki und der elegante Repository-Browser sind ein großes Plus.

Bei der Arbeit verwenden wir JIRA, das auch sehr nett, aber nicht so einfach zu verwalten ist. Und ich vermisse wirklich ein Wiki (die Integration mit Confluence ist nicht so toll) und einen guten Repository-Browser (wir haben nur ViewVC).

1
Simon

Ich benutze Trac seit einigen Jahren. Ich habe auch Bugzilla und JIRA verwendet. Meine persönlichen und privaten Beratungsprojekte beinhalten Trac, einfach weil ich daran gewöhnt bin und um ein Projekt in meinem persönlichen Entwicklungs-Setup in Gang zu bringen, ist so wenig Aufwand erforderlich, weil der Aufwand vorbei ist. Ich habe Trac mit allem verbunden, was ich brauche, einschließlich SVN oder Git und Hudson (oder besser Jenkins jetzt).

Bei einigen Kundenprojekten gibt es im Allgemeinen keine andere Wahl als das, was sie verwenden, was leider oft genug nichts oder etwas im Haus ist. Ich bin überrascht, wenn sie in letzter Zeit einen Bug-Tracker haben. Persönlich freue ich mich auf ein besseres Angebot der OSS-Community als Trac. Es erledigt Dinge, aber heutzutage scheint es so ein Patchwork zu sein.

1
Johnny

Ich benutze mein eigenes TheKBase (da ich unter OSX bin, benutze ich es auf .Net in einer virtuellen Maschine oder Mono, je nach Stimmung). Nur für einen gleichzeitigen Benutzer, aber: Es sind mehrere Hierarchien zulässig, sodass vom Task-Manager zum Informationsmanager keine Schritte dazwischen fehlen. Außerdem ist es Open Source auf Github und kostenlos (das ist offensichtlich, denke ich).

Für die Neugierigen sind Anweisungen hier .

1
Dan Rosenstark

Wenn Sie ReSharper verwenden, hat es ein TODO tracker, das Ihnen eine Liste aller TODOs, NOTEs und BUGs in Ihrer Lösung zeigt. Außerdem werden sie in Ihrem Code in einer beliebigen Farbe hervorgehoben. Ich finde das bei meinen eigenen Projekten sehr nützlich.

0
Nobody

Ich sehe keinen Sinn darin, formale Fehlerverfolgung für kleine Ein-Mann-Projekte zu verwenden. Normalerweise führe ich nur eine (sehr kurze) mentale Liste und behebe die Fehler, sobald ich auf sie aufmerksam werde. Natürlich ist dies nicht für große Projekte/Projekte mit mehreren Personen skalierbar, aber der Punkt ist, dass dies nicht erforderlich ist.

0
dsimcha