Menschen sind intelligent und intuitiv.
Computer sind strunzdumm.
Leider lassen sich intelligente Menschen durch strunzdumme Computer verführen zu denken, dass die strunzdumme Maschine einen Hauch von Intelligenz hat.
Treffen beide aufeinander wenn ein neues Programm entwickelt werden soll, wird es kniffelig. Ich will hier nicht all die Probleme aufzählen, die bei der Anforderungsermittlung immer wieder auflaufen. Sie sind Legion und sie wieder und wieder vor zu kauen ist langweilg. Ich vermute inzwischen, dass das Problem tiefer sitzt. Eben bei dem oben beschriebenen Unterschied. Weil eine Maschine strunzdumm ist, muss man ihr jede Handlung, welche sie durchführen muss, erklären.
Intuition
Der intelligente Mensch kann viele Dinge intuitiv. Trifft er auf ein Problem (nicht gerade ein Computerproblem
) in seinem Alltag, das etwas von der Norm abweicht, dann kann er damit umgehen. Er findet eine pragmatische Lösung. Computerprogramme können das nicht. Wenn ihnen ein Problem nicht bekannt ist, dann können sie es nicht lösen oder dem Menschen, der es bedient, einen Lösungsvorschlag anbieten.
Das muss er doch Wissen!
Viele Menschen, mit denen ich zu tun habe, argumentieren ganz oft, dass der er, der Computer, das doch wissen muss
. Einem Anwender kann man diese Einstellung kaum anlasten. Er ist schon verführt worden, gibt der Maschine Namen und behandelt ihn wie eine bekannte Person. Softwareentwickler haben ihm in den letzten Jahrzehnten erfolgreich vorgegaukelt, dass die Maschine irgendwie mitdenkt. Dabei haben wir eigentlich nur die Handlungen der Benutzer denen des Computers angepasst.
Erste Verführung
Eine der ersten Verführungen, bei der Heerscharen von intelligenten Menschen auf den Computer herein gefallen sind, war ELIZA. Seit damals haben sich die Grundlagen der Computertechnik kaum weiter entwickelt. Softwareentwickler haben immer komplexere Problemlösungen entwickelt, die durch immer schnellere Computer immer schneller bearbeitet werden. Intelligent ist die Maschinen trotzdem nicht. Sogenannte Expertensysteme sind nur in Nischenmärkten erfolgreich.
Implizite Annahme
Dies alles führt dazu, dass sich Softwareentwickler immer wieder mit dem Problem der impliziten Annahme herumschlagen müssen. In der Anforderungsermittlung muss ein Grossteil der Aufmerksamkeit des Ermittlers auf diese impliziten Annahmen gerichtet sein. Ganz beseitigen kann er sie nicht. Hat er es allerdings erfolgreich gemeistert und ist die Software fertig, dann kann er sich glücklich schätzen. Sein Programm verführt erfolgreich.
