Dies soll keine vollständige Antwort sein - es gibt bereits einige sehr gute, die wichtige Dinge wie die Verwendung Ihres VCS und Ihrer Projektverwaltungssoftware erwähnen -, sondern vielmehr einen Nachtrag, der einige Punkte hinzufügt, die ich in keinem anderen Punkt gesehen habe finde es sehr hilfreich, und ich hoffe, andere Leute finden es auch hilfreich.
1. Keine Aufgabe ist zu früh oder zu klein, um sie aufzuschreiben
Die Leute machen normalerweise TODO-Listen für Dinge, die sie in Zukunft planen , aber da das Programmieren Konzentration erfordert und wir jederzeit unterbrochen werden können , fand ich es hilfreich, selbst das aufzuschreiben, was ich gerade mache. oder was ich in wenigen Sekunden anfangen werde . Sie können fühlen Sie sich in der Zone, und Sie könnten möglicherweise nicht die Lösung vergessen , dass Sie treffen gerade in diesem aha Moment, aber wenn Ihre Mitarbeiter durch Ihre Würfel fallen Ihnen ein Bild von seinem infizierten Zehen zu zeigen , und du bist Nur wenn Sie anfangen, an Ihrem eigenen Arm zu nagen , können Sie ihn endgültig loswerden. Vielleicht wünschen Sie sich, Sie hätten eine kurze Notiz aufgeschrieben, auch wenn nur auf einer Post-It ™ -Notiz.
Natürlich ist ein anderes, beständigeres Medium besser (ich mag OmniFocus besonders ), aber es geht darum, es wenigstens irgendwo zu haben , auch wenn Sie in 20 Minuten fertig sind und das Post-It ™ dann wegwerfen. Obwohl Sie möglicherweise feststellen, dass diese Informationen nützlich sind, um Arbeitszeitnachweise oder Rechnungen an den Kunden zu senden, oder wenn Ihr Chef / Kunde Sie fragt, woran Sie gearbeitet haben und Sie sich nicht erinnern können. Wenn Sie all diese Notizen in eine Schachtel, eine Schublade oder einen Ordner legen, und wenn eine große Unterbrechung auftritt - ein unterbrechendes Projekt -, können Sie sie durchsehen und sich an viele Dinge erinnern, die Sie getan haben, um Ihren Code an den Punkt zu bringen, an dem Sie sich befinden Finden Sie es, wenn Sie zum Projekt zurückkehren.
2. Verwenden Sie ein Whiteboard an Ihrem Schreibtisch, um große Bildideen festzuhalten
Ich habe ein 3 "x 4" großes Whiteboard neben meinem Schreibtisch, sodass ich zu Beginn eines Projekts die Lösungen für alle Probleme finden kann, die ich in einem Projekt wahrnehme. 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 "Liefergegenstände" in Papier- oder elektronischem Format generieren. Ich bin jedoch der Meinung, dass dies eine Menge zusätzlicher Arbeit verursachen und zu einer Reihe von Teilprojekten werden kann, die enden Sich vom eigentlichen Zweck des Hauptprojekts trennen und nur Teil eines formalisierten Prozesses sein, den Sie durchführen müssen, dem aber niemand viel Aufmerksamkeit schenkt. Ein Whiteboard ist nach meiner Erfahrung das Einfachste, was überhaupt funktioniert. Es ist so ausdauernd wie Sie möchten (mit einer Kamera) und ermöglicht es Ihnen vor allem, Ihre Ideen sofort umzusetzen.
Ich denke besser mit einem Stift in der Hand, so dass es für mich selbstverständlich ist, 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 leitende Entwickler wäre und drei Monate auf Hochzeitsreise gehen würde, während andere Entwickler das Projekt abschließen würden, welche allgemeine Anweisung 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 sollten mir bekannt sein?
- Wenn dieses Projekt meine millionenschwere Idee wäre, von der ich wusste, dass sie meine zukünftige finanzielle Unabhängigkeit sicherstellen würde, aber ich war für eine kritische Operation angesetzt, die mich 3 Monate lang außer Gefecht setzen würde das Projekt?
(Wenn ich Ideen zum ersten Mal niederschreibe, sorge ich mich nur darum, dass sie für mein gegenwärtiges Ich Sinn ergeben. Wenn sie einmal niederschlagen, kann ich sie kritischer betrachten und Änderungen vornehmen, um sicherzustellen, dass sie für mein zukünftiges Ich oder für andere Sinn ergeben Die Kommunikation mit anderen, während Sie sie anfänglich aufschreiben, kann zu einer Schreibblockade führen - ein Geist, der durch konkurrierende Ziele verstopft ist.
Ich empfehle, dass Sie das Geld ausgeben, um ein anständiges Whiteboard zu kaufen, mindestens 10 x 12 cm, und es an dem Ort aufhängen, an dem Sie normalerweise arbeiten. Es gibt viele Vorteile eines physischen Whiteboards gegenüber einem virtuellen System.
- Es ist gross. Indem es viel Platz einnimmt, wird seine Präsenz spürbar, und die darin enthaltenen Pläne scheinen Teil Ihres Arbeitsbereichs zu sein, sodass Sie immer in die richtige Richtung weisen können.
- Es ist permanent vorhanden: Sie haben keine bestimmte App oder Website gestartet, um darauf zuzugreifen, und Sie riskieren nicht, zu vergessen, wie Sie dorthin gelangen, oder zu vergessen, dass es 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 müssen, das Ihr Whiteboard gefüllt hat, müssen Sie möglicherweise auf den Schnappschuss Ihres Telefons zurückgreifen, aber zumindest haben Sie diesen in 3 Monaten, wenn das "dringende" Projekt abgeschlossen ist und Sie müssen kehre zum anderen zurück. Wenn Sie es dann auf Ihrem Whiteboard neu erstellen möchten, dauert es wahrscheinlich nur 15 Minuten, und Sie werden feststellen, dass Sie es in diesem Prozess erheblich verbessern können, wodurch sich dieser kleine Zeitaufwand sehr lohnt.
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 Flugzeug aussteigen, wartet das Flugzeug nicht nur darauf, dass Sie wieder dorthin zurückkehren, sondern Sie benötigen auch 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 nur sitzen und ewig warten.
Für Projekte bedeutet dies, dass der Übergang von einem Projekt zu einem anderen einen hohen Zeitaufwand bedeutet und viele Probleme mit sich bringt, die gelöst werden müssen.
In einem Projekt passiert offensichtlich und unvermeidlich viel in Ihrem Kopf, während Sie arbeiten, und nicht jeder Gedanke kann auf ein schriftliches Medium serialisiert werden, und nicht jedes Jota der Gedanken, die serialisiert werden, bleibt beim Deserialisieren zurück. Obwohl wir unsere Gedanken teilweise schriftlich festhalten können, handelt es sich um ein sehr verlustreiches 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 Menschen verteilt werden können oder verzögert, bis es für das Geschäft am bequemsten ist.
Jeder, der schon viel programmiert hat, weiß, dass Softwareprojekte nicht wie Legoblöcke behandelt werden können, um sie nach Belieben zu verschieben. Ich finde, dass die Metapher des Flugverkehrs zumindest den Beteiligten etwas Konkretes gibt, über das sie nachdenken können, und das eindeutig nicht als eine Reihe von unterschiedlichen Schritten betrachtet werden kann, 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 ihn nicht informieren.
Zusamenfassend:
- Notieren Sie alles , was Sie über zu tun, auch wenn Sie nicht denken, könnten Sie jemals möglicherweise benötigen abgewertet. Sogar ein kurzer Stift schlägt eine lange Erinnerung.
- Brainstorming des Gesamtbilds auf einem physischen Whiteboard, auf das Sie dauerhaft zugreifen können.
- Sie können Projektunterbrechungen vermeiden, wenn Sie Entscheidungsträgern bewusst machen, dass solche Unterbrechungen mit Kosten verbunden sind, und Sie zumindest Erwartungen haben, damit sie wissen, dass das Projekt bei der Wiederaufnahme etwas länger dauert.