=Paper= {{Paper |id=None |storemode=property |title=Vermittlung von agiler Softwareentwicklung im Unterricht |pdfUrl=https://ceur-ws.org/Vol-956/S3_Paper2.pdf |volume=Vol-956 |dblpUrl=https://dblp.org/rec/conf/seuh/KroppM13 }} ==Vermittlung von agiler Softwareentwicklung im Unterricht== https://ceur-ws.org/Vol-956/S3_Paper2.pdf
      Vermittlung von agiler Software-
         entwicklung im Unterricht
                           Martin Kropp, FHNW, martin.kropp@fhnw.ch
                              Andreas Meier, ZHAW, meea@zhaw.ch


                                                     Studie liefert auch konkrete Zahlen über die Ver-
Zusammenfassung                                      breitung, den Nutzen, den Einsatz von konkreten
                                                     Praktiken, aber auch die Herausforderungen, die
Über den Hype hinaus, der um agile Softwareent-
                                                     mit agilen Methoden einhergehen.
wicklung entstanden ist, zeigen verschiedene Um-
fragen, dass dieses Vorgehen in der Praxis in ver-   Um die Relevanz der agilen Methoden für die Aus-
schiedener Hinsicht tatsächlich zu Verbesserungen    bildung zu ermitteln, war für uns unter anderem
in der Durchführung von Software-Projekten führt.    die Beantwortung folgender Fragen wichtig:
Firmen, die agile Methoden einsetzen, geben an,      1.   Wie verbreitet ist agile Softwareentwicklung in
dass sie seither zufriedener mit ihrem Entwick-           der Praxis?
lungsprozess sind und insbesondere der Umgang
                                                     2.   Haben agile Methoden wirklich Vorteile ge-
mit Anforderungsänderungen sich wesentlich ver-
                                                          genüber den traditionellen, plan-getriebenen
bessert hat.
                                                          Methoden?
Andererseits sind entsprechend ausgebildete Fach-
                                                     3.   Was sind die entscheidenden Erfolgsfaktoren
leute jedoch Mangelware. In der Praxis sind des-
                                                          bei der agilen Softwareentwicklung?
halb Software Ingenieure mit Kompetenzen in agi-
len Methoden sehr gefragt.                           Im nächsten Abschnitt werden wir die aus unserer
                                                     Sicht für die Ausbildung wichtigsten Resultate der
Was bedeutet dies für die Software-Technik Aus-
                                                     Studie vorstellen und danach einige Überlegungen
bildung an Hochschulen? Was sind die speziellen
                                                     und Konsequenzen für die Ausbildung an (Fach-)
Herausforderungen? Wie kann agile Software Ent-
                                                     Hochschulen näher ausführen.
wicklung, die neben konkreten Techniken und
Praktiken auf der individuellen Ebene, auch auf      Nach einer Übersicht über die wesentlichen Ele-
Team-Ebene und Werte-Ebene spezielle Anforde-        mente der agilen Methoden werden wir im An-
rungen stellt, überhaupt vermittelt werden? Wie      schluss unsere Konzepte vorstellen. Wir zeigen auf,
kann die Ausbildung von agiler Softwareentwick-      wie die erforderlichen Kompetenzen vermittelt
lung in die Ingenieur-Ausbildung integriert wer-     bzw. von den Studierenden erlernt werden können.
den?                                                 Anschliessend berichten wir über den konkreten
In diesem Artikel stellen wir unser Konzept zur      Umsetzungsstand und unsere Erfahrungen, die wir
Ausbildung von agilen Methoden an Hochschulen        gemacht haben.
vor und berichten über unsere Erfahrungen als        Den Abschluss bildet ein Ausblick über die Weiter-
Dozierende.                                          entwicklung der Konzepte und deren Umsetzung.

Einleitung                                           Verbreitung und Nutzen von agilen Metho-
                                                     den
Jüngste Umfragen zeigen, dass agile Software Ent-
wicklungsmethoden in verschiedener Hinsicht zu       In der Swiss Agile Study wurden mehr als 1500 IT-
wesentlichen Verbesserungen in der Durchführung      Firmenmitglieder     der   teilnehmenden    ICT-
von Software-Projekten führt [1,2]. Diese Erfolgs-   Verbände SwissICT, ICTnet und SWEN befragt, die
meldungen tragen wesentlich dazu bei, dass agile     Rücklaufquote betrug knapp 10%. Dabei wurden
Softwareentwicklungsmethoden in der IT-Industrie     sowohl agil als auch nicht-agil arbeitende Unter-
eine immer grössere Akzeptanz finden.                nehmen einbezogen. Von den teilnehmenden Un-
                                                     ternehmen gaben 57% an, dass sie mit agilen Me-
In der von den Autoren durchgeführten Studie         thoden entwickeln.
(Swiss Agile Study) über den Einsatz von Software
Entwicklungsmethoden in der Schweizer IT-            Auf die Frage, wie die agilen Methoden die Ent-
Industrie [1] wurden diese Aussagen bestätigt. Die   wicklung beeinflusst hat, gaben die Unternehmen




A. Spillner, H. Lichter (Hrsg.): SEUH 13                                                              79
zu allen befragten Aspekten an, dass sich diese                  werden dabei insbesondere Kodierrichtlinien
verbessert (+) oder sogar sehr stark verbessert (++)             (82%), Unit Testing (76%) und Continuous Integra-
haben (siehe Tabelle 1). Dabei sind insbesondere                 tion (70%) genannt.
die Aspekte „Ability to manage changing Require-
ments“ (89%), „Development Process“ (80%) und
                                                                 Aspect                           --        -        +          ++
„Time To Market“ (76%) zu nennen.
                                                                 Behavior Driven Development
                                                                 (BDD)                                 21       24        17         8
                                      1
    Aspect                       --       -       o    +    ++   Acceptance Test Driven Devel-
    Time to market                    1       2   19   53   23   opment (ATDD)                         18       22        20        17
    Ability to manage changing        1       0   9    45   44   Test Driven Development (TDD)         10       16        29        30
    priorities                                                   Coding standards                       4        9        40        42
    Productivity                      0       2   33   47   15
                                                                 Collective code ownership             12       12        33        30
    Software quality                  0       2   45   35   16
                                                                 Pair programming                      20       32        25        18
    Alignment between IT &            0       1   25   46   23
    business objectives                                          Unit testing                           2       17        25        51
    Project visibility                0       2   25   39   28   Refactoring                            3       25        35        28
    Risk management                   0       5   32   42   17   Automated builds                       8       14        26        40
    Development process               0       2   17   58   22
                                                                 Continuous integration                 4       16        32        38
    Software maintainability /        0       7   55   23   12
                                                                 Automated acceptance testing          20       26        28        14
    extensibility capability
    Team morale                       0       4   25   42   24   Continuous delivery                   12       23        38        17
    Development cost                  1   12      52   22    7   Tabelle 2. How important were the following agile
    Engineering discipline            0       4   42   42    9   engineering practices for your successful agile pro-
    Management of distributed         0       5   42   19    6   jects?3
    teams                                                        Bei der Interpretation der Daten ist zu beachten,
    Requirements management           0       2   29   51   13   dass gewisse agile Praktiken wie z.B. TDD, BDD,
                                                                 ATDD auch bei agilen Unternehmen noch relativ
Tabelle 1. How has agile software development influ-
                                                                 wenig im Einsatz sind, wie sich bei der Umfrage
enced the following aspects?23
                                                                 gezeigt hat.
Interessant an den Ergebnissen in dieser Tabelle ist,
                                                                 Bei den Management Practices wurden als wichtigste
dass mehr als die Hälfte der Unternehmen ange-
                                                                 Aspekte Iterationsplanung (89%), User Stories
ben, dass sich die Wartbarkeit der Software sowie
                                                                 (83%) und Release-Planung (77%) genannt, dicht
die Kosten nicht verbessert haben. Aus Sicht der
                                                                 gefolgt vom Einsatz eines Task Boards (74%).
Ausbildung ist von Interesse, welche Praktiken und
Techniken entscheidend zum Erfolg in agilen Pro-
jekten beitragen, da wir auf diese Techniken be-                 Aspect                           --        -        +         ++
sonderes Augenmerk legen sollten.                                Release planning                      3        18       37         40
Bei dieser Frage haben wir nach Engineering Prac-                Story mapping                         4        26       41         21
tices wie z.B. Unit Testing und Continuous Integra-
tion sowie Management Practices wie Daily Standup,               On-site customer                      11       27       33         24
On-Site Customer und Planung unterschieden.                      Iteration planning                    0        7        36         53
Tabelle 2 gibt die detaillierten Resultate für die               User stories                          0        10       40         43
Engineering Practices wieder. Dabei geben die Spal-
                                                                 Daily standup                         4        25       32         33
tenwerte die Wichtigkeit für den Erfolg von „ganz
unwichtig“ (--) bis „sehr wichtig“ (++) wieder. Als              Taskboard                             2        20       45         29
wichtige bzw. sehr wichtige Engineering Practices                Burndown charts                       11       38       22         24
                                                                 Retrospective                         5        28       34         30
1 Die Bewertungskriterien gehen von „Stark verschlech-           Open work area                        12       25       40         11
tert (--) bis „stark verbessert“(++)
                                                                 Kanban Pull System/Limited WIP        27       23       13          4
2Sämtliche Angaben in Prozent; die fehlenden Prozent
                                                                 Tabelle 3. How important were the following agile
auf 100 gaben an “Weiss nicht”.
                                                                 management and planning practices for your successful
3 Die Umfrage wurde auf Englisch durchgeführt, um alle           agile projects?
Sprachregionen der Schweiz abdecken zu können, daher
                                                                 Ein wichtiger Aspekt ist, dass die Zufriedenheit der
sind sowohl die Fragen als auch die Antwort-Optionen
                                                                 Unternehmen mit den agilen Methoden insgesamt
auf Englisch.




      80                                                                   A. Spillner, H. Lichter (Hrsg.): SEUH 13
deutlich höher ist als mit traditionellen plan-                vermittelt werden können, so dass die Ab-
getriebenen Vorgehen (84% vs. 62%).                            solventen „in der Wolle gefärbte“ Software
                                                               Ingenieure sind.
Anforderungen an agile Ausbildung
                                                       Bei der Vermittlung der Anforderungen beziehen
Im Rahmen der Studie haben wir auch erhoben, ob        wir uns schwerpunktmässig auf Scrum [7] und
agile Methoden überhaupt auf universitärer Stufe       eXtreme Programming (XP) [8], da diese in der
unterrichtet werden sollten, und wie die Kenntnis-     Schweiz (und auch international [2]) die am weites-
se der Bachelor- und Master-Absolventen von der        ten verbreiteten agilen Methoden sind. Ausserdem
Industrie beurteilt werden. Dazu hatten die Fir-       ergänzen sich diese Methoden aus unserer Sicht
menvertreter der teilnehmenden IT-Firmen folgen-       sehr gut, da XP eher den Schwerpunkt auf die En-
de Aussage zu bewerten:                                gineering Practices legt, während Scrum eher auf der
„Agile development should be an integral part of the   Management Ebene anzusiedeln ist.
Computer Science curriculum“.
                                                       Erfahrungen mit agiler Entwicklung im Un-
Zur Auswahl standen folgende Antwort-Optionen          terricht
von “Stimme vollständig zu” bis “Stimme gar nicht
zu”.                                                   Zum Thema der Integration von agilen Methoden
                                                       in den Unterricht liegen verschiedene Erfahrungs-
95% der teilnehmenden Firmen stimmen der Aus-          berichte vor [20, 21]. Die Autoren selbst unterrich-
sage zu („Stimme zu“: 49%, „Stimme vollständig         ten seit über fünf Jahren zusammen die Vorlesung
zu“: 46%).                                             Software Engineering and Architecture. Diese Vorle-
Andererseits geben die Unternehmen auf die Frage,      sung ist Teil der Schweiz weiten gemeinsamen
ob die Studienabgänger auf Bachelor- bzw. Master-      Masterausbildung (Master of Science in Enginee-
stufe genügend Kenntnisse in agilen Methoden           ring, MSE) der Schweizerischen Fachhochschulen
mitbringen mit klarer Mehrheit an, dass dies nicht     [3]. Die gemeinsame Masterausbildung betrachten
der Fall ist (Master-Stufe: 58%, Bachelor-Stufe:       die Autoren als eigentlichen Glücksfall, da dadurch
68%).                                                  Dozierende von verschiedenen Hochschulen zu-
Somit sollte der Anspruch der Praxis an die Hoch-      sammen lehren und ihre Erfahrungen austauschen
schulen ernst genommen werden und die Ausbil-          können.
dung an die neuen Anforderungen angepasst wer-         Wir haben festgestellt, dass die Studierenden noch
den. Dabei stellt sich die Frage, was die Hochschu-    relativ wenig Wissen über agile Softwareentwick-
len in der Ausbildung ändern müssen, um den            lungsmethoden mitbringen, wobei sich der Wissen-
neuen Anforderungen gerecht zu werden.                 stand in den letzten Jahren leicht verbessert hat,
Dazu betrachten wir Anforderungen, die agile Me-       aber je nach Fachhochschule sehr unterschiedlich
thoden an den einzelnen aber auch an das Team          ist. Dafür beobachten wir jedoch, dass das Interes-
und die Organisation stellt, auf drei verschiedenen    se der Studierenden an dem Thema umso grösser
Ebenen:                                                ist.
    1. Individuelle Ebene: Hier geht es vornehmlich    In unserer gemeinsamen Vorlesung haben wir den
       darum, welche agilen Engineering Practices      Fokus ganz gezielt auf agile Softwareentwicklung
       ein Software Ingenieur beherrschen sollte:      gelegt. Unter anderem unterrichten wir agile Soft-
       Clean Code, Test Driven Development, Au-        ware Entwicklungsmethoden wie Scrum, eXtreme
       tomation, Craftsmanship, um nur einige          Programming oder Kanban. Dabei haben wir die
       Beispiele zu nennen.                            Erfahrung gemacht, dass viele Studierende das
                                                       „Programmier-Handwerk“, welches eine der Vo-
    2. Team Ebene: Die Team Ebene stellt vor al-       raussetzungen für die erfolgreiche Durchführung
       lem Anforderungen im Bereich Manage-            agiler Projekte darstellt, nicht beherrschen resp. nie
       ment Practices: Selbstorganisierende Teams,     im Bachelor-Studiengang gelernt hatten. Unter
       Schätzen und Planen, Continuous Integra-        „Programmier-Handwerk“ verstehen wir das Be-
       tion und Continuous Deployment, oder            herrschen von agilen Praktiken wie zum Beispiel
       Pair Programming. Selbstorganisierende          Clean Code, Refactoring, Test-Driven Development
       Teams wiederum verlangen eine hohe so-          oder Continuous Integration.
       ziale Kompetenz der Teammitglieder, wie
       zum Beispiel hohe Kommunikationsfähig-          Weiter halten die Autoren jeweils an ihrer Fach-
       keit.                                           hochschule [4, 5] verschiedene Vorlesungen in Pro-
                                                       grammieren und Software Engineering auf Ba-
    3. Werte Ebene: Auf dieser Ebene wird implizit     chelor Stufe und haben damit begonnen, auch auf
       das Wertesystem der agilen Softwareent-         dieser Stufe agile Software Entwicklungsmethoden
       wicklung betrachtet; wie die agilen Werte       zu vermitteln.
       wie Respekt, Offenheit, Ehrlichkeit, etc.




A. Spillner, H. Lichter (Hrsg.): SEUH 13                                                                  81
Agile Software Entwicklung                                 Engineering Practices                   Verbreitung
                                                           Coding standards                              75%
Für ein besseres Verständnis der im Folgenden
vorgestellten Studienkonzepte und Lehr- und                Unit testing                                  70%
Lernmethoden fassen wir hier die aus unserer Sicht         Automated builds                              63%
wichtigsten Eigenschaften der agilen Software-             Continuous integration                        57%
entwicklung zusammen.                                      Refactoring                                   51%
In erster Linie sind dabei natürlich die Werte und         Test Driven Development (TDD)                 44%
Prinzipien des Agile Manifesto [6] zu nennen, die          Pair programming                              31%
auf der einen Seite zwar noch keine konkreten              Collective code ownership                     30%
Praktiken und Techniken vorgeben, aber mit Ihren
                                                           Continuous delivery                           30%
Prinzipien doch klare Anforderungen an eine agile
Vorgehensweise definieren.                                 Automated acceptance testing                  24%
                                                           Acceptance Test Driven Development            18%
Aus diesen Prinzipien hat insbesondere extreme
                                                           (ATDD)
Programming (XP) eine Anzahl ganz konkreter
                                                           Behavior Driven Development (BDD)             15%
Programmierpraktiken abgeleitet, ohne die aus
unserer Sicht eine agile Softwareentwicklung nicht     Tabelle 4. Engineering Practices in der Praxis4
möglich ist.
Auf Managementsicht gehört wohl Scrum zu den               Management Practices                    Verbreitung
Vorreitern der agilen Methoden. Scrum definiert            Release planning                              75%
klare Regeln bzgl. Projekt- und Teamorganisation
                                                           Iteration planning                            66%
sowie dem Requirements-Management.
                                                           User stories                                  65%
Neuere Ansätze wie Lean Software Development
                                                           Daily standup                                 53%
[9], die sich ebenfalls an den Prinzipien des Agile
Manifesto orientieren, zeigen weitere, interessante        Taskboard                                     46%
Aspekte zur Umsetzung der agilen Software Ent-             Retrospective                                 41%
wicklung auf.                                              Burndown charts                               40%
Die folgenden Tabellen fassen die aus unserer Sicht        Story mapping                                 35%
wichtigsten Engineering und Management Practices           Open work area                                27%
zusammen. Diese Einteilung wurde von uns für die           On-site customer                              23%
Studie entwickelt, um die Verbreitung der genann-          Kanban Pull System/Limited WIP                11%
ten Praktiken in der Praxis zu ermitteln und hat
sich dabei als sehr zweckmässig erwiesen; wir ver-     Tabelle 5. Management Practices in der Praxis5.
wenden sie daher auch in diesem Artikel als            Die Werte zeigen deutlich, dass auch bei agil ent-
Grundlage für die folgende Diskussion über die         wickelnden Unternehmen erst relativ wenige der
agile Ausbildung.                                      erforderlichen bzw. empfohlenen Praktiken eine
Tabelle 4 gibt die Verbreitung der, vor allem von      breite Anwendung finden.
XP definierten, konkreten Programmierpraktiken
in den befragten agilen Unternehmen wieder, wäh-       Studienkonzept für agile Methoden
rend Tabelle 5 die Verbreitung der Management
                                                       Die Eigenschaften bzw. Anforderungen an eine
Praktiken aufzeigt. Besonders erwähnenswert da-
                                                       agile Software Entwicklung lassen sich nicht alle
bei ist, dass diese entsprechenden Werte bei plan-
                                                       auf die gleiche Art unterrichten, da sie unterschied-
getrieben      arbeitenden Unternehmen zwischen
                                                       liche Kompetenzen ansprechen. Für die Entwick-
10%-30% tiefer liegen. Dies ist doch umso bemer-
                                                       lung eines geeigneten Studienkonzeptes orientieren
kenswerter, als es sich bei vielen Engineering Prac-
                                                       wir uns daher an den zuvor eingeführten drei
tices eigentlich nicht um spezielle agile Praktiken,
                                                       Kompetenzebenen.
sondern um allgemeine Best Practices handelt. Es
lässt sich also sagen, dass die Anwendung von
agilen Methoden auch zur verstärkten Anwendung         4 Den Firmen, die agile Methoden anwenden, wurde
von allgemeingültigen Best Practices führt.
                                                       folgende Frage gestellt: „Which of the following engi-
                                                       neering practices could be observed by someone visiting
                                                       your company in the next month“?
                                                       5  Den Firmen, die agile Methoden anwenden wurde
                                                       folgende Frage gestellt: „Which of the following man-
                                                       agement and planning practices could be observed by
                                                       someone visiting your company in the next month“?




   82                                                               A. Spillner, H. Lichter (Hrsg.): SEUH 13
Die drei Vermittlungsebenen                           Wichtig ist die Repetition auf allen Ebenen, d.h.
Auf der individuellen Ebene werden insbesondere       regelmässiges Üben in verschiedenen Kontexten.
die handwerklichen Grundlagen vermittelt. Ohne        Deshalb kommen die verschiedenen Praktiken und
das Beherrschen dieser fundamentalen Techniken        Techniken immer wieder in den verschiedenen
ist eine agile Entwicklung aus unserer Sicht nicht    Vorlesungen vor. Nicht isoliertes Unterrichten der
möglich. Aus unserer Erfahrung sind die agilen        einzelnen Praktiken steht im Vordergrund, sondern
Techniken der individuellen Ebene am einfachsten      die Verankerung an mehreren Stellen in der Aus-
zu vermitteln. Dies liegt unserem Ermessen nach       bildung. Das unterstützt insbesondere auch die
daran, dass jeder Studierende einzeln daran arbei-    Werte Ebene, in dem die Dozierenden selbst im
ten kann.                                             Rahmen ihrer Möglichkeiten diese agilen Werte
                                                      vorleben.
Darauf aufbauend können dann die Techniken der
agilen Entwicklung auf der Team-Ebene vermittelt      Beispiel Bachelor Programm
und erworben werden, die sich vor allem aus den       Obwohl an den beiden Fachhochschulen, auch was
Management Praktiken zusammensetzen. Diese As-        das Themengebiet Software Engineering angeht,
pekte lassen sich aus unserer Erfahrung heraus sehr   unterschiedliche Studienpläne existieren, haben
gut in Gruppen- und Projektarbeiten vermitteln.       sich, unterstützt durch den intensiven Austausch,
Die Konzeption, Organisation und Durchführung         viele Gemeinsamkeiten in der Vermittlung der
solcher Arbeiten ist aufwendig.                       agilen Methoden ergeben.
Sozusagen die Spitze der Kompetenzen der Agilen       Abbildung 1 zeigt als ein mögliches Beispiel einen
Entwicklung bildet die Werte-Ebene. Diese agilen
Wertehaltungen wie sie im Agile Manifesto [6] be-
schrieben werden, sind naturgemäss am schwie-
rigsten zu vermitteln. Wir versuchen die agilen
Werte punktuell immer wieder in den Unterricht
einfliessen zu lassen – oder ganz bewusst auch
vorzuleben.

Bachelor- und Master-Ausbildung
Aufgrund der sich schon früh abzeichnenden zu-
nehmenden Bedeutung der agilen Entwicklungs-
methoden haben wir begonnen die grundlegenden
Methoden und Techniken der agilen Software Ent-
wicklung in Form der genannten Management und
Engineering Praktiken in das Bachelor-Programm
zu integrieren [10,11]. Dies wird im Folgenden
noch genauer erläutert.                               Abbildung 1. Grundstudium Informatik
Auf Master-Stufe behandeln wir in unserem ge-
                                                      Ausschnitt des Informatik Bachelor-Programms der
meinsamen Kurs „Software Engineering and Archi-
                                                      Fachhochschule Nordwestschweiz.
tecture“ fortgeschrittene Themen der agilen Soft-
ware Entwicklung wie Lean Development und             Das fachliche Grundstudium im Bachelorstudien-
Kanban, Incremental Software Design und Soft-         gang ist aufgeteilt in die vier Themenbereiche, Mo-
ware Evolution.                                       dulgruppen genannt, Programmierung, Software
                                                      Engineering, sowie ICT Systeme und Mathematik.
Unterrichtsmethoden                                   Jede Modulgruppe besteht aus je 8 Modulen, die
Neben konventionellen Vorlesungen und Pro-            spezielle Themen aus der jeweiligen Modulgruppe
grammierübungen verwenden wir als weitere Un-         abdecken. Jedes Modul hat einen Umfang von 3
terrichtmethoden:                                     ECTS Punkten.
       Case Studies (Fremde / Eigene)                Begleitet wird die theoretische Ausbildung in den
                                                      Modulen durch eine vom ersten Semester an be-
       Gruppenarbeiten
                                                      ginnende Projektschiene, die sich bis in das 6. Se-
       Gastreferate mit Referenten aus der Soft-     mester fortsetzt. In dieser setzen die Studierenden
        ware-Industrie                                in grossen Teams (7 bis 8 Studierende) und an rea-
       Simulationen                                  len, d.h. von externen Kunden in Auftrag gegebe-
                                                      nen Projekten, die Theorie in die Praxis um. Dabei
       Medien: eBooks, Blogs, Internet.
                                                      werden in den beiden Jahresprojekten der ersten 4
                                                      Semester unterschiedliche Schwerpunkte gesetzt.




A. Spillner, H. Lichter (Hrsg.): SEUH 13                                                              83
Die explizite Ausbildung in agilen Methoden wird      zen, was auch sehr häufig auf freiwilliger Basis
insbesondere in den Modulen Software Konstruk-        geschieht, da sie die Vorteile solcher Umgebungen
tion im 2. Semester und Software Projekt Manage-      schon früh erkennen.
ment im 3. Semester der Modulgruppe Software
Engineering vorgenommen. In den Projekten und         Unit Testing
den sonstigen „programmierlastigen“ Modulen           Unit Testing wird im ersten Semester eingeführt.
wird darauf geachtet, dass auch hier die vermittel-   Dabei ist besonders wichtig, dass diese Praktik
ten agilen Praktiken zum Einsatz kommen.              nicht nur in speziellen Modulen unterrichtet wird,
In den folgenden Kapiteln beschreiben wir, wie wir    sondern, dass auch sonstige programmierlastige
an beiden Fachhochschulen die verschiedenen           Module Unit Tests einfordern oder vorgeben, um
Praktiken und Techniken im Unterricht vermitteln.     so z.B. die erfolgreiche Implementierung einer Pro-
                                                      grammieraufgabe zu überprüfen.
Engineering Practices                                 So können zum Beispiel im ersten Semester wäh-
                                                      rend der Einführung ins Programmieren Unit Tests
Bei der Besprechung der Practices orientieren wir
                                                      bei Übungen vorgegeben werden. Die Aufgabe gilt
uns an der Liste aus Tabelle 4.
                                                      als erfüllt, wenn das zu entwickelnde Programm
Coding Standards                                      alle Unit Test besteht. Die Studierenden lernen so
                                                      spielend die Nützlichkeit von automatischen Tests
Bereits im ersten Semester führen wir Coding Stan-
                                                      kennen und erleben nebenbei, wie wertvoll Tests
dards in der Einführungsvorlesung ins Program-
                                                      als Dokumentation sind.
mieren ein. Wir kombinieren Coding Standards mit
Clean Code [12], um so bei den Studierenden von       Anschliessend wird das automatische Testen mit
Anfang an auch das Bewusstsein für eine „saubere“     White-Box/Black-Box Tests und Äquivalenzklassen
Programmierung zu wecken. Mit dem Einbezug            formal eingeführt. Die Studierenden sind dann in
von Clean Code haben wir sehr gute Erfahrungen        der Lage, einfache Testfälle selbstständig zu schrei-
gemacht, da dies den konkreten praktischen Nut-       ben. In den höheren Semestern werden mit zuneh-
zen von Coding Standards sichtbarer macht.            mendem Know-how anspruchsvollere Testfälle mit
                                                      Mock-Objekten entwickelt und verschiedene Test-
Von nicht zu unterschätzender Wichtigkeit ist bei
                                                      muster eingeführt. Das automatische Testen sollte
der Einführung der Aspekt des Feedbacks. Das
                                                      sich durch möglichst alle programmier-nahen Vor-
wird wie folgt gehandhabt:
                                                      lesungen durchziehen.
Normalerweise gehört zu jeder Vorlesung eine
                                                      Ein anderer erprobter Weg ist, dass die Studieren-
Programmieraufgabe. Der Dozierende führt mit
                                                      den schon vom ersten Semester an in den Pro-
jedem Studierenden einen Code Review durch und
                                                      grammier-Modulen das Schreiben von einfachen
gibt ein ausführliches Feedback. Das Feedback ist
                                                      Unit-Tests mittels Unit Testing Frameworks ken-
im Allgemeinen mündlich, kann aber auch schrift-
                                                      nenlernen und in den Projekten anwenden. An-
lich erfolgen.
                                                      schliessend erhalten sie im zweiten Semester im
Das Feedbackgeben durch den Dozierenden ist           Modul Software Konstruktion eine vertiefte Ein-
zwar mit einen grossem Aufwand verbunden, ist         führung in das systematische Testen und fortge-
aus unserer Erfahrung aber entscheidend für den       schrittene Themen wie Mock Testing kennen, die
Lernerfolg.                                           sie dann wiederum in den Projektarbeiten für das
Coding Standards müssen natürlich durch die           fortgeschrittene Testen einsetzen können.
verwendete integrierte Entwicklungsumgebung
                                                      Refactoring
(IDE) unterstützt werden. Minimal sollte die IDE
auch Unterstützung für einfache Refactorings wie      Test Driven Development (TDD) baut auf automa-
Rename Method oder Rename Variable bieten.            tischen Unit Tests auf. Neben Kenntnissen in Unit
                                                      Testing brauchen die Studierenden auch Kenntnis-
Ebenfalls gute Erfahrungen haben wir mit Werk-
                                                      se in Refactoring. Mit anderen Worten sind gute
zeugen wie Checkstyle [16] gemacht, welches direkt
                                                      Kenntnisse in Refactoring eine Voraussetzung für
in der IDE anzeigt, falls die Coding Standards ver-
                                                      TDD.
letzt werden.
                                                      Die einfachsten Code-Refactorings werden bereits
Sehr positive Erfahrungen haben wir mit dem
                                                      am Anfang des Studiums zusammen mit den
frühzeitigen Einsatz dieser Konzepte und Werk-
                                                      Coding Standards und der IDE Unterstützung ein-
zeuge (z.B. im 2. Semester im Rahmen des Modul
                                                      geführt. Komplexere Design-Refactorings werden
Software Konstruktion) zusammen mit Continuous
                                                      in den folgenden Semestern eingeführt. Dazu wird
Integration Umgebungen gemacht. Durch eine frühe
                                                      ein Katalog der verschiedenen Refactorings abge-
Einführung werden die Studierenden animiert,
                                                      geben und mit den Studierenden durchgearbeitet.
diese Praktiken auch in ihren Projekten einzuset-




   84                                                          A. Spillner, H. Lichter (Hrsg.): SEUH 13
Ergänzt wird dieses Thema durch die Anwendung            werden verschiedene Jenkins-Erweiterungen be-
von komplexeren Refactorings wie Extract Class,          sprochen und ausprobiert. Dabei werden verschie-
Extract Method, Move Method anhand von Case              dene Metriken wie Code Coverage, Bindungsstärke
Studies z.B. bei Überschreitungen von Schwellwer-        von Klassen, Code Complexity, aber auch Lines of
ten bei Qualitätsmetriken.                               Code (LOC) behandelt.

Test Driven Development (TDD) und Refac-                 Fortgeschrittene Metriken werden in höheren Se-
                                                         mestern (Bewertung einer Software Architektur im
toring
                                                         4. Semester Software Entwurf [17]) oder im Master-
TDD ist eine anspruchsvolle Engineering Practice.        Studiengang (Technical Debit [18]) behandelt.
Um TDD wirklich zu beherrschen, wäre es am Bes-
                                                         Es hat sich als zweckmässig erwiesen, den ganzen
ten, wenn die Studierenden einen erfahrenen Soft-
                                                         Bereich der Software Konstruktion in einer eigenen
ware-Entwickler als Coach zur Seite hätten. Da dies
                                                         Vorlesung zusammenzufassen. Da Kenntnisse in
im Rahmen einer Vorlesung oder Übungsstunde
                                                         Software Konstruktion eine wichtige Vorausset-
nicht wirklich realisierbar ist, sind alternative Vor-
                                                         zung für erfolgreiche Projekt- und Bachelorarbeiten
gehensweisen nötig:
                                                         sind, sollte die Vorlesung bereits im zweiten oder
Bewährt haben sich folgende Alternativen:                dritten Semester durchgeführt werden.
       Case Studies                                     Der nachhaltige Erfolg der frühzeitigen Einführung
       Programming Katas                                dieser Praktiken zeigt sich unter anderem daran,
                                                         dass Studierende selbstständig eine solche Infra-
       Experten Videos
                                                         struktur für ihre Projektarbeiten anfordern und
       Bücher und Fachartikel                           einsetzen.
Während den Studierenden mittels Experten Vi-
deos und Fachliteratur die konzeptionellen Aspek-        Pair Programming
te des TDD vermittelt werden können, sollen Case         Pair Programming üben wir nicht speziell. Es wird
Studies und Programming Katas den Studierenden           zusammen mit den anderen Engineering Practices
dazu dienen, den TDD Ansatz praktisch zu üben            eingeführt und die Studierenden werden ermun-
und insbesondere dessen Einfluss auf Testbarkeit         tert, Pair Programming bei Gelegenheit gezielt
und Software Design selbst zu erfahren.                  einzusetzen und für sich zu entscheiden, ob es für
                                                         sie eine Option darstellt oder nicht.
Automated Builds
                                                         Wir haben die Beobachtung gemacht, dass die
Automated Builds werden mit Hilfe von Ant-               meisten Studierenden ganz automatisch eine Form
Skripts und einem Code Versioning System (CVS) wie       von Pair Programming einsetzten. Sehr oft setzten
zum Beispiel SVN oder GIT eingeführt. Um den             sich zwei Studierende zusammen an einen Compu-
vollen Nutzen der Build-Automatisierung zu erfah-        ter und lösen eine Programmieraufgabe gemein-
ren, bauen die Studierenden anhand einer konkre-         sam. Es scheint also so etwas wie eine natürliche
ten Case Study über ein ganzes Semester ein Au-          Vorgehensweise beim Programmieren zu sein.
tomatisierungsskript kontinuierlich aus, so dass
das Kompilieren, Testen, Code Analysieren, als           Automated Acceptance Testing
auch das Packaging der Software vollständig au-          Auf Automated Acceptance Testing gehen wir
tomatisiert durchgeführt werden kann.                    ebenfalls im Rahmen der Vorlesung Software Kon-
Automated Builds sind eine Voraussetzung für             struktion ein. Es wird ein Überblick über das Kon-
Continuous Integration und werden im nächsten            zept anhand des Test Frameworks Fit [13] vermit-
Kapitel genauer angeschaut.                              telt und Akzeptanztests geschrieben. Diese Tests
                                                         werden auch in den CI-Build Prozess integriert.
Continuous Integration (CI)
Automated Builds und Continuous Integration              Collective Code Ownership
werden mittels einer konkreten Fallstudie in einer       Ebenso wie Pair Programming wird auch das The-
Gruppenarbeit vermittelt und ebenfalls schon früh-       ma der Collective Code Ownership nicht explizit
zeitig im Studium eingeführt (z.B. im Rahmen des         unterrichtet. Die Studierenden werden jedoch
Moduls Software Konstruktion im 2. Semester). In         durch Verwendung von Versionskontrollsystemen,
einem ersten Schritt wird das Beispielprojekt in ein     Anwendung von Coding Standards und Wechseln
Code Versioning System importiert. Im zweiten            der Verantwortlichkeiten in den Projekten dazu
Schritt werden die Build-Skripts entwickelt, damit       ermuntert, diese Praktik auszuprobieren.
das Beispielprojekt automatisiert gebaut werden
kann. Im dritten Schritt Konfigurieren die Studie-
renden den CI-Server (Jenkins). Im vierten Schritt




A. Spillner, H. Lichter (Hrsg.): SEUH 13                                                                 85
Fortgeschrittene Engineering Practices                  plementation und Abnahme der Tasks sowie einer
Die weiteren Engineering Practices wie Continuous       Retrospektive nach jeder Iteration durchgespielt.
delivery, Acceptance Test Driven Development            Die Planung und Retrospektiven werden „richtig“
(ATDD) oder Behavior Driven Development (BDD)           gemacht, die Implementationen dauern jeweils nur
sprengen unserer Ansicht nach den Rahmen eines          zwei Minuten. In diesen zwei Minuten kann natür-
Bachelor Studiums. Denkbar, und aus unserer Sicht       lich kein Code entwickelt werden. Anstelle werden
auch sinnvoll, wäre es, diese weiteren Engineering
                                                        kurze, einfache Tasks, wie zum Beispiel ein Kar-
Practices zukünftig im Master Studium zu behan-
                                                        tenhaus bauen oder etwas im Kopf ausrechnen,
deln, da wir davon ausgehen, dass diese Praktiken
in Zukunft an Bedeutung gewinnen werden.                durchgeführt.
                                                        Das XP-Game wurde bis jetzt vier Mal mit je ca. 25
Management Practices                                    Studierende im Master-Studiengang im Rahmen
                                                        des Moduls „Software Engineering and Architec-
Wie aus Tabelle 5 zu entnehmen ist, sind bei den
                                                        ture“ (3 ECTS) [19] durchgeführt.
Management Practices diejenigen am weitesten ver-
breitet, welche sich direkt mit der Projektplanung      Interessant sind dabei folgende Beobachtungen:
befassen. Nicht unerwartet wird die Planung vor-        -   Die erste Iteration ist typischerweise sehr chao-
wiegend unter Verwendung von User Stories ge-               tisch. Die Schätzungen sind schlecht und die
macht. Überraschenderweise sind Retrospektiven              Selbstorganisation der Teams funktioniert
in der Praxis, trotz deren unbestritten hohem Nut-          nicht.
zen, nicht sehr weit verbreitet.
                                                        -   Nach der Retrospektive am Anschluss an die
Die Management Practices betreffen vorwiegend die           erste Iteration nimmt die Selbstorganisation der
Team Ebene. Teamarbeiten sind im Gegensatz zu               Teams merklich zu. Ab der zweiten Iteration
den Engineering Practices, welche vorwiegend die            funktionieren die Teams, die Schätzungen
Individuelle Ebene betreffen, nicht einfach in den          werden viel besser.
Unterricht zu integrieren. Die meisten Management
                                                        -   Die Velocity wird erstaunlich konstant.
Practices können nur sinnvoll in einem grösseren
Team im Rahmen eines „richtigen“ Projekts sinn-         -   Der Lerneffekt in dieser kurzen Zeit ist sehr
voll geübt werden. Oft ist es aber nicht zweckmäs-          gross. Die Studierenden sind aktiv am arbeiten.
sig oder aus zeitlichen Gründen unmöglich, ein          -   Das XP-Game macht grossen Spass!
solches Projekt durchzuführen. In diesem Fall kann
                                                        Das Feedback der Studierenden ist durchwegs po-
die Situation mit einem der agilen Games wie zum
                                                        sitiv. Die Studierenden schätzen es insbesondere
Beispiel dem XP-Game [14] oder Scrum-City-Game
                                                        auf eine spielerische Art einen grossen Lerneffekt
[15] simuliert werden.
                                                        zu erzielen.
Scrum
                                                        Scrum City Game
Als agile Projektmethode verwenden wir Scrum.
                                                        Ein alternativer Ansatz um agile Management
Die verschiedenen Studien zeigen, dass Scrum am
                                                        Praktiken zu vermitteln und, insbesondere, zu er-
weitesten verbreitet ist. Scrum bietet auch den Vor-
                                                        fahren, ist das Scrum Lego City Game [15]. Hier
teil, dass die Anzahl der roles, events und artifacts
                                                        bekommen die einzelnen Teams die Aufgabe ge-
klein ist.
                                                        stellt in einem Mini-Projekt während vier 10 minü-
Wir haben die Erfahrung gemacht, dass die Funkti-       tigen Sprints eine Stadt aus Lego-Bausteinen nach
onsweise von Scrum schnell im Unterricht erklärt        vorgegeben User Stories zu realisieren.
werden kann. Der schwierige Teil kommt bei der
                                                        Wir führen das Scrum Lego City Game in Gruppen
Einführung. Wenn die Studierenden Scrum (oder
                                                        von 6 bis 7 Studierenden in leicht abgewandelter
eine andere Projektmethode) wirklich anwenden
                                                        Form über mehrere Wochen durch:
sollen. Wie kann im Unterricht ein Klima geschaf-
fen werden, so dass die Studierenden sich wie in        -   An Stelle von (teuren) Lego-Bausätzen wird die
einem „echten“ Projekt fühlen? Wenn sie das Ge-             Stadt aus Karton und Papier mit Farbstiften
fühl haben, dass es sich um ein „Alibi“-Projekt             Scheren und Klebstoff gebaut.
handelt, setzten sie sich nicht ein und profitieren     -   Das Schreiben der User Stories ist Teil der Auf-
entsprechend wenig.                                         gabenstellung. Um zu verhindern, dass die
                                                            Entwickler ihre eigenen Anforderungen schrei-
XP-Game                                                     ben, bekommt der Product Owner (PO) eines
Das XP-Game [14] simuliert ein agiles Projekt. In           Teams die Entwickler eines anderen Teams als
drei bis vier Stunden werden drei Iterationen mit           Benutzer zugewiesen und definiert mit diesen
Schätzen der Tasks, Planung der Iterationen, Im-            die Anforderungen für „sein“ Team.




   86                                                           A. Spillner, H. Lichter (Hrsg.): SEUH 13
-   Auch die Priorisierung der User Stories durch      getroffenen (und natürlich auch der nicht getroffe-
    den PO und das Schätzen durch das Entwick-         nen) Entscheidungen besser verstehen.
    lerteam gehören zur Aufgabe.                       Der Wert dieses Scrum-Projekts besteht in der
Danach werden in insgesamt 3-4 Sprints die Aktivi-     Kombination der Engineering Practices mit den Ma-
täten wie Sprint-Planung, Task Breakdown, Sprint       nagement Practices in einer realistischen Projektsitu-
Review, Retrospektive, Arbeiten am Scrum Board         ation. Während des Projekts gibt es auch oft Gele-
in Mini-Sprints von 10 Minuten Dauer durchlaufen.      genheit für den Coach, die Werte der agilen Soft-
Aufgrund der kurzen Sprints entfällt der Daily         wareentwicklung einfliessen zu lassen.
Scrum.
                                                       Projekt- und Bachelorarbeiten
Die dabei gemachten Erfahrungen decken sich
durchwegs mit jenen des XP Games. Ein weiterer         In den Projekt- und Bachelorarbeiten ist es den
wichtiger Aspekt ist die Einprägsamkeit der ver-       einzelnen Dozierenden überlassen, ob sie die Auf-
schiedenen Konzepte durch das konkrete Anwen-          gabe mit einer agilen Projektmethode lösen lassen
den in dieser Spielform.                               oder nicht.
                                                       Vor allem in der sogenannten „Projektwoche“, in
Entwicklung eines Computerspiels mit                   der die Projektteams einmal pro Semester eine gan-
Scrum                                                  ze Woche am Stück an ihren Projekten arbeiten
In einem neuen Software Engineering Modul im 5.        können, wird insbesondere das Taskboard für die
Semester wird ein anderer Weg beschritten. Die         intensive Teamarbeit genutzt.
Studierenden sollen die Individuelle-, Team- und       Bei externen Projekten ist es eine Herausforderung
Werte-Ebenen während einem Semester möglichst          auch die externen Auftraggeber für das agile Vor-
intensiv erfahren und verinnerlichen. Die Vorle-       gehen zu überzeugen, da dies ein grösseres Enga-
sung ist als eigentlicher „Crash“-Kurs für „agile      gement des Kunden erfordert. Die Erfahrungen mit
Software Engineering“ konzipiert.                      solchen Projekten sind jedoch mehrheitlich positiv.
In der ersten Hälfte des Semesters liegt der Fokus     Eine Schwierigkeit, Projektarbeiten nach agilem
auf der Individuellen Ebene. Es gibt eine ausführli-   Vorgehen zu organisieren, ist, dass in diesen Arbei-
che Einführung in die Engineering Practices von        ten die Teams aus Zeitgründen in der Regel nur
eXtreme Programming: Coding Standards, Unit            einmal pro Woche gemeinsam am Projekt arbeiten
Testing, Continuous Integration (CI), etc. Die Stu-    können, sonst eher getrennt (z.B. Zuhause). Ein
dierenden werden mit dem automatischen Build           „Daily Standup“ ist daher in der Regel nicht mög-
Process bekannt gemacht und nach der Hälfte des        lich. Die Studierenden machen daher eher ein Mee-
Semesters haben sie bereits einen kompletten CI-       ting, in dem sie sich gegenseitig auf den neuesten
Server in Betrieb genommen.                            Stand bringen. Statt einer Pinnwand als Scrum
In der zweiten Hälfte liegt der Fokus auf der Team     Board, werden häufig digitale Boards eingesetzt,
Ebene. Die Studierenden sollen in Gruppen von          die jedoch nicht so einfach zu bedienen sind wie
sechs bis acht Mitgliedern während den restlichen      Pinnwände und nicht die gleiche Flexibilität auf-
sieben Wochen ein eigenes 2D-Computerspiel ent-        weisen. Daher werden diese oft nicht mit der not-
wickeln. Dazu bekommen sie eine ausführliche           wendigen Sorgfalt verwaltet.
Einführung in Scrum sowie in agiler Schätzung
und Planung.                                           Erfahrungen
Die Studierenden schreiben die User Stories, schät-    Welche Erfahrungen haben wir nun mit dem Un-
zen die Tasks und planen die Iterationen. Eine         terrichten von agilen Methoden gemacht, und wie
Iteration dauert nur eine Woche und der Umfang         wird dieses Vorgehen von den Studierenden auf-
ist dementsprechend klein. Längere Iterationen         genommen?
sind nicht zweckmässig, da das Projekt mit nur
                                                       Unsere Erfahrungen sind durchwegs positiv, auch
sieben Wochen extrem kurz ist.
                                                       wenn noch einige Herausforderungen bestehen.
Die Dozierenden nehmen bei jeder Gruppe am             Die Studierenden sind sehr offen gegenüber den
wöchentlichen Sprint-Meeting teil und unterstüt-       agilen Methoden, da sie den Fokus stärker auf die
zen die einzelnen Teams. Es wird grosser Wert auf      eigentlichen Interessen der Studierenden, die Kon-
die Planung und Retrospektive gelegt.                  struktion der Software durch Design und Pro-
Die Dozierenden coachen die einzelnen Teams und        grammierung, legen. Das Feedback der Studieren-
geben Unterstützung bei auftretenden Schwierig-        den ist entsprechend ermutigend.
keiten. Sie versuchen auch, den Teams einen „Spie-     Gerade auch der Nutzen von Test-getriebener Ent-
gel“ vorzuhalten, damit sie ihre Entscheidungen        wicklung und der Automatisierung mittels CI Um-
reflektieren und dadurch die Konsequenzen der          gebungen wird für die Studierenden sehr schnell




A. Spillner, H. Lichter (Hrsg.): SEUH 13                                                                  87
ersichtlich und, erfreulicherweise, von diesen dann      richten, sondern diese in möglichst vielen pro-
selbst in Projektarbeiten eingesetzt.                    grammier-nahen Modulen anzuwenden und zu
Unterschätzt wird häufig das disziplinierte Vorge-       vermitteln, was generell ein Wechsel des Unter-
hen, welches agile Methoden vom gesamten Pro-            richtskonzept der isolierten Fachmodule hin zu
jektteam z.B. bei der iterativen Planung und der         einem integrativem Gesamtstudienkonzept bedeu-
Software Qualität, einfordern. Hier gilt es sicherlich   tet.
von der Ausbildungsseite her, ein Augenmerk da-          Auf Master-Stufe wollen wir die Vermittlung fort-
rauf zu haben.                                           geschrittenen Engineering und Management Practices
Die Simulationen von agilem Vorgehen mittels             weiter ausbauen, da diese in Zukunft eine zuneh-
Games (XP, Scrum) hat sich sehr bewährt. In den          mende Bedeutung erlangen werden.
Games „erfahren“ die Studierenden wichtige agile         Zum Schluss sei angemerkt, dass auch die agilen
Konzepte wie selbst-organisierte Teams und häufi-        Softwareentwicklungsmethoden nicht das Ende der
ge Auslieferungen in sehr intensiven Mini-               Entwicklung der Softwareprozesse darstellen. Die
Projekten, die sich entsprechend einprägen.              Informatik ist immer noch eine sehr junge Diszip-
Im Hinblick darauf, dass vor allem die agilen Wer-       lin, deren Entwicklungsprozessmodelle sich stetig
te, aber auch deren Praktiken nicht durch einmali-       weiterentwickeln werden. Aus Sicht der Ingenieur-
ges Vermitteln sondern durch Vorleben und stän-          Ausbildung ist es daher zentral, sich abzeichnende
dige Anwendung erlernt werden müssen, ist es             Entwicklungen in der Ausbildung vorwegzuneh-
wichtig, dass diese Praktiken auch in den sonstigen      men und damit einen Beitrag dazu zu leisten, dass
Programmiermodulen zum Einsatz kommen.                   moderne Entwicklungsmethoden ihren Einzug in
                                                         die Praxis halten.
Die neuen zusätzlichen Anforderungen an die Do-
zierenden sind dabei nicht zu unterschätzen. Die
Dozierenden der entsprechenden Module müssen
                                                         Referenzen
sich die notwendigen Grundlagen aneignen. Die            [1] Kropp, M., Meier, A. Swiss Agile Study - Ein-
Vorlesungen müssen entsprechend angepasst, und               satz und Nutzen von Agilen Methoden in der
die agilen Praktiken in die eigenen Module inter-            Schweiz. www.swissagilestudy.ch, 2012 (Ber-
giert werden. Der höhere Aufwand der Dozieren-               icht in Bearbeitung).
den ist sicher eine Herausforderung, welcher aber        [2] Version One. State of Agile Development Sur-
aus unserer Sicht durch das gute Resultat mehr als           vey results.
gerechtfertigt ist.                                          http://www.versionone.com/state_of_agile_de
Ein weiterer wichtiger Vorteil der Vermittlung der           velopment_survey/11/, 20.10.2012
agilen Methoden ist, dass die vor allem von XP           [3] Software Engineering and Architecture.
propagierten allgemeinen Best Practices viel stärker         http://www.msengineering.ch/fileadmin/user_
ins Bewusstsein der Studierenden rücken und auch             uplo-
eine stärkere Akzeptanz erfahren, da mit jeder Ite-          ad/modulbeschreibungen/de/TSM_SoftwEng_
ration eine Qualitätskontrolle stattfindet.                  de.pdf, 29.10.2012.
                                                         [4] http://www.zhaw.ch/, 29.10.2012
Zusammenfassung und Ausblick
                                                         [5] http://www.fhnw.ch/technik, 29.10.2012
Wie unsere und auch internationale Studien zeigen,
sind agile Software Entwicklungsmethoden in der          [6] Agile Manifesto. http://agilemanifesto.org/,
Praxis sehr stark im Kommen. In der Ingenieur-               29.10.2012.
Ausbildung müssen wir uns den geänderten Kom-            [7] K. Schwaber, M. Beedle. Agile Software De-
petenzanforderungen stellen und unsere Ausbil-               velopment with Scrum. Prentice Hall, 2001.
dungskonzepte entsprechend anpassen und erwei-           [8] K. Beck. Extreme Programming Explained:
tern.                                                        Embrace Change. Addison-Wesley, 2009
Im vorliegenden Artikel haben wir beschrieben,           [9] M. und L. Poppendieck. Lean Software Devel-
wie wir die Vermittlung von agilen Softwareent-              opment: An Agile Toolkit. Addison-Wesley,
wicklungsmethoden an unseren Fachhochschulen                 2003.
integriert haben. Die Erfahrungen damit sind sehr
positiv und die erzielten Erfolge stimmen zuver-         [10] S. Hauser, M. Kropp. Software Projekt Ma-
sichtlich. Erste Feedbacks aus der Praxis über die            nagement.
Kompetenzen der Abgänger bestätigen unseren                   http://web.fhnw.ch/plattformen/spm/ ,
eingeschlagenen Weg.                                          29.10.12

Eine generelle Herausforderung bleibt, die agilen
Konzepte nicht nur in einzelnen Modulen zu unter-




   88                                                            A. Spillner, H. Lichter (Hrsg.): SEUH 13
[11] Ch. Denzler, M. Kropp. Software Construction.
     http://web.fhnw.ch/plattformen/swc.
     29.10.2012
[12] R.C. Martin. Clean Code: A Handbook of Agile
     Software Craftsmanship. Prentice Hall, 2008.
[13] R. Mugridge, W. Cunningham. Fit for Devel-
     oping Software: Framework for Integrated
     Tests. Prentice Hall, 2005.
[14] XP Game. XP-Game, http://www.xpgame.org,
     29.10.2012
[15] Scrum Lego City Game.
     http://www.agile42.com/en/training/scrum-
     lego-city, 29.10.2012
[16] Checkstyle Homepage.
     http://checkstyle.sourceforge.net/, 31.10.2012
[17] Ch. Denzler.
     http://web.fhnw.ch/plattformen/swent,
     31.10.2012
[18] W. Cunningham. The WyCash Portfolio Man-
     agement System. OOPLSA 1992.
[19] Modul Software Engineering & Architecture,
     Master Of Science of Engineering,
     http://www.msengineering.ch/fileadmin/user_
     up-
     load/modulbeschreibungen/de/TSM_SoftwEn
     g_de.pdf, 18.12.2012
[20] D.F. Rico; H.H. Sayani. "Use of Agile Methods
     in Software Engineering Education," Agile
     Conference, 2009. AGILE '09. , vol., no.,
     pp.174-179, 24-28 Aug. 2009.
[21] A. Shukla; L. Williams. "Adapting extreme
     programming for a core software engineering
     course ," Software Engineering Education and
     Training, 2002. (CSEE&T 2002). Proceedings.
     15th Conference on , vol., no., pp.184-191,
     2002.




A. Spillner, H. Lichter (Hrsg.): SEUH 13              89