it-swarm.com.de

Wie soll ich mich erinnern, was ich vor drei Monaten bei einem Projekt gemacht habe?

Ich habe vor drei Monaten an einem Projekt gearbeitet, und dann erschien plötzlich ein weiteres dringendes Projekt und ich wurde gebeten, meine Aufmerksamkeit zu verlagern.

Ab morgen kehre ich zum alten Projekt zurück. Mir ist klar, dass ich mich nicht daran erinnere, was genau ich getan habe. Ich weiß nicht, wo ich anfangen soll.

Wie kann ich ein Projekt so dokumentieren, dass ich bei jedem Rückblick nicht länger als ein paar Minuten brauche, um von meinem Standort aus loszulegen? Gibt es Best Practices?

72
Aquarius_Girl

Ich wollte nur einige Ratschläge einbringen, die in Ihrer aktuellen Situation nicht nützlich sein werden, aber Sie können jetzt damit beginnen, sie umzusetzen, um in Zukunft zu helfen.

Natürlich gibt es die offensichtlichen Kandidaten wie Aufgabenlisten und Ausgabeprotokolle; Wenn Sie sich die kürzlich hinzugefügten Probleme ansehen, erhalten Sie einen Hinweis darauf, was Sie getan haben, als Sie vom Projekt ausgeschlossen wurden.

Bei früheren Projekten, an denen ich gearbeitet habe, wurde von den Mitarbeitern erwartet, dass sie im Rahmen des Qualitätsmanagementprozesses ein Projektprotokoll führen. Die Inhalte waren nicht sehr klar spezifiziert, aber die Idee war, ein tägliches Protokoll der Dinge im Zusammenhang mit dem Projekt zu führen, die für die weitere Arbeit in der Zukunft oder für Überprüfungsaktivitäten nach Abschluss nützlich sein könnten. zum Beispiel:

  • Beobachtungen zur Qualität des Projekts

    dieser Code kann Refactoring verwenden

    habe eine schnelle Implementierung durchgeführt, um dies zum Laufen zu bringen, aber ABC wäre besser.

  • Todo-Elemente/Probleme, die Sie nicht offiziell in einem Issue-Tracker aufzeichnen möchten

    "sollte diese Methode für x < 0 aber das ist derzeit nicht möglich.

  • Entwurfsentscheidungen - insbesondere nicht triviale.

    Unsere Standardsortierfunktion führt eine schnelle Sortierung durch, wobei jedoch die Reihenfolge der Elemente unter den hier benötigten Sortierbedingungen nicht gleich bleibt.

    Der offensichtliche Algorithmus wäre ABC , aber das schlägt hier fehl, weil x negativ sein könnte, also brauchen wir die verallgemeinerte Form (Wikipedia-Link)).

  • Probleme aufgetreten und wie Sie sie gelöst haben. Meiner persönlichen Meinung nach ein sehr wichtiges: Wenn Sie auf ein Problem stoßen, notieren Sie es im Protokoll.

    Der Code wurde überprüft, aber es wurde der Fehler XYZ0123 ausgegeben. Es stellte sich heraus, dass ich zuerst die Komponente C auf Version 1.2 oder höher aktualisieren musste.

Die beiden letztgenannten Punkte sind sehr wichtig. Ich bin oft auf eine ähnliche Situation oder ein ähnliches Problem gestoßen - manchmal in einem völlig anderen Projekt - und dachte "hmm, ich erinnere mich, dass ich einen Tag damit verbracht habe, aber was war wieder die Lösung?"

Wenn Sie nach einer Weile zu einem Projekt zurückkehren, sollten Sie durch das Zurücklesen des Projektprotokolls (unabhängig davon, ob es Ihr eigenes oder das des neuesten Entwicklers ist) wieder in den Fluss versetzt werden, den Sie beim Verlassen hatten, und Sie vor einigen der Fallen warnen, die Sie haben kann sonst wieder hineinfallen.

35
CompuChip

To-Do-Listen sind magisch. Im Allgemeinen müssen Sie für jedes Projekt eine aktive Aufgabenliste führen, und selbst wenn Sie mit dem Programmieren beschäftigt sind und an etwas denken, das erledigt werden muss und das Sie nicht sofort erledigen können, wird es in die Liste aufgenommen. Bewahren Sie diese Liste an einem bekannten Ort auf, entweder in einer Tabelle oder einer Textdatei im Projektordner auf elektronischem Wege oder in Ihrem Papierlogbuch.

Wenn Sie das Projekt über Nacht (oder über das Wochenende) verlassen, machen Sie sich eine Haftnotiz, schreiben Sie das nächste, was Sie tun würden, auf die Notiz und kleben Sie sie auf den Monitor. Das macht es wahrscheinlicher, dass Sie am nächsten Morgen schnell wieder darauf zurückkommen.

Bearbeiten :

Ich sollte erwähnen, dass Aufgabenlisten (speziell priorisierte Aufgabenlisten, die nach Veranstaltungsort und Projekt getrennt sind) ein wesentlicher Bestandteil des Buches Getting Things Done sind, das ich als sehr einflussreich empfand.

68
Scott Whitlock

Was nun?

Ab morgen kehre ich zu meinem alten Projekt zurück und stelle fest, dass ich mich nicht mehr daran erinnere, was ich genau getan habe und wo ich anfangen soll!

Ich vermute, Sie haben den nächsten Abschnitt noch nicht abgeschlossen. Das Nachschlagen einer Aufgabenliste funktioniert also nicht.

  1. Blockieren Sie einen Zeitraum. Tragen Sie dies in Ihren Kalender ein und verbringen Sie Zeit damit, das Projekt zu überprüfen. Dies kann das Überprüfen von Dokumentation, Code, Anforderungen usw. sein.
  2. Akzeptieren Sie, dass es eine Weile dauern wird, bis Sie wieder auf dem neuesten Stand sind. Stellen Sie sicher, dass alle Beteiligten dies erkennen. Stellen Sie sicher, dass Sie dies erkennen.
  3. Beginnen Sie mit einer kleinen Aufgabe. Bauen Sie Ihr Selbstvertrauen wieder auf, indem Sie etwas Kleines tun. Wenn Sie eine Liste neuer Elemente haben, arbeiten Sie zuerst kleinere durch. Dies stärkt nicht nur Ihr Vertrauen, sondern macht Sie auch wieder mit dem Projekt vertraut.

Wie können Sie dies in Zukunft für sich selbst verbessern?

Ich möchte wissen, wie ich das Projekt so dokumentieren kann, dass ich bei jedem Rückblick nicht länger als ein paar Minuten brauchen sollte, um von meinem Standort aus loszulegen!

Zunächst benötigen Sie ein System, mit dem Sie Ihre Aufgaben verfolgen können. Haben Sie jetzt ein solches System? Wie verwalten Sie Ihre aktuelle Projektarbeit?

Ich könnte morgen von einem Bus angefahren bekommen und mein Team hätte eine gute Vorstellung von weit über 90% meiner Aktionsgegenstände. Dies liegt daran, dass ich ein zusammenhängendes System zur Dokumentation meiner:

  • Sofortige Aufgaben (<1 Woche Artikel)
  • "Schön zu haben" todos
  • Meilensteine ​​und Makro-Aufgaben (bei denen Einzelheiten nicht aussagekräftig sind)
  • Anforderungen/Besprechungsnotizen

Außerdem verwende ich ein VCS und kommentiere meinen Code gegebenenfalls.

Dies funktioniert für mich und mein Team, da ich der Hauptentwickler bin. Sie können eine Art Problemverfolgungssystem für ein Team verwenden. Oder ein Rückstand bei der Arbeit mit Agile. Es gibt eine Menge Optionen. Wenn Sie wirklich daran interessiert sind, lesen Sie Getting Things Done oder andere relevante Methoden zur Aufgabenverwaltung, die aufgrund Ihrer Beschreibung fast genau existieren.

Was ist der Punkt?

Die Besonderheiten des Systems sind weniger relevant als das, dass es ein zusammenhängendes System ist und Sie verwenden es. Und dass du es benutzt. Und benutze es. Das ist wichtig. Wichtiger als ein schönes perfektes System, das Sie nicht verwenden. Mach nicht "gut, der größte Teil meiner Arbeit ist hier, aber einige sind in meinem Kopf", oder du wirst es hassen, wenn du wieder an einem Projekt teilnimmst.

Stellen Sie außerdem sicher, dass Ihre Kommentare "Warum" und nicht nur "Was" für Code erklären. Es ist viel einfacher zu lesen, "dies ist, um einen Fehler mit IE8 zu beheben" und sich daran zu erinnern, was der Code tut, als einen Kommentar, der lediglich die technischen Details erklärt.

33
enderland

Meiner Meinung nach besteht die "Wiederaufnahme" eines Code-Projekts aus zwei Teilen:

  1. Bestimmen, wo Sie aufgehört haben
  2. Denken Sie daran, was Sie noch tun müssen

Dies ist eines der Dinge, die, denke ich, wenn Sie die Versionskontrolle richtig durchführen, Ihr "anderes Gehirn" sein wird.

Wo hast du aufgehört? Solange Sie häufig Code festschreiben, sehen Sie sich Ihren letzten Änderungssatz an. Es wird höchstwahrscheinlich etwas in deinem Kopf joggen. Wenn nicht, schauen Sie sich die letzten paar an, beginnend mit den ältesten und wiederkehrenden Commits.

Was was Sie noch tun müssen betrifft, sollte ein Rückstand diesem Zweck dienen (oder eine Aufgabenliste oder wie auch immer Sie sie benennen möchten. Grundsätzlich Elemente für die Zukunft).

Ich bin kein Vollzeit-Softwareentwickler. Ich bin ein Programmierer, der nachts und am Wochenende hackt. Aus diesem Grund kann ich manchmal Tage und Wochen vergehen, wenn Arbeit oder andere nicht programmierende Dinge eine höhere Priorität haben, ohne meinen Code mit einem Blick aufzurufen. Das Obige hat sich als sehr effektiv erwiesen.

14
Thomas Stringer

Dies soll keine vollständige Antwort sein - es gibt bereits einige sehr gute, die wichtige Dinge wie die Verwendung Ihres VCS und Ihrer Projektmanagement-Software erwähnen -, sondern einen Nachtrag, der einige Punkte hinzufügt, die ich in keinem anderen gesehen habe, den ich nicht gesehen habe finde es sehr hilfreich, und ich hoffe, dass andere Leute es auch hilfreich finden.

1. Keine Aufgabe ist zu früh oder zu klein, um sie aufzuschreiben

Normalerweise erstellen die Leute TODO-Listen für Dinge, die sie in Zukunft tun möchten , aber da die Programmierung dies erfordert Konzentration, und da wir jederzeit unterbrochen werden können , fand ich es hilfreich, sogar aufzuschreiben was ich gerade mache oder was ich in Sekundenschnelle anfangen werde . Sie fühlen sich vielleicht in der Zone und können unmöglich die Lösung vergessen, die Sie gerade in diesem Aha Moment getroffen hat, aber wenn Ihr Kollege fällt von deinem Würfel, um dir ein Bild von seinem infizierten Zeh zu zeigen , und du kannst nur endlich ihn loswerden, indem du anfängst, an deinem eigenen Arm zu nagen , du wünschst vielleicht, du hättest es aufgeschrieben eine kurze Notiz, auch wenn nur auf einer Post-It ™ -Notiz.

Natürlich könnte ein anderes beständigeres Medium besser sein (ich mag besonders gerne OmniFocus ), aber es geht darum, es zumindest irgendwo zu haben , selbst wenn Sie in 20 Minuten fertig sind und dann das Post-It ™ wegwerfen. Obwohl Sie möglicherweise feststellen, dass diese Informationen nützlich sind, um dem Kunden Arbeitszeitnachweise oder Rechnungen zu erstellen, oder wenn Ihr Chef/Kunde Sie fragt, woran Sie gearbeitet haben und an was Sie sich nicht erinnern können. Wenn Sie alle diese Notizen in einer Box, einer Schublade oder einem Ordner ablegen und dann eine große Unterbrechung eintritt - ein unterbrechendes Projekt -, können Sie sie durchsehen und sich an viele erinnern Dinge, die Sie getan haben, um Ihren Code an den Punkt zu bringen, an dem Sie ihn finden, wenn Sie zum Projekt zurückkehren.

2. Verwenden Sie ein Whiteboard an Ihrem Schreibtisch, um Ideen für große Bilder zu erfassen

Ich habe ein 3 "x 4" Whiteboard neben meinem Schreibtisch, sodass ich beim Starten eines Projekts die Lösungen für alle Probleme, die ich in einem Projekt wahrnehme, erarbeiten kann. Dies können Architekturdiagramme, Anwendungsfälle, Listen von Risiken und Hindernissen oder alles sein, was für Sie relevant erscheint.

Bei einigen formalisierten Ansätzen müssen Sie Diagramme und Anwendungsfälle usw. als "Ergebnisse" in Papierform oder in elektronischer Form erstellen. Ich finde jedoch, dass dadurch ein erstellt werden kann. viel zusätzliche Arbeit, und werden Sie einfach eine Reihe von Teilprojekten, die vom eigentlichen Zweck des Hauptprojekts getrennt werden, und nur ein Teil eines formalisierten Prozesses, der Sie müssen tun, aber dass niemand viel Aufmerksamkeit schenkt. Ein Whiteboard ist die einfachste Sache, die tatsächlich funktioniert, zumindest meiner Erfahrung nach. Es ist so hartnäckig wie Sie möchten (mit einer Kamera) und ermöglicht es Ihnen vor allem, Ihre Ideen sofort zu verwirklichen.

Ich denke besser mit einem Stift in der Hand, daher ist es für mich selbstverständlich, meine Gedanken auf eine weiße Oberfläche zu werfen. Wenn Sie dies jedoch nicht für richtig halten, finden Sie hier einige Fragen, die Ihnen bei der Entscheidung helfen können, was relevant ist ::

  • Wenn ich der Hauptentwickler wäre, der 3 Monate lang Flitterwochen machen würde, während andere Entwickler das Projekt abschließen, welche allgemeine Richtung würde ich ihnen geben wollen? Welche Ideen möchte ich sicherstellen, dass sie Bescheid wissen, oder welche Ansätze möchte ich sicherstellen, dass sie umgesetzt werden? Welche Bibliotheken oder andere hilfreiche Lösungen möchte ich sicher sein, dass sie bekannt sind?
  • Wenn dieses Projekt meine Millionen-Dollar-Idee wäre, von der ich wusste, dass sie meine zukünftige finanzielle Unabhängigkeit sicherstellen würde, aber ich für eine kritische Operation geplant war, die mich für 3 Monate außer Gefecht setzen würde, was würde ich mir von meinem zukünftigen Selbst wünschen, um einen erfolgreichen Abschluss sicherzustellen das Projekt?

(Wenn ich Ideen zum ersten Mal aufschreibe, mache ich mir nur Sorgen, dass sie für mein gegenwärtiges Selbst einen Sinn ergeben. Sobald sie niedergeschlagen sind, kann ich sie kritischer betrachten und Änderungen vornehmen, um sicherzustellen, dass sie für mein zukünftiges Selbst oder für andere einen Sinn ergeben. Ich mache mir zu viele Sorgen Wenn Sie mit anderen kommunizieren , während Sie sie anfangs aufschreiben, kann dies zu einer Blockade der Autoren führen - ein Geist, der durch konkurrierende Ziele verstopft ist. Machen Sie es zuerst, sorgen Sie sich später um Klarheit.)

Ich empfehle Ihnen, das Geld auszugeben, um ein anständiges Whiteboard zu kaufen, mindestens 3 "x 4", und es an dem Ort aufzuhängen, an dem Sie normalerweise arbeiten. Ein physisches Whiteboard bietet gegenüber jedem virtuellen System viele Vorteile.

  • Es ist gross. Indem es viel Platz einnimmt, macht es seine Präsenz spürbar, und die Pläne darauf fühlen sich als Teil Ihres Arbeitsbereichs an und helfen Ihnen, die ganze Zeit in die richtige Richtung zu weisen.
  • Es ist dauerhaft vorhanden: Sie müssen keine bestimmte App oder Website starten, um darauf zuzugreifen, und Sie werden nicht riskieren, zu vergessen, wie Sie dorthin gelangen, oder zu vergessen, dass sie vorhanden ist.
  • Es ist sofort verfügbar, wenn Sie eine Idee haben, die Sie durchdenken möchten.

Sie verlieren viele Vorteile, wenn Sie nur ein Whiteboard in einem Besprechungsraum verwenden und dann mit Ihrem Telefon einen Schnappschuss machen. Wenn Sie mit dem Programmieren Geld verdienen, ist es die Kosten eines anständigen Whiteboards wert.

Wenn Sie ein anderes Projekt unterbrechen, das Ihr Whiteboard gefüllt hat, müssen Sie möglicherweise auf den Schnappschuss auf Ihrem Telefon zurückgreifen, aber zumindest haben Sie diesen in 3 Monaten Wenn das "dringende" Projekt abgeschlossen ist und Sie zum anderen zurückkehren müssen. Wenn Sie es dann auf Ihrem Whiteboard neu erstellen möchten, würde es wahrscheinlich nur 15 Minuten dauern, und Sie werden möglicherweise feststellen, dass Sie es dabei erheblich verbessern können, was diese kleine Zeitinvestition sehr lohnenswert macht.

3. Machen Sie die Stakeholder auf die Kosten für die Unterbrechung eines Projekts aufmerksam

Ich finde die Metapher eines Flugzeugs hilfreich: Das Starten und Abschließen eines Projekts ist wie das Fliegen eines Flugzeugs. Wenn Sie auf halbem Weg aus dem Flug aussteigen, sitzt das Flugzeug nicht nur in der Luft und wartet darauf, dass Sie dorthin zurückkehren, und Sie benötigen eine Möglichkeit, um vom aktuellen Projekt/Flug zum nächsten zu gelangen. Wenn Sie sich mitten in einem Flug von Phoenix nach Fargo befinden und erfahren, dass Sie diesen Flug unterbrechen müssen, um ein anderes Flugzeug von Denver nach Detroit zu nehmen, müssen Sie das erste Flugzeug in Denver landen (welches ist glücklicherweise nicht weit von Ihrer Flugbahn entfernt - was bei echten Unterbrechungen nicht immer der Fall ist) und jemand muss herausfinden, was mit der Fracht und den Passagieren zu tun ist. Sie werden nicht einfach sitzen und ewig warten.

Der Punkt für Projekte ist, dass der Übergang von einem Projekt zu einem anderen einen hohen Zeitaufwand verursacht und viele lose Enden hinterlässt, die behandelt werden müssen.

In einem Projekt passiert offensichtlich und unweigerlich viel in Ihrem Kopf, während Sie arbeiten, und nicht jeder Gedanke kann auf ein schriftliches Medium serialisiert werden, und nicht jedes Jota dieser Gedanken dass serialisiert sind, bleibt beim Deserialisieren erhalten. Obwohl wir unsere Gedanken teilweise schriftlich festhalten können, handelt es sich um ein sehr verlustbehaftetes Format.

Das Problem (wie ich es sehe) ist, dass Projektmanager und andere Geschäftsleute Projekte als eine Reihe von Schritten betrachten, die oft nach Belieben neu angeordnet werden können (es sei denn, es besteht eine explizite Abhängigkeit von ihrem Gantt-Diagramm) und leicht unter den Menschen verteilt werden können oder verzögert, bis es für das Geschäft am bequemsten ist.

Jeder, der eine Menge Programmierung durchgeführt hat, weiß, dass Softwareprojekte nicht wie Lego-Blöcke behandelt werden können, die nach Belieben verschoben werden können. Ich finde, dass die Metapher des Flugverkehrs den Stakeholdern zumindest etwas Konkretes gibt, über das sie nachdenken können. Dies kann eindeutig nicht als eine Reihe unterschiedlicher Schritte behandelt werden, die aus einer Laune heraus neu angeordnet werden müssen. Es macht es zumindest leicht, zu verstehen , dass solche Unterbrechungen Kosten verursachen. Natürlich ist es immer noch ihre Entscheidung, aber Sie möchten sie darauf aufmerksam machen, bevor sie ein Projekt unterbrechen, um Ihnen ein anderes zu geben. Seien Sie nicht kämpferisch, sondern bieten Sie hilfreiche Informationen und die hilfreiche Perspektive des Entwicklers, der bereit ist, alles zu tun, was er von Ihnen benötigt, sondern nur Informationen, die er möglicherweise nicht kennt, wenn Sie es ihm nicht mitteilen.


Zusamenfassend:

  1. Schreiben Sie alles auf, was Sie tun müssen , auch wenn Sie nicht glauben, dass Sie es jemals brauchen könnten, es aufzuschreiben. Sogar ein kurzer Bleistift schlägt eine lange Erinnerung.
  2. Brainstorming des Gesamtbilds auf einem physischen Whiteboard, auf das Sie dauerhaft zugreifen können.
  3. Sie können Projektunterbrechungen vermeiden, wenn Sie Entscheidungsträgern bewusst machen, dass solche Unterbrechungen Kosten verursachen, und zumindest haben Sie Erwartungen festgelegt, damit sie wissen, dass das Projekt etwas länger dauern wird wenn Sie es fortsetzen.
10
iconoclast

Sie können den Projektverlauf in Ihrer Versionskontrollsoftware von vor drei Monaten nachschlagen. Lesen Sie Ihre Commit-Nachrichten und die neuesten Unterschiede, um eine Vorstellung davon zu bekommen, woran Sie gearbeitet haben.

2
Kevin

Die Verwendung eines Versionsverwaltungssystems mit geeigneten Verzweigungs- und Zusammenführungsstrategien in Verbindung mit einem Problemverfolgungssystem (wie Redmine oder GitHub ) hilft Ihnen dabei, die von Ihnen vorgenommenen Änderungen zu unterteilen gemacht, geben Sie ihnen Anweisungen und dokumentieren Sie Ihren fehlenden 'Kontext' als natürlichen Teil des Workflows.

  1. Stellen Sie vor dem Starten einer Codeänderung sicher, dass in Ihrem Problemverfolgungssystem ein Problem protokolliert ist. Das deckt das fehlende Stück "Was habe ich getan" Ihrer Arbeit ab.
  2. Erstellen Sie eine Verzweigung in Ihrem Versionsverwaltungssystem, und stellen Sie sicher, dass Ihre Änderungen in dieser Verzweigung NUR mit dem oben genannten Problem zusammenhängen. Dies hilft Ihnen dabei, Änderungen zu isolieren, gibt Ihnen einen Verlauf der Änderung und beantwortet die Frage "Wo habe ich aufgehört?". Sobald Sie später wieder daran arbeiten.
  3. Wenn Sie mit der Änderung fertig sind, führen Sie sie wieder in Ihren Kofferraum ein und schließen Sie das Problem.
2
BTownTKD

Wie kann ich ein Projekt so dokumentieren, dass ich bei jedem Rückblick nicht länger als ein paar Minuten brauche, um von meinem Standort aus loszulegen?.

Zunächst einmal bedeutet dies, dass das Projekt eine allgemeine Beschreibung und Codestruktur enthält, die Sie in wenigen Minuten leicht erfassen können - im Gegensatz zu zig Millionen Codezeilen ohne erkennbare Struktur und ohne Kommentare.

Gibt es Best Practices?

Die folgenden Best Practices habe ich während meiner mehr als 20-jährigen Karriere in sehr kleinen bis sehr großen Projekten angewendet und sie haben mir und meinen Teams gute Dienste geleistet. Bewerben Sie sich in der angegebenen Reihenfolge, wenn Ihr Projekt wächst:

  1. Versionskontrolle verwenden Dies gibt Ihnen eine kostenlose Aufzeichnung darüber, was wann passiert ist und wer die Änderungen angewendet hat. Außerdem können Sie jederzeit problemlos auf eine frühere Version zurückgreifen.

  2. Modularize Ihr Code (verwenden Sie je nach Sprache und Programmierumgebung Klassen, Module, Pakete, Komponenten).

  3. Dokument ​​Ihr Code. Dazu gehören eine zusammenfassende Dokumentation am Anfang jeder Datei (was macht das? Warum? Wie wird sie verwendet?) Und spezifische Kommentare auf der Ebene der Funktionen, Prozeduren, Klassen und Methoden (was macht sie? Argumente und Rückgabewerte /). Arten? Nebenwirkungen?).

  4. Füge TODO und FIXME Kommentare hinz während du codierst. Dies hilft dabei, sich an das Warum und Was von Macken zu erinnern, die unweigerlich in Ihre Codebasis gelangen und die Sie später fragen werden WTF? !. Z.B.:

    //TODO shall actually compute X and return it
    ... some code that does not compute X yet (maybe returns a fixed value instead)
    
    //FIXME make this constant time instead of n^2 as it is now 
    ... some code that works but is not efficient yet
    
  5. Machen Sie es sich zur Gewohnheit, Diagramme zu zeichnen um Struktur und komplexes Verhalten wie Abfolgen von Aufrufen zwischen Modulen/Objekten/Systemen usw. zu dokumentieren. Ich persönlich bevorzuge MLet , da es schnell zu verwenden ist, erstellt schöne Grafiken und steht Ihnen vor allem nicht im Weg. Aber natürlich sollten Sie jedes Zeichenwerkzeug verwenden, das Sie für die Arbeit finden. Denken Sie daran, dass der Zweck solcher Zeichnungen darin besteht, kurz und bündig zu kommunizieren und kein System bis ins kleinste Detail anzugeben (!!).

  6. nit-Tests hinzufügen frühzeitig. Unit-Tests eignen sich nicht nur hervorragend für Regressionstests, sondern sind auch eine Form der Verwendungsdokumentation für Ihre Module.

  7. Code-externe Dokumentation hinzufügen frühzeitig. Beginnen Sie mit einer README, die die erforderlichen Abhängigkeiten beschreibt, um das Projekt auszuführen und zu entwickeln, wie es installiert wird, wie es ausgeführt wird.

  8. Machen Sie es sich zur Gewohnheit, sich wiederholende Aufgaben zu automatisieren. Z.B. Kompilierungs-/Build-/Testzyklen sollten in einer bestimmten Form ausgeführt werden (z. B. in JavaScript grunt, in Python fabric, in Java Maven). . Dies wird Ihnen helfen, schnell auf dem Laufenden zu bleiben, wenn Sie zurückkommen.

  9. Wenn Ihr Projekt wächst, fügen Sie weitere Dokumentation hinzu, indem Sie Quellcodedokumente generieren (unter Verwendung von JavaDoc-Kommentaren und einem geeigneten Tool zum Generieren von HTML oder PDF daraus).

  10. Wenn Ihr Projekt über eine einzelne Komponente hinauswächst und eine komplexere Bereitstellung aufweist, müssen Sie Design- und Architekturdokumentation hinzufügen. Beachten Sie erneut, dass der Zweck darin besteht, Struktur und Abhängigkeiten zu kommunizieren und nicht winzige Details.

1
miraculixx

Es gibt viele lange Antworten. Dies ist eine kurze Beschreibung dessen, was mir am meisten hilft:

  • Code bereinigen.
  • Code bereinigen.
  • Code bereinigen.
  • Versionskontrolle (Unterschiede und Commit-Kommentare).
  • Eine Post-It-Notiz oder eine Todo-Liste oder ein Kanban-Board (siehe z. B. Trello und Evernote)

Diffs, Commit-Kommentare, Post-It-Notizen, Todo-Listen oder Kanban-Board können jedoch im Laufe der Zeit mangels Kontext falsch interpretiert werden. Hier ist also das Wichtigste:

CLEAN CODE.

1
phresnel

Ich führe täglich ein Tagebuch über meine Arbeit. Was habe ich heute gemacht, was war heute schwierig, was ist der nächste Schritt, welche Ideen hatte ich heute für die Zukunft. Ich füge auch ein wenig Erzählung darüber hinzu, wie der Tag war: Gab es ein interessantes Gespräch oder Treffen? Hat etwas Ärger oder Freude? Dies hilft, die Dinge ins rechte Licht zu rücken, wenn ich später mein Tagebuch lese.

Wenn ich nach einer Weile zu einem Projekt zurückkehre, lese ich die letzten Einträge im Journal, um mich mit dem Projekt vertraut zu machen. All diese kleinen Details des Alltags sind unglaublich wichtig, um sich an den Entwicklungsprozess zu erinnern. Sie machen wirklich einen großen Unterschied zu einer Aufgabenliste oder einer regulären Projektdokumentation, da sie Sie daran erinnern, wie es war, an dem Projekt zu arbeiten und nicht nur, wie man das Produkt verwendet.

0
bastibe

Für mich ist die einfachste Methode, Projekte fortzusetzen, darin, ständig Notizen zu Ihrer Arbeit zu machen. Ich finde, dass Microsoft 'OneNote' besonders gut zum Speichern und Gruppieren von Seiten mit Notizen geeignet ist. Insbesondere die Suchleiste macht es extrem einfach, Ihre Notizen zu etwas schnell zu finden.

Hier sind einige Dinge, die ich in OneNote mache, um den Fortschritt bei Projekten wieder aufzunehmen:

  • Tägliche/wöchentliche Protokolle - Führen Sie ein tägliches oder wöchentliches Fortschrittsprotokoll, um herauszufinden, welche Fortschritte Sie bereits mit einem Projekt erzielt haben.

  • To-Do-Liste - Ich habe eine allgemeine To-Do-Liste, aber ich führe auch eine separate To-Do-Liste für die Projekte, an denen ich arbeite, damit ich mich daran erinnere, was ich noch zu tun habe für ein Projekt. Ich lasse manchmal auch // TODO: Elemente in meinem Code.

  • Projektnotizen - Zu den Dingen, die ich notiere, gehören Links zu Problem-/Projektverfolgungselementen, Codeausschnitte, aufgetretene Probleme, getroffene Entscheidungen, Pläne und Beschreibungen möglicher Lösungen, Liste der Codeänderungen, Links zum Code-Repository-Verzeichnis, E-Mails für das Projekt und Links zur Projektdokumentation.

Wenn ich also zu einem Projekt zurückkehre, kann ich meine Notizen öffnen und fast sofort sehen, wie viel Fortschritt im Projekt erzielt wurde, wie viel Arbeit noch zu tun ist und sogar meinen Gedankengang sehen.

0

Zusätzlich zu den Vorschlägen zu Projektverfolgung, Aufgabenlisten, Trello usw. habe ich einmal gelesen, dass es beim Üben von TDD immer hilfreich ist, sich von Ihrem Projekt zu entfernen, wenn Sie zum Projekt zurückkehren (morgen) , nächste Woche oder nächsten Monat)

Setzen Sie sich, führen Sie "Tests ausführen" durch und beginnen Sie dort, wo Sie aufgehört haben.

0
Pete

Zusätzlich zu den Kommentaren/Aufgabenlisten/Commits ist es wichtig, realistisch zu sein.

Abhängig von der Größe, Komplexität und dem Zustand, in dem Sie Ihre Arbeit verlassen haben, kann es eine Weile dauern, bis Sie wieder mit einem Projekt beginnen. Bei einer umfangreichen Codebasis vieler interagierender Komponenten kann es Tage dauern, bis die volle Geschwindigkeit erreicht ist.

Gute alte Geduld wird nützlich sein.

Wenn ich überwältigt bin, nachdem ich nach einer Weile zu einem Projekt zurückgekehrt bin, nehme ich im Allgemeinen die einfachste und kleinste Aufgabeneinheit und implementiere sie. Es verhindert, dass ich mich verliere und versuche, mich an viele Dinge gleichzeitig zu erinnern, und erhöht das Selbstvertrauen ein wenig. Meistens übernehme ich in wenigen Stunden automatisch immer größere Aufgaben.

0
Amol