eine realisierbare in sich konsistente - für die Realisierung
verbindliche - Aufgabenbeschreibung (Pflichtenheft)
zu erstellen. Er muß vor allem das Wesentliche vom
Unwesentlichen unterscheiden, abstrahieren und auf den Kunden
eingehen können, um das zu erfassen, was zu tun ist.
Im nächsten Schritt ist der Entwickler in der Rolle
des Systemdesigners. Ähnlich einem Architekten konstruiert er,
geleitet von seinen Lösungsideen und der Machbarkeit, die
Softwarestruktur (Softwaredesign). Er legt fest
wie die Aufgabe in Software umgesetzt wird.
Parallel dazu wechselt er in die Rolle des Testplaners
(Qualitätssicherung) und überlegt sich die notwendige
Vorgehensweisen und erstellt die Testspezifikation.
Bislang ist nur Papier entstanden und ungefähr die Hälfte der
verfügbaren Zeit vergangen. Im nächsten Schritt übernimmt er
die Rolle des Programmierers (Programmcode und
Dokumentation) und hoffentlich ein Anderer die Rolle des
Testers ( Testprotokolle). Irgendwann ist die
Software gestestet fertig und wird vom Kunden abgenommen (Abnahme).
Hier testet der Kunde die Software gegen die im Pflichtenheft
versprochenen Funktionen auf Fehlerfreiheit, oftmals im Beisein
des Entwicklers. Es wird ein Protokoll erstellt und bei
Fehlerfreiheit der Software muß der Kunde den vereinbarten Preis
bezahlen.
Selbstverständlich ist der Entwicklungsablauf nicht so
zeitlich und Augaben-sequentiell wie hier geschildert. Je nach
Größe des Projektes kommen immer noch während der
Entwicklungsphase Änderungswünsche der unterschiedlichsten Art
vom Kunden und auch vom Entwickler. Der Kunde entwickelt sich mit
seinen Aufgaben weiter und der Entwickler versteht immer besser
seine Aufgabe je länger er daran arbeitet. Damit das alles nicht
aus der Kontrolle läuft gibt es noch die Rolle des
Projekt- oder Entwicklungsleiters. Dessen Verantwortung und Aufgabe
ist es mit den Hilfsmitteln des Projektmanagements die
Softwareentwicklung so zu steuern, daß die Software in der
geplanten Zeit, geplantem Umfang und festen Budget fertig wird;
das ist keine leichte Aufgabe.