Wie konnte ich zu dieser Einschätzung kommen?
(stdy.blog)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
Teilübersetzung des CDM (DeepL):