English translation available

7′

Erfahrung

Als ich noch ein Kind war, und auf Buchstaben schaute, die ich nicht lesen konnte, was habe ich da gedacht? Ich weiss es nicht mehr. Wie habe ich die Welt gesehen? Wenn ich heute Buchstaben sehe, kann ich nicht anders, als sie zu lesen. Mein Hirn hat schon gelesen, bevor ich denken kann. Ich kann nicht nicht lesen. Ich kann mir nicht vorstellen, wie es wäre, diese Schrift hier nicht lesen zu können. Ich kann versuchen, eine Analogie herzustellen und auf eine Schrift starren, die ich tatsächlich nicht lesen kann, Armenisch vielleicht. Ես մտածում եմ քո մասին, պապիկ. Das beantwortet aber die Frage vom Anfang nicht. Ich weiss heute zu viel über Schrift, ihre Rolle, dass man sie lesen kann, zum Beispiel linear. Nichts davon wusste ich als Kind. Heute ist für mich lesen können normal, selbstverständlich. Ich stehe früh morgens nicht vor dem Spiegel, und denke mir, “Ich kann lesen, Wahnsinn”. Diese Fertigkeit ist mir nicht mehr bewusst. Ich kann auch nicht mehr dahinter schauen und meine Welt ohne dieses Können sehen. Das Lernen dieser Fertigkeit hat mich selber verändert, meinen Blick auf die Welt und auf andere. Ich kann mich und das Gelernte nicht auseinanderhalten.

We are simply unable to think about logic proofs and […] text passages at a different competency level than the one we currently possess. Once you become an expert, recreating the novice state of mind turns out to be very hard, if not impossible. […] Instead of simply projecting our past selves back to our students, we should take on board the fact that our training has deeply changed us." (You can’t unlearn, and that’s a challenge for teachers, Alexander Jeuk, Valentina Petrolini)

Das Lernen einer Fertigkeit verändert uns so, dass wir uns nicht mehr vorstellen können, wie jemand ohne sie die Welt sieht. Welche Auswirkungen hat das in der Softwareentwicklung? Software ist ein Feld, das ständiges Lernen rühmt. Wo immer mehrere und neue Ansätze die Lösung zu einem Problem versprechen. Softwareentwicklung besteht zu grossen Teilen aus dem Üben von Herangehensweisen. Konstantes Trial-and-Error, Learning-by-Doing, bei dem vieles später offensichtlich erscheint. Inklusive der möglichen Fehler. Gelernt werden dabei Fertigkeiten, es geht weniger ums blosse Auswendiglernen. Diese können hilfreich oder irreführend sein. Grundlegend oder austauschbar. Allgemein anwendbar, spezifisch für ein Projekt oder im Umgang mit einem Team. Aber was bedeutet es, wenn nun all diese Fertigkeiten einem ähnlichen Muster unterliegen, wie das Lesenlernen?

When you know something it is almost impossible to imagine what it is like not to know that thing. This is the curse of knowledge, and it is the root of countless misunderstandings and inefficiencies. Smart people who are comfortable with complexity can be especially prone to it! If you don’t guard against the curse of knowledge it has the potential to obfuscate all forms of communication, including code. The more specialized your work, the greater the risk that you will communicate in ways that are incomprehensible to the uninitiated. (What I’ve learned in 45 years in the software industry, Joel Goldberg)

Nehmen wir an, dass wir jemandem begegnen, der etwas nicht kann, das für uns offensichtlich ist. Es kommt vor, dass wir dann überrascht sind, vielleicht für einen Augenblick sprachlos. Wir tendieren dazu, anzunehmen, dass andere die Welt so wahrnehmen wie wir. Dass sie das selbe für selbstverständlich halten. Wir bringen Fertigkeit auch gerne mit Status in Verbindung, und so reagieren manche von uns mitleidig, stirnrunzelnd, oder abschätzig. Wir können schier verzweifeln, wenn jemand etwas wieder und wieder nicht kann, das uns selber doch so selbstverständlich erscheint. Es scheint uns dann ganz und gar unverständlich. Es kommt vor, dass Interviewer eine Frage stellen, mit deren Antwort sie sich selber erst in den vergangenen Monaten auseinandergesetzt haben. Das ist ihnen aber nicht bewusst. Das Gelernte ist noch frisch in Erinnerung, erscheint den Fragenden aber bereits offensichtlich, und nun wird von Kandidat*innen ein ähnliches Signal erwartet.

Nach ein oder zwei Jahren kann ein Team von Softwareentwickler*innen nicht mehr beurteilen, wie kompliziert seine Codebasis ist. Schritt für Schritt haben sich alle im Laufe ihrer gemeinsamen Geschichte an neue Komplexitätsstufen gewöhnt. Die Entwicklung eines Softwareprodukts ist eine ständige Lernerfahrung für alle Beteiligten. Es beginnt mit dem ersten Problem und seiner Lösung, nach der wir suchen müssen. Das braucht Zeit, wir probieren, üben und lernen, verschiedene Ansätze anzuwenden und miteinander zu arbeiten. Wenn wir schliesslich eine Lösung gefunden haben, treten die damit verbundenen neuen Fähigkeiten – so einfach sie auch sein mögen – bald in den Hintergrund. Sie erscheinen uns selbstverständlich, und wir denken nicht mehr bewusst über sie und ihre Anzahl nach. Wir bringen sie auch nicht untereinander zur Sprache. Wir haben die Fähigkeiten, die die Lösung erforderte, verinnerlicht. Alles erscheint wieder normal. Aber normal ist nicht gut genug, und so wenden wir uns der nächsten Herausforderung zu. Von aussen zugetragen oder selbst auferlegt. Dieser Zyklus wiederholt sich und verschiebt nach und nach die Grenzen dessen, was als akzeptabel kompliziert gilt. Das Problem dieser inkrementellen Komplexität besteht darin, dass wir nach einiger Zeit keine übersichtliche Sammlung aller gelösten Rätsel vor uns sehen, sondern eine einzige Codebasis, die implizit alles vereint, was wir auf dem Weg gelernt haben. Erst wenn jemand Neues zu unserem Team stösst, erinnern wir uns daran, welche Fähigkeiten erforderlich sind, um all dies zu verstehen – oder normal zu finden. Ach ja! Oje. Das heisst, wenn wir ihre Leseerfahrung ernst nehmen. Wir können unseren Code nicht verständlich halten, indem wir uns einfach andere Menschen vorstellen, die nicht wissen, was wir wissen.

As soon as you have explored a layer [or an optimal algorithm or skill] you mechanize it, it becomes automated and people are no longer conscious of what they’re doing they just do it. They don’t pay attention anymore. (The Ghost in the Machine, Joscha Bach)

Wenn wir eine Fähigkeit erlernt haben, wird sie für uns selbstverständlich. So sehr, dass wir uns nicht mehr vorstellen können, wie jemand unsere Arbeit ohne sie sieht. Bis wir diesen Menschen treffen. Dann bemerken wir tatsächlich einen Unterschied und erinnern uns. Doch unsere Erinnerung ist eher anekdotisch und idealisiert einiges. Wir sind uns vor allem einer größeren Anzahl von Fähigkeiten und deren Zusammenspiel nicht bewusst. Erfahrung ist das, was wir diese Summe von Fähigkeiten nennen. Wir sind blind für sie. Ich kann mich und meine Erfahrung nicht auseinanderhalten. Meine Erfahrung ist kein Score. Erst in der Interaktion mit anderen bekomme ich einen Hinweis darauf, wer ich bin und wo ich scheinbar auf Autopilot schalten und mich auf meine Erfahrung verlassen kann. Die Frage ist dann, ob ich das tun sollte. Was ich weiss, ist offensichtlich. Was offensichtlich ist, ist normal. Was normal ist, ist richtig. Diese Kettenreaktion kommt wie ein Reflex. Leider ist nichts davon wahr. Der Reflex ist kein Zeichen dafür, wie richtig wir sind, sondern wie sehr wir von unserer persönlichen Lernerfahrung geprägt sind. Erfahrung ist nicht eine Sammlung von Goldmünzen, die man anhäuft, sondern eine Herausforderung. Empathie ist der Prozess, sich dieser Herausforderung zu stellen. Jemanden ernst zu nehmen, der unsere Arbeit nicht so sieht wie wir. Das kann anstrengend sein. Wir reden uns gerne ein, dass Empathie einfach, intuitiv, instinktiv ist. Das ist eine Illusion, denn es ist schwierig, das zu hinterfragen, was für uns offensichtlich ist. In unserer Arbeit sollten wir andere Perspektiven als tatsächliche Menschen, die sie verkörpern, präsent halten. Sie müssen neben uns stehen und, nun ja, herausfordernd sein. Sie sollen mühsam machen, was vorher leicht schien. Sie sollten uns ihre Sicht der Dinge schildern, und wir sollten zuhören, anstatt uns einzureden, wir könnten uns ihre Perspektive vorstellen. Es ist ein gutes Zeichen, wenn Empathie anstrengend ist. Es ist ein gutes Zeichen, wenn es uns bremst.

Es ist in Ordnung, von alldem müde zu sein. Das bin ich manchmal auch. Man hat irgendwann alles schonmal gehört. Wir wissen schon, was als nächstes kommt. Natürlich kann man sich auf seinen Autopiloten verlassen. Aber man entfernt sich eben doch von der Welt, wenn man sich zu sehr darauf verlässt. Warum Empathie bei Softwareentwicklung? Weil wir sonst kein Bewusstsein dafür haben, was wir tun.

 

Dezember, 2022