Der beste Weg, um Ihren kognitiven Zustand schnell zu verbergen, wenn Sie Unterbrechungen einfach nicht vermeiden können


21

Ich weiß nicht einmal, ob diese Frage Sinn macht ... aber lassen Sie mich das beleuchten ...

Stellen Sie sich vor ... Sie sind völlig in Programmiergedanken / -ideen / -konzepten versunken , Ihr Gehirn ist im aktivsten Zustand, wenn es darum geht , eine Lösung für ein Problem zu finden, oder wie Joel Spolsky es ausdrückt - Sie sind tief in Ihrer "Zone" "- AND, plötzlich bricht jemand oder ein Ereignis Ihre Verstrickung - etwas, das Sie einfach nicht vermeiden können, etwas, um das Sie sich kümmern müssen. ... die Vorstellungskraft ist voll. Zurück zur Realität

Etwas, das Ihre Konzentration brechen kann, kann sein ...

  • Sie werden zu einer dringenden Besprechung gerufen
  • Ihr Code hat den täglichen Build unterbrochen und Ihr Kollege ruft Sie an
  • Sie haben sich nur an etwas erinnert, was Sie tun mussten, aber vergessen, es zu tun
  • Ihr Teamkollege hat aufregende Neuigkeiten zu berichten und besteht darauf, dass Sie zuhören
  • Ihre Freundin (oder Ihr Freund) ist gerade herübergekommen

Nehmen wir nun an, Sie haben nur 5-10 Minuten Zeit, um das zu verlassen, worauf Sie vertrauen, und die Unterbrechung zu unterhalten.

Meine Frage ist - wie können Sie schnell den Geisteszustand "retten", in dem Sie sich befanden, als die Umleitung kam? Schreiben Sie es in "irgendeiner Form" auf ein Blatt Papier oder einen Computer oder "erinnern" Sie sich nur irgendwie daran? Wie können Sie diese genauen Gedanken innerhalb von 5-10 Minuten retten, damit Sie später, wenn Sie zurückkommen, direkt von dem "Punkt" aufholen können, den Sie verlassen haben.

Es passiert mir oft so, dass ich mich einfach nicht an die genauen Gedanken erinnern kann, die ich vor dem Schlag gedacht habe - und ich habe das Gefühl, dass ich eine gute Idee oder eine Lösung für ein Problem verloren habe. Ich versuche, rückwirkend zu denken, um zu dem gleichen kognitiven Zustand zu gelangen, der mich über eine Idee aufgeregt hat - aber ich bin frustriert, nicht in der Lage zu sein, dorthin zu gelangen.

Passiert dir so etwas? Wie "erholen" Sie sich davon?

Mein Hauptanliegen ist nicht Code - es sind diese "abstrakten Ideen", die noch nicht in Code umgewandelt wurden, die ich irgendwie "speichern" muss.

- update -

Nach diesen vielen Jahren kann ich zuversichtlich sagen, dass es KEINE Möglichkeit gibt, dies zu tun. Kein einziges Mal, wenn Sie Ihren kognitiven Zustand auf ein Blatt Papier kritzeln, können Sie ihn so wiederherstellen, wie er war. Unser Gehirn ist viel komplexer als das Kritzeln von Schnipsel, wenn es um die Informationen geht, die es zu jedem Zeitpunkt aktiv hält.

Der beste Weg ist, die Ablenkung zu vermeiden, egal wie wichtig sie ist, es sei denn, es ist eine Situation auf Leben und Tod. Nichts ist wichtiger, als in der Zone zu sein und sie zu beenden.

Wenn Ihr Arbeitsplatz so naiv ist, dass Sie das "Sein in der Zone" nicht schätzen, sollten Sie sich nach einem neuen Arbeitsplatz umsehen. YMMV obwohl. Und bei den persönlichen Beziehungen sind es soziale Fähigkeiten und eine Prise Artikulativität, die eine Welt des Guten bewirken können.


Ich würde empfehlen, ein Mindmapping-Tool wie FreeMind zu verwenden. Oder Emacs Org-Modus. Beides ist praktisch, um Aufgaben und Ideen von TODO schnell und einfach zu bearbeiten. (und
sichern

Antworten:


19

Bevor ich meinen PC verlasse, schreibe ich auf ein Post-It oder ein Blatt Papier. Ich mache das normalerweise sowieso als Teil einer Fehlerbehebung oder Analyse. Es ist sehr hilfreich, wenn ein Bug später (wieder) geöffnet wird. Sie können immer noch Ihre Gedankengänge von vor einem Monat sehen und schneller herausfinden, was Sie tun müssen.

Außerdem: Setzen Sie einige Lesezeichen in Ihren Code. Wenn Sie zurückkommen, können Sie überprüfen, was Sie getan haben, indem Sie die von Ihnen gesetzten Lesezeichen anzeigen.


2
+1. Nach meiner Erfahrung klärt sich das Aufschreiben Ihrer Handlungen von selbst auf und hilft auch dann, wenn ich mich nicht auf das beziehe, was ich später geschrieben habe .
Jimwise

+1 Ich stimme zu, es in "irgendeiner Form"
aufzuschreiben

2
+1: Es gibt alle Arten von kognitiver Forschung, um dies zu unterstützen. Es ist, als würde man sich beim Anhören einer Vorlesung am College Notizen machen. Je mehr Teile Ihres Gehirns Sie im Moment beschäftigen können, desto größer ist die Chance, dass Sie sich an die Details halten.
Bob Murphy

Notizbuch für mich und ich, obwohl ich es mache, während ich vorwärts gehe, dann streiche ich sie durch, wenn ich fertig bin. Außerdem hinterlasse ich Teilcode mit absichtlichen Kompilierungsfehlern und einer Meldung, was zu tun ist.
Newtopian

8

Ich hole die lokale Notizblockanwendung heraus und schreibe meinen Plan für die kommenden Dinge auf.

Ich habe festgestellt, dass dies am meisten hilft. In 100% der Fälle kann ich mich nicht erinnern, was ich vorhatte, als ich zurückkam. Ideen sind leicht zu finden, aber erinnern Sie sich an die tatsächlichen Schritte, die Sie ausführen wollten?

Ich benutze so etwas wie;

+ Fix i.d bug
    - look at first name , problem?
    - ...

+ Deploy changes to test database

+ Come up with production deployment plan

Ich speichere es auf dem Desktop und lasse die Datei geöffnet.

Ich fand, dass dies für mich diese Vorteile hat;

  • Es dauert 5 Minuten
  • Es ist einfach, in die "Zone" zurückzukehren
  • Es löst die Erinnerungen leichter aus

das ist, was ich auch tue - dachte nur, jemand könnte eine bessere Idee haben :)
Treecoder

Ich weiß nicht, ob es zu diesem Zeitpunkt eine Möglichkeit gibt, ein perfektes Bild Ihrer Ideen zu speichern. Aber ich werde Schlüsselwörter eingeben, um das Ganze wieder in den Griff zu bekommen, und über diese Idee nachdenken und sie kurz mit diesen Worten in Verbindung bringen, während ich sie aufschreibe. Eine andere Idee, wenn dies fehlschlägt, sind Diagramme, und ich habe dies viel getan, als ich eine 3D-Engine als Hobby programmiert habe. Auf diese Weise konnte ich meine Ideen oder mein Endziel visualisieren, sie auf Papier speichern und zurückkommen und sogar noch bessere Ergebnisse erzielen, als wenn ich aufgehört hätte.
Ross

5

Neben dem ausgezeichneten Vorschlag, Dinge aufzuschreiben, ist dies eine Fähigkeit, die mit ...

Trainieren.

Früher war ich das schlechteste Multitasking-Team der Welt. Die Leute hatten Angst, mich zu unterbrechen, weil mir das so unangenehm war. Dann wurde mir klar, dass es nicht wie eine CPU mit mehreren parallelen Kernen war, sondern wie ein Interrupt mit Task-Switches. Also fing ich an, mich zu trainieren, um mich zu entspannen und es als notwendigen Teil des Lebens zu akzeptieren.

Seit einem Jahrzehnt verwende ich ein Pomodoro-ähnliches System, bei dem ich einfach eine Pause mache, wenn der Timer abläuft. Es ist erstaunlich einfach, nach ein paar Minuten Pause in einer entspannten Umgebung "in die Zone" zurückzukehren - ich freue mich darauf! Und für längere Unterbrechungen sind diese schriftlichen Notizen von unschätzbarem Wert. Ich kann fast den gesamten mentalen "CPU-Status" jetzt ziemlich einfach wiederherstellen, es sei denn, es vergeht mehr als ein Tag.

Außerdem bin ich nicht mehr so ​​mürrisch, wenn Leute es tun, weil ich es jetzt gewohnt bin, mit Unterbrechungen umzugehen. Ich habe es auch viel besser gemacht, einfach zu sagen: "Warte einen Moment, während ich mir eine Notiz mache." Es ist erstaunlich, wie viel angenehmer meine sozialen Interaktionen sind!

Das Gehirn ist wie ein mentaler Muskel, und bei Dingen wie Multitasking wird es besser, wenn Sie es zunehmend schwieriger trainieren.


4

Das passiert die ganze Zeit! Wenn ich gerade Code schreibe, kann ich 90% der Leute anweisen, ein paar Sekunden zu warten - sie wissen, dass es in ihrem besten Interesse ist, mich nicht zu stören. Während dieser paar Sekunden zerdrücke ich absichtlich einige Tasten in der Zeile des Codes, an dem ich gearbeitet habe, und markiere die obige Zeile mit XXX (dies wird in vim gut hervorgehoben).

Der Code wird püriert, sodass das Programm nicht kompiliert werden kann und ich gezwungen bin, mir diese Zeile anzuschauen. Für die meisten meiner Sprachen, in denen ich schreibe, reicht dies aus, um zu sehen, wo ich aufgehört habe, und mein Gedächtnis schnell in den produktiven Zustand zu versetzen.

Ich habe auch gelernt, dass es heutzutage ein Luxus ist, in "der Zone" zu sein (durch den Umgang mit ständigen Unterbrechungen). Zwar ist es in Bezug auf die Produktivität definitiv nicht ideal, aber es zwingt Sie, das Beste aus dem herauszuholen, was Sie haben.


3

Ich habe herausgefunden, dass ich immer, wenn ich mit git arbeite, weniger Probleme habe, die Arbeit hinter mir zu lassen (und vor allem weiter daran zu arbeiten). Das liegt nicht an git selbst, sondern an den Methoden, die ich beim Erlernen von git-Workflows angewendet habe. Ich spreche von Themenzweigen .

Wenn Sie alle wichtigen Aufgaben in Ihrer Entwicklung in einem speziellen Themenbereich erledigen, ist es viel einfacher, zu Ihrer Arbeit zurückzukehren. Hier ist der Grund.

  • Topic Branch liefert Kontext. Sie haben ihm einen aussagekräftigen Namen gegeben, damit Sie wissen, worauf Sie achten.
  • Die Geschichte hat einen kleineren und lineareren Geltungsbereich. Wenn Sie an kleineren Änderungssätzen (Zweigen) arbeiten, müssen Sie wahrscheinlich weniger Festschreibungen durchführen und diese sind linear (es gibt keine nicht zusammenhängenden Festschreibungen dazwischen).
  • Wenn Sie Zweigstellen löschen, wenn Sie mit einem Thema fertig sind, ist es einfacher zu verstehen, an welchen Themen Sie gearbeitet haben, und was noch wichtiger ist, welche weiterhin Ihre Aufmerksamkeit erfordern

Wenn Sie Disziplin haben, erleichtert diese Arbeitsweise das Verlassen Ihrer Arbeit und das spätere Aufnehmen.

Wenn ich an etwas arbeite, finde ich immer etwas, das mit meinem aktuellen Thema zu tun hat. Auch hier zahlt sich eine Disziplin aus. Beenden Sie entweder Ihre aktuelle Arbeit. Wenn dies nicht möglich ist (ich habe häufig dieses 'Problem' - 'Ich muss es jetzt beheben' usw.), erstellen Sie einfach einen neuen Zweig für das Fix (oder Refactoring, Verbesserung, was auch immer). Selbst wenn Ihr aktueller Arbeitsbereich noch nicht bereit ist, sich zu verpflichten, erledigen git stashSie die kleine Arbeit in einem eigenen Thema und popkehren Sie aus dem Versteck zu Ihrer eigentlichen Arbeit zurück.


3

Um den Status der Aufgabe zu erhalten und zu einem anderen zu wechseln, liebe ich es, den Kontext von Mylyn beizubehalten. Mylyn speichert und stellt später den genauen Status Ihrer IDE wieder her (offene Perspektive, geöffnete Dateien, Speicherort in diesen usw.).

Für Dinge, die ich tat, gab ich TODO-Kommentare ein. Eclipse zeigt diese automatisch als Aufgabenliste an.


2

Ich entwickle in einer VM. Und wenn ich unterbrochen werde (Tagesende, Mittagessen, Besprechungen usw.) und meine Gedanken nicht verlieren möchte, schreibe ich einfach einen Kommentar in den Code, so etwas wie:

//Figure out how to implement "Date range too far out" check correctly

Manchmal gehen diese Kommentare für ein paar Zeilen weiter, wenn es kompliziert ist. Aber ich schreibe einfach den Kommentar in den Code, in die IDE, lasse die IDE geöffnet und benutze den Befehl "Suspend and Exit" auf der VM. Wenn ich es dann wieder hochziehe, ist mein Kommentar direkt vor mir, was mir hilft, schnell zu dem zurückzukehren, woran ich vorher gedacht habe.


1

Ich habe mich an die Verwendung von Mind-Mapping-Software (derzeit FreeMind) gewöhnt. Ich benutze es für alles, aber es enthält eine To-Do-Liste für jedes Projekt, an dem ich arbeite. Während ich mir eine Lösung für ein bestimmtes Problem in der Liste überlege, schreibe ich es in meine Mind Map. Dort speichere ich meine Lösung, auch während ich daran arbeite, anstatt zu versuchen, alles in meinem Kopf zu behalten.

Damit möchte ich mich auf die Details der Code-Implementierung konzentrieren, ohne das Gesamtbild zu verlieren. Das bedeutet auch, dass Unterbrechungen nur minimale Auswirkungen auf meine Arbeit haben, da ich die Schritte, denen ich folgen möchte, sowieso irgendwo aufzeichnet.

Die von Ihnen verwendete spezifische Software oder Verfolgungsmethode ist irrelevant. Diese Idee wäre genauso nützlich in Notepad oder mit einem Stück Papier. Das relevante Konzept ist, dass Sie Ihre Ideen so aufzeichnen, wie Sie sie haben, damit sie immer verfügbar sind.


1

Wenn Sie sich in einer Umgebung mit vielen Unterbrechungen befinden, halte ich ein stündliches Tagebuch (notieren Sie sich stündlich ein paar Aufzählungszeichen) für sehr nützlich. Ich benutze eine Kombination aus TiddlyWiki und paper (Tiddly zum Dokumentieren / Durchsuchen, paper zum schnellen Nachdenken).

Ich habe damit angefangen, als ich von zu Hause aus mit einem Kleinkind gearbeitet habe, und das hat meine Produktivität auf ganzer Linie gesteigert. Es hilft bei dem unmittelbaren Problem, meine Gedanken wiederzuentdecken, und hat den netten Nebeneffekt, mein Selbstbewusstsein zu steigern (ich habe letzte Woche eine Stunde damit verbracht, eine 10-Zeilen-Bit-Banging-Methode zu modifizieren, um sie besser lesbar zu machen. Wahrscheinlich nicht die beste Verwendung meiner Zeit).


+1 danke für TiddlyWiki - ich habe es vorher verwendet, hätte aber nie gedacht, dass ich es verwenden könnte, um schnell meine Gedanken zu "serialisieren" :)
treecoder

@greengit - ich bekomme eine Menge Kilometer davon. Ich behalte mein Tagebuch, Lösungsprotokoll und Rückstand darin. Ich benutze es, um Leistungsbewertungen durchzuführen. Ich mache viele Ein-Mann-F & E-Projekte, an denen jedes Jahr einige Wochen gearbeitet wird (natürlich vor den Demos) und die dann wieder eingestellt werden. Ich wäre verloren, wenn ich nicht die Möglichkeit hätte, mein Gehirn zu stützen. Ich mag TiddlyWiki, weil es immer noch persönlich ist und ich nicht an die Formalitäten schreiben muss, die ich für ein Unternehmenswiki oder ein Dokument hätte, das jeder verstehen sollte.
Steve Jackson

empfehlen Sie auch die Desktop-Version (die Standard-Version) oder ccTiddly - die vom Server unterstützte Inkarnation von tiddlyWiki
treecoder

@greengit - Ich verwende die Desktop-Version und einen Cron-Job, um sie auf einer Netzwerkfreigabe zu sichern. Ich habe die ccTiddly-Version nicht verwendet, aber es sieht so aus, als würden die meisten Funktionen durch die Projekt-Wikis abgedeckt, die wir für die Zusammenarbeit bei Projekten eingerichtet haben. ccTiddly scheint auf einen meiner Wunschzettel zu stoßen - die Möglichkeit, Dateien an Tiddler anzuhängen - aber ich füge Links nach Bedarf ein.
Steve Jackson

0
  • Denken Sie dabei laut in einem Entwickler-Log-Dokument nach
  • Gehirn-Dump in das Protokoll, wenn Sie unterbrochen werden
  • Stellen Sie sicher, dass Sie das nächste, was Sie tun würden, aufschreiben

Ersteres ist eine Versicherung gegen Unterbrechungen, Zurückverfolgen und spätere Wiederholungen, während Letzteres unerlässlich ist, um dort fortzufahren, wo Sie aufgehört haben


0

Ich habe einen laufenden Kommentar in einem Notizblock neben mir. Ich habe versucht, dies in einer Notizblockdatei zu tun, aber aus irgendeinem Grund funktioniert es nicht so effektiv wie das Aufschreiben. Wenn Sie in Bezug auf das, was Sie als Ihre Arbeit notieren, vernünftig organisiert sind, haben Sie effektiv einen Kernspeicher für Ihre abstrakten Gedanken, auf den Sie zurückkommen können.


0

Was mir sehr geholfen hat (auch für "OK, jetzt gehe ich nach Hause und komme morgen wieder zur Arbeit"), war es, ständig einige Gedanken in meinem Kopf festzuhalten und dann Dinge von dieser Liste zu streichen.

Aber es hängt definitiv davon ab, (i) diese Liste aktiv zu verarbeiten - zumindest zu löschen, anstatt Hunderte von halbfertigen "Aufgabenlisten" zu erstellen, zu denen Sie zurückkehren möchten, und (ii) genug zu üben, um die Erfahrung zu haben um zu wissen, was Sie schreiben müssen und was nicht - welche Aufgaben über die Schaltfläche "Symbolleiste hinzufügen" verfügen und welche Details des Designs Sie das nächste Mal auswendig können und ohne welche Aufgaben Sie die Hälfte der Planung bereits ausgeführt haben es zu realisieren und Sie müssen sich das notieren.

Vermeiden Sie außerdem unnötige Ablenkungen. Es ist immer gut, über eine Ablenkung hinweg weitermachen zu können, und es wird immer einige geben, aber ermutigen Sie nicht zu viele.


0

Ich habe tatsächlich mehrere Fehler verursacht, weil ich in einer früheren Firma in den Mittagspausen hastig und abrupt unterbrochen wurde. Am Ende fragte ich nach ein paar weiteren Minuten oder ging einfach ohne mich, nur um mich zum Beitritt zu zwingen, und so ließ ich den Code halb geschrieben, den Gedanken halb vollständig, nur um eine Stunde später zum Code zurückzukehren und zu verlieren verfolgen und Dinge falsch machen.

Am Ende fing ich an, das zu kompensieren, indem ich mir Notizen machte und Aufgabenlisten aufschrieb und sozusagen einen "flacheren mentalen Stapel" aufrechterhielt. TDD hilft auch, da die Tests ausdrücken, was Sie mit einem Design tun möchten und sicherstellen, dass Sie es tun.

Ich habe auch eine Sprache entwickelt, die irgendwo zwischen dem liegt, was mir intuitiv wie Codierung erscheint, und der menschlichen Sprache. Es besteht aus Klängen wie " Nyargh! Bloobly-bloop! " Und ich mache diese Klänge manchmal, wenn Leute versuchen, mit mir zu sprechen, während ich beschäftigt bin. Obwohl sie diese Geräusche nicht verstehen, zeigt dies, dass ich im Moment nicht in der Lage bin, richtig mit Menschen zu kommunizieren. An diesem Punkt entfernen sie sich und ermöglichen mir, weiter zu denken und Code zu schreiben.

Das heißt, meine Frau hat sich an die Idee gewöhnt, dass sie mit mir sprechen könnte und ich nicke und so weiter und habe kein einziges Wort, das sie sagte, mental verarbeitet. Es ist, als würde ich sehen, wie sich ihr Mund bewegt und Geräusche herauskommen, aber es wird nicht richtig in Maschinenanweisungen übersetzt. Sie hat gelernt, meine Reaktionen zu bemerken, wenn das passiert, während ich in Gedanken versunken bin.

Manchmal bearbeite ich auch das, was sie gesagt hat, zur Hälfte und schiebe es einfach in die gleichzeitige Warteschlange, als würde sie mir eine Frage stellen, zu welchem ​​Zeitpunkt ich es nicht vollständig verarbeiten kann, bis ich alles aus meiner mentalen Warteschlange entfernt habe (was sehr ineffizient ist) Verriegelungsmechanismen für die Fadensicherheit). Also hat sie sich daran gewöhnt, mir eine Frage mit nur einem Nicken und keiner Antwort oder einer unsinnigen Antwort wie "Ja" oder "Blödsinn" zu "Was willst du heute Abend tun?" Zu stellen. Nur für mich, um es zehn Minuten später zu verarbeiten und die Frage zu beantworten, als hätte ich es erst vor einer Sekunde gehört.

Ich weiß auch nichts über euch, aber ich bin ziemlich zerstreut, wenn ich mich in Programmiergedanken verliere. Am Ende habe ich ewig nach meinen Socken gesucht und vergessen, wo ich sie hingelegt habe. Irgendwie habe ich sie in den Kühlschrank gestellt. Ich glaube, ich habe versucht, ein Getränk oder etwas mit meinen Socken in der Hand zu nehmen, und irgendwie habe ich die Socken in den Kühlschrank gestellt und vergessen, das Getränk zu nehmen. Zu einer anderen Zeit ging ich zu einer Müllkippe, nachdem ich mein Auto mit meinen Autoschlüsseln in der Hand geparkt hatte und versuchte, eine Verpackung, die ich hatte, in den Müll zu werfen. Stattdessen warf ich meine Autoschlüssel in die Müllkippe und bemerkte es erst, als ich versuchte, das Auto mit der Plastikhülle aufzuschließen. Dann musste ich den Müll nach meinen Schlüsseln durchsuchen. Wie auch immer, meine Frau ist an solche Dinge gewöhnt, weil meine Sachen an seltsamen Orten auftauchen.

[...] Ihre Freundin (oder Ihr Freund) ist gerade herübergekommen

Abgesehen von diesem Teil sind Dating und Romantik beim Programmieren schwierig. Ich hatte viele vergangene Beziehungen, in denen das Dating wunderbar verlief, bis wir anfingen, zusammen zu leben, und sie sahen, dass diese Seite von mir die ganze Zeit in Gedanken versunken war, während sie den ganzen Tag am Computer saßen und nachdenklich herumliefen , während sie mit " Bloobly-Bloop! " Antworteten und Interesse verloren. Es ist schwer, jemanden mit der Geduld dafür zu finden. Ich hatte wirklich Glück mit meiner Frau, die es erträgt.

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.