Programmiersprache Pascal
Grundsätze für die Software-Enwicklung
-
Trauern Sie Ihren Nutzern zu, daß sie in der Lage sind, jede
sich bietende Fehlermöglichkeit zu nutzen.
(Murphy'sche Regel: Wenn etwas schief gehen kann, so geschieht es !)
-
Gehen Sie als Software-Entwickler vom schlimmsten Fall aus:
-
Sie müssen ihr eigenes Produkt nutzen.
-
Sie müssen ihr eigenes Produkt warten.
-
Die Produktivität des Nutzers ist zu messen an der Anzahl der
Eingabehandlungen, die er tätigen muß - bis er das Problem
wirklich gelöst hat.
-
Routinierte Nutzer bewerten die Nutzeroberfläche eines Programms
oft es anders als neue oder gelegentliche Nutzer.
Der routinierte Nutzer sieht mehr den Aufwand bei der täglichen
Bedienung des Programms. Der neue bzw. gelegentliche Nutzer sieht -
zunächst - mehr den Aufwand, um die Bedienung des Programms
zu lernen.
(ease of use - ease of learning)
-
Beide Aussagen haben eine gewisse Berechtigung:
-
Nutzer wissen, was sie wollen !
-
Nutzern muß gesagt werden, was sie wollen !
Ein Programm, welches der Nutzer nicht nutzt, ist wertlos !
Der Nutzer weiß, was er will, er kann es nur nicht exakt und
nicht vollständig ausdrücken.
Ein Nutzer kann nicht Dinge wollen, die er nicht kennt !
10 % aller Wünsche verursachen oft 90 % allen Aufwands.
-
Ein Programm sollte so arbeiten, wie der Nutzer es erwartet.
Der Nutzer sollte durch Reaktionen des Programms nicht überrascht
werden !
(no surprises)
-
Der Software-Entwickler sollte nicht Probleme lösen, die es
nicht gibt !
Entscheidend sind nicht die Probleme, die der Entwickler sieht,
sondern die, die der Nutzer hat !
Selten ist der Chef der wichtigste Nutzer !
(Allerdings weiß er dies nicht immer !)
-
Folgende Fragen sind gegeneinander abzuwägen:
Was kostet es, wenn das Programm einen Fehler zuläßt ?
Was kostet es, ein Programm zu entwickeln, welches keine Fehler
zuläßt ?
Was kostet es, ein Programm zu nutzen, welches Fehler
zuläßt ?
-
Was kostet es, wenn ein Programm nicht optimal mit Zeit und Speicherplatz
umgeht ?
Was kostet es, wenn niemand - einschließlich des Entwicklers - in der
Lage ist, ein "optimales" Programm (rechtzeitig) zu verändern ?
-
Was ein Programmierer nicht in natürlicher Sprache ausdrücken
kann, das kann er auch nicht in Programmcode ausdrücken.
-
Wenn der Algorithmus zur Lösung eines Problems zu kompliziert wird,
dann suche einen neuen.
(Der Mut zum Neuanfang.)
-
Wenn ein Problem zu umfangreich ist, dann zerlege es !
(Teile und herrsche !)
-
Ein Problem ist nur dann gut zerlegt, wenn die Teilprobleme wenig
voneinander abhängig sind.
-
Es ist billiger, einen mißratenen Entwicklungsschritt zu
wiederholen, als ein mißratenes Entwicklungsprodukt jahrelang
mühevoll zu warten.
(Oder es nie einzusetzen.)
Bemerkung:
Es wird mißlingen, alle Grundsätze gleich wichtig zu nehmen !
P. Böhme, 25.01.1996