Euer Softwareentwickler weiß nicht, wie die Software, die er selbst entwickeln soll, funktioniert? Wie sie funktionieren soll und wie man sie bedient?
Wie kann er die dann überhaupt entwickeln?
Das war übrigens nicht auf die Art und Weise bezogen, wie ein Endbenutzer die Software benutzt, sondern ein Entwickler weiß, was passieren soll und auch passiert, wenn man einen Button anklickt. Weil er hat es ja selbst so programmiert, das genau das passiert, wenn man den Button anklickt. Hätte er das nicht, würde gar nichts passieren, man könnte den Button gar nicht anklicken, oder da wäre nichtmal ein Button.
Typischer Fall:
Man hat einen Workflow in 4 Schritten, der Wizard-ähnlich umgesetzt wird. Also 4 Dialoge und die ersten 3 haben halt jeweils einen Weiter-Button, am Ende kommt irgendwas definiertes raus.
Softwareentwickler (mich eingeschlossen) neigen dazu ergebnisorientiert zu arbeiten. Also programmiert man diesen Wizard so lange, bis er "funktioniert" und am Ende das rauskommt, was rauskommen soll.
Was ein Entwickler dann oft vergisst ist, das es in jedem Dialog-Schritt auch einen Zurück-Button gibt. Da neigt er dann entsprechend auch dazu das nicht (immer wieder) zu testen. Am Ende funktioniert der Wizard dann zwar vorwärts, aber (mglw. auch nur an einer bestimmten Stelle) krachts, wenn doch mal jemand den Zurück-Button verwendet. Weil beim "zurück" ggf. irgendwas zurückgesetzt werden müsste, ggf. auch etwas, was erst später dazugekommen ist, aber für den "zurück"-Fall halt vergessen wurde und der Softwareentwickler auch nicht explizit jeden einzelnen Zurück-Schritt noch jeder Änderung explizit nochmal getestet hat.