Wie entsteht eigentlich Software? Sicher ist meist nur: es gibt einen Auftraggeber mit bestimmten Wünschen, es gibt ein Team von Programmierern (denn größere Softwareprojekte werden kaum mehr von einzelnen Programmierern angegangen), und irgendwann gibt es dann eine mehr oder weniger lauffähige Software.
Es gibt verschiedene Wege, nach denen ein Team bei der Softwareentwicklung vorgehen kann. Der wohl bekannteste ist das Wasserfallmodell (Wikipedia). Es ist vielleicht schon ein bisschen altbacken, es gibt Kritikpunkte, es gibt Alternativen – aber für die Schule reicht es vorläufig. (Längere Fußnote dazu unten.)
Je nach Ausformung besteht das Wasserfallmodell aus 5-7 Stufen (je nach genauer Ausformung des Modells), entlang derer die Entwicklungsarbeit läuft. Am Ende jeder Stufe steht ein greifbares Dokument oder Produkt, von dem aus es dann weiter zur nächsten Stufe geht. Stellt sich heraus, dass für die aktuelle Stufe keine befriedigende Lösung gefunden werden kann, geht man beim erweiterten Wasserfallmodell zur letzten Stufe zurück und versucht es da noch einmal – und notfalls kaskadenartig noch weiter zurück:
(Maciej Jaros; GFDL ver. 1.2 or CC-by-sa ver. 2.5, 2.0, and 1.0; Wikipedia)
Etwas ausführlicher:
Konkret sähe das so aus:
- Planungsphase
Der Lehrer als Kunde erteilt einen Auftrag. Er hätte gerne ein Programm zur Verwaltung von Schülern. Oder ein Spiel. Seine genauen Wünsche werden in einem Lastenheft festgehalten. Darin steht, was das Programm können soll. Wie das umzusetzen ist, ist erst mal nicht sein Problem. - Definitionsphase
Die Schüler übersetzen die Kundenwünsche in eigene Teilaufgaben. Was muss erledigt werden, wer kümmert sich um welchen Teil? Das wird im Pflichtenheft festgehalten. Wenn sich jetzt schon abzeichnet, das etwas so nicht geleistet werden kann, muss man zurück in die Planungsphase. - Entwurfsphase
Die Schüler entwerfen ein Modell des Projekts. Mit entsprechenden Tools oder mit Bleistift und Papier. Für solche Entwürfe gibt es verbreitete Normen, etwa die UML-Notation (Unified Modeling Language). Der Entwurf ist etwa ein Datenbankentwurf in Form eines Entity-Relationship-Diagramms oder ein Klassendiagramm. - Implementierungsphase
Anhand des Entwurfs wird jetzt programmiert. Wenn der Entwurf gut ist, geht das zügig. Oft wird man aber zurück zum Entwurf müssen und da etwas ändern, weil sich beim Programmieren herausstellt, das bestimmte Aspekte so nicht gehen. Am Schluss stehen die fertigen Programme. - Testen und Einführen
Die Teilprogramme werden zusammengebaut und getestet. - Übergabe und Wartung
Der Lehrer kriegt das Programm und das Handbuch (mit dem man wohl schon in früheren Phasen begonnen hat) ausgeliefert. Er kriegt eine Einführung in den Umgang mit dem Programm, außerdem steht das Team für Anpassungen und Wartung zur Verfügung.
Ich könnte mir schon vorstellen, so auch in der Schule vorzugehen. Allerdings wüsste ich auch gerne Alternativen zur Projektplanung an Schulen. Denn so richtig passt das Wasserfallmodell nicht auf die Lernsituation. Der Lehrer sieht vielleicht schon Fehler auf der ersten oder zweiten und vor allem dritten Ebene, auf die die Schüler dann erst in der vierten Phase stoßen und wieder zurück zum Reißbrett müssen. Das ist frustrierend und zeitraubend – mehr Zeit, als eine funktionierende Softwarefirma hat und mehr Zeit als man in der Schule hat. (Dabei ist es schon wichtig, dass Schüler Zeit haben, Fehler zu machen und sie zu verbessern. Das haben Sie fast nie. Trotzdem musss man sie nicht jeden Fehler machen lassen.)
Vielleicht passt ja ein andere Entwicklungsmodell besser auf die Situation in der Schule.
(Weitere Gedanken zu Softwareentwicklung in der Schule in diesem Blogeintrag.)
Schreibe einen Kommentar