Agile Web-Entwicklung

($Id: faq.txt,v 1.3 2008/01/23 14:19:56 cabo Exp $)

Worum geht es?

Agile Web-Entwicklung.

Wir erleben gegenwärtig eine kleine Revolution in der Anwendungsentwicklung, insbesondere dort, wo das Web als Auslieferungsplattform für Anwendungen zum Einsatz kommt. Nicht alle Projekte können von dieser Revolution profitieren, aber diejenigen, die können, sind mit den Entwicklungsprojekten des vergangenen Jahrhunderts nicht zu vergleichen. Dabei spielen mehrere Ideen zusammen:

  1. Produktive Entwicklung. Neue Plattformen erlauben es, Web-Anwendungen um ein Vielfaches schneller zu entwickeln als bisher. In dieser Veranstaltung benutzen wir Ruby on Rails, da diese Plattform so etwas wie Pionierstatus in diesem Bereich hat — es ist aber nicht das primäre Ziel, genau diese konkrete Plattform kennenzulernen, sondern es geht mehr darum, zu sehen, wie moderne Ideen die Welt der Web-Entwicklung verändern (genauer: bereits verändert haben und mit atemberaubender Geschwindigkeit weiter verändern).

  2. Agile Entwicklung. Wenn das Entwickeln jetzt so viel produktiver wird, kann man auf das langwierige Schreiben von unflexiblen Spezifikationen verzichten: Der Prototyp (der bei einer Web-Anwendung ja ohnehin selbsterklärend sein muss) selbst ist die Spezifikation, die in Zusammenarbeit mit dem Kunden weiterentwickelt wird. (Na gut, etwas nachdokumentieren muß man noch, aber eben erst, wenn der Kunde mit dem Produkt schon gearbeitet hat und man weiß, ob es dabei bleibt.) Mehr unter agilemanifesto.org. Ziel ist dabei, die Entwicklungszeiten zu verkürzen und flexibler auf Kundenwünsche reagieren zu können — ausgehend von der Erfahrung, daß Spezifikationen selten die tatsächlichen Anforderungen der Benutzer widerspiegeln.

  3. Nachhaltige, standardbasierte Web-Technologien (HTML, CSS, JavaScript); Web 2.0. (Und ja, auch AJAX kommt vor.)

  4. Motherhood and Applepie. Paired („Extreme“) Programming, Dynamische Programmiersprachen (wie eben Ruby), TDD (Test-Driven Development), DSL (Domain-Specific Languages), Convention over Configuration, DRY (don't repeat yourself), ...

Wann, wo?

Hätte man das nicht früher planen und ankündigen können?

(Bitte nochmal den Absatz über „agile Entwicklung“ lesen.)

Gibt es diese Veranstaltung später noch mal?

(Oder: In den beiden Wochen plane ich

Es ist zwar schon das dritte Mal, aber diese Lehrveranstaltung bleibt wie meine anderen Kür-Veranstaltungen vermutlich eine einzigartige Produktion, nicht zuletzt wegen des Mitveranstalters Jan Krutisch in diesem Jahr. Sag den Urlaub/dem Erbonkel ab, dann kannst Du hinterher Deine Enkel damit beeindrucken, dabeigewesen zu sein.

Moment mal, für agile Entwicklung braucht man doch jemanden, der weiß, was er entwickelt haben will?

Genau. Wir werden in dieser Veranstaltung gleichzeitig mit dem Kennenlernen der Konzepte (= Vorlesungsanteil) in Form vieler kleiner Projekte Web-Anwendungen bauen. Diese Web-Anwendungen werden am 29.02.2008 abgeschlossen und abgegeben. Während der Veranstaltung besteht Gelegenheit, mit dem Anwender über seine Bedürfnisse zu sprechen.

Klingt doch erst mal gut. Was ist der Haken?

Wir haben in der Veranstaltung verschiedenen Organisationen die Rollen des Kunden zugewiesen, um auf realistische Weise die agile Entwicklung nachspielen zu können.

OK, aber was ist der Haken?

Die Kunden spielen verständlicherweise nur mit, wenn sie hinterher ein (übertragbares) Nutzungsrecht an den Ergebnissen haben. Das sichern die Teilnehmer den Kunden zu Beginn des Kurses zu.

Unverschämt!

Vielleicht ist das mit dem Ski-Urlaub doch gar keine so schlechte Idee.

(Sorry, aber wenn Du Dich daran stößt, daß die Kunden für ihren Einsatz ebenso etwas bekommen wie Du für Deinen Einsatz, dann hast Du genug andere Veranstaltungen zur Auswahl; nicht mit mir.)

Die kriegen doch eh nur Schrott!

Wissen die. Auf das Experiment wollen sie es trotzdem ankommen lassen.

Kann ich meinen eigenen Kunden mitbringen?

Im Prinzip ja, aber der muss sich dann ernsthaft an der LV beteiligen (und das ganze muß entsprechend rechtzeitig geplant werden).

OK, einverstanden. Wie melde ich mich an?

  1. Mail an Carsten (Name, FB3-login, Matrikelnummer; was Dir sonst noch zu dem Kurs einfällt; ein Grund, warum ich bei Überfüllung des Kurses gerade Dich aufnehmen soll, ...)

  2. Einführungstermin: Mittwoch, 2008-01-23, 10:00 bis 13:00 im GW1/A0160. Mehr dazu, auch die Folien, unter Ruby Lernen.

  3. Bis zum 15.02.2008 Hausaufgaben machen.

Ich habe den Einführungstermin verpennt / ich mußte am 23.01.2007 den ganzen Tag rasenmähen und konnte daher nicht kommen

Hmm, die nächsten Wochen könnten anstrengend werden. Sprich mal mit Carsten...

Welche Hausaufgaben?

Da der Kurs auf der (für viele von Euch noch unbekannten) Programmiersprache Ruby basiert, die natürlich nicht Gegenstand der Lehrveranstaltung sein kann, müßt Ihr Euch da vorher einarbeiten; wir rechnen mit 30 Zeitstunden Aufwand dazu.

Mehr dazu unter Ruby Lernen.

Was passiert, wenn es zu viele Anmeldungen gibt?

Das überlege ich mir, wenn es zu viele Anmeldungen gibt (32 Plätze haben wir). Irgendwas mit den Hausaufgaben wird es aber wohl zu tun haben.

Scheinkriterien

Verhandeln wir natürlich, aber ich gehe davon aus, daß die Bewertung des Ergebnisses des Entwicklungsprojektes den größten Anteil an der Note hat.

Wieviele Java-Frameworks braucht man, um eine Glühbirne einzuschrauben?

Genau.