28 Punkte von spilist2 2024-07-22 | 1 Kommentare | Auf WhatsApp teilen

Eine aktuelle Erfahrung mit Pair Debugging

  • „Ein Problem, bei dem das Ergebnis einer bestimmten Aktion für mehrere Elemente auf der Übersichtsseite auf den einzelnen Elementseiten manchmal nicht übernommen wird.“ Der Reproduktionspfad ließ sich nicht ermitteln.
  • Gleich nachdem ich es gehört hatte, schlug ich vor zu prüfen, was passiert, wenn man zuerst auf eine einzelne Elementseite gegangen ist, dann zur Übersichtsseite zurückkehrt und anschließend die betreffende Aktion ausführt. Genau das war der Reproduktionspfad.

Die Pair-Debugging-Session war in weniger als 5 Minuten vorbei, aber sie hat mich zum Nachdenken gebracht

  • Wie konnte ich das erkennen, und warum konnte diese Kollegin oder dieser Kollege es nicht?
  • Wie kann ich die Fähigkeiten dieser Person wirksam noch weiter ausbauen?

Als Senior erlebt man bei Code Reviews und Pairing solche Situationen erstaunlich oft

  • Der Senior bemerkt schnell eine Stelle, an der sich etwas seltsam anfühlt, und macht einen plausiblen Verbesserungsvorschlag.
  • Der Junior nimmt das beeindruckt an.
  • Beim nächsten Mal tritt wieder ein ähnliches, wenn auch nicht identisches Problem auf.
  • Der Senior erkennt es erneut und macht erneut einen Verbesserungsvorschlag.
  • Der Junior versteht etwas mehr, macht weniger Fehler, kommt aber nicht so schnell auf das Niveau, das ich mir wünsche.

Der Grund ist, dass nur die Lösung des Seniors vermittelt wird, nicht aber der darin enthaltene kognitive Prozess, also „wie man zu dieser Einschätzung und Entscheidung kommen konnte“.

Das von Gary Klein entwickelte CDM ist eine gute Methode, um solche kognitiven Prozesse relativ schnell zu analysieren, auch selbstständig

  • Cues : What were you seeing, hearing, smelling ...?
  • Knowledge, Source : What information did you use in making this decision, and how was it obtained?
  • Analogues : Were you reminded of any previous experience?
  • Goals : What were your specific goals at this time?
  • Options : What other courses of action were considered by or available to you?
  • Basis : How was this option selected/other options rejected? What rule was being followed?
  • Experience : What specific training or experience was necessary or helpful in making this decision?
  • Aiding : If the decision was not the best, what training, knowledge, or information could have helped?
  • Tools : When making this decision, were there any tools that helped that specific decision?
  • Time Pressure : How much time pressure was involved in making this decision?
  • Situation Assessment : Imagine that you were asked to describe the situation to someone superior to(in terms of expertise, for example) you at this point, how would you summarize the situation?
  • Hypothesis : If a key feature of the situation had been different, what difference would it have made in your decision?

Fazit

  • Bei GitHub-PR-Reviews, die meist asynchron stattfinden, wird das implizite Wissen der Reviewer noch viel weniger sichtbar
  • Wenn man sich dabei bewusst selbst CDM-Fragen stellt und mit einbezieht, „wie ich auf diesen Kommentar kommen konnte“, dann werden die Fähigkeiten sowohl des Reviewers als auch der Person, die den PR verfasst hat, deutlich schneller wachsen
  • Natürlich lässt sich CDM auch außerhalb der Entwicklung sehr gut einsetzen, in jedem Bereich, der kognitive Aufgaben erfordert — egal ob ich lehre oder selbst lerne.

1 Kommentare

 
inthelife 2024-07-22

Teilübersetzung des CDM (DeepL):

  • Hinweise: Was haben Sie gesehen, gehört, gerochen ...?
  • Wissen, Quellen: Welche Informationen haben Sie für diese Entscheidung verwendet und wie haben Sie sie erhalten?
  • Ähnlichkeiten: Haben frühere Erfahrungen Erinnerungen geweckt?
  • Ziel: Was war damals das konkrete Ziel?
  • Optionen: Welche anderen Handlungsoptionen wurden erwogen oder standen zur Auswahl?
  • Begründung: Wie wurde diese Option ausgewählt und warum wurden andere Optionen verworfen? Welchen Regeln wurde gefolgt?
  • Erfahrung: Welche konkrete Ausbildung oder Erfahrung war erforderlich oder hilfreich, um diese Entscheidung zu treffen?
  • Hilfe: Wenn es nicht die beste Entscheidung war, welche Ausbildung, welches Wissen oder welche Informationen hätten geholfen?
  • Werkzeuge: Gab es bei dieser Entscheidung bestimmte Werkzeuge, die hilfreich waren?
  • Zeitdruck: Unter wie großem Zeitdruck stand diese Entscheidung?
  • Situationsbewertung: Angenommen, Sie wären zu diesem Zeitpunkt gebeten worden, einer ranghöheren Person (z. B. in Bezug auf Fachkompetenz) die Situation zu erklären — wie würden Sie sie zusammenfassen?
  • Hypothese: Wenn sich die wesentlichen Merkmale der Situation unterschieden hätten, welche Unterschiede hätte das für Ihre Entscheidung gemacht?