Kapitel 8.2 Agile Prozesse Flashcards

1
Q

Was ist das agile Manifest?

A

Eine Gegenreaktion zu plangetriebenen Prozessen (Wasserfall)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Welche Ideen stehen im agilen Manifest?

A
  • Individuen und Interaktion wichtiger als Prozesse und Werkzeuge
  • Laufende Software wichtiger als vollständige Dokumentation
  • Kundenmitarbeit wichtiger als Vertragsverhandlungen
  • Sich auf Änderungen einstellen wichtiger als Verfolgen eines Plans
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Eigenschaften von agilen Prozessen?

A
  • Minimum an Vorausplanung
  • Planung erfolgt inkrementell
  • Vermeiden unterstützender Dokumente
  • Schnelle Reaktion auf Änderungen
  • Einbeziehung des Kunden in die Entwicklung
  • Vertreter: Extreme Programming (XP), Scrum, Crystal, Adaptive Software Development, Feature-Driven Development, Software- Expedition
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Praktiken des Extreme Programming (XP) nennen?

A
  • Paarprogrammierung
  • Testgetriebene Entwicklung
  • Inkrementeller Entwurf durch Umstrukturierungen
  • Iterative Planung in kurzen Zyklen (Planungsspiel)
  • Aktive Beteiligung des Kunden
  • Fortlaufende Integration
  • Programmierrichtlinien
  • Gemeinsamer Quelltext-Besitz
  • Textuelle Beschreibung der Anwendungsfälle auf Karteikarten
  • 40-Stunden-Woche
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist Paarprogrammierung?

A
  • Jede Programmiertätigkeit wird im Paar ausgeführt
  • Arbeit an einer Tastatur, einer Maus und einem Bildschirm
  • Rollenverteilung: Fahrer und Beifahrer
    • Fahrer denkt an Implementierung des Algorithmus
    • Beifahrer denkt strategisch, führt ständige Durchsicht durch
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vorteile und Nachteile der Paarprogrammierung nennen.

A

Vorteile:

  • Führt zu nachweisbar höherer Qualität des Programmtextes
  • Paarprogrammierung kompensiert für fehlende Inspektionen/Reviews.

Nachteile:

  • Vorteil gegenüber Einzelprogrammierung plus Inspektionen ist nicht nachweisbar.
  • Kosten verdoppeln sich nahezu.
  • Nützt eher unerfahrenen Entwicklern.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Eigenschaften von Effizientem Testen?

A
  • Möglichst zeitnah zur Programmierung
  • Automatisiert und damit wiederholbar
  • Soll Spaß machen
  • Testen so oft und so einfach wie Übersetzen
  • Fehler finden, nicht Fehlerfreiheit beweisen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie funktioniert das Testen bei XP?

A
  • “Any program feature without an automated test simply doesn’t exist.”
  • Programmierer schreiben automatische Komponententests Kunde spezifiziert Akzeptanztests, die das Team implementiert
  • Andere Testarten auch möglich, z. B. Stresstest
  • Testausführung häufig und automatisch
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie funktioniert testgetriebene Entwicklung?

A
  • Test/Implementierung/Umstrukturierung: Motiviere jede Verhaltensänderung am Quelltext durch einen automatisierten Test.
  • Umstrukturierung und einfacher Entwurf: Bringe den Code immer in eine einfache Form.
  • Häufige Integration: Integriere den Code so häufig wie möglich.
  • Paarprogrammierung: Soll helfen die Regeln der testgetriebenen Entwicklung einzuhalten.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Zustandsdiagramm der testgetriebenen Entwicklung?

A
  • Testcode vor Anwendungscode schreiben
  • kleine Schritte (nicht mehr als eine Methode pro Zyklus)
  • Inkrementeller Entwurf (nur so viel, wie gebraucht wird; kein vorausschauender Entwurf)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Test/Implementierung/Umstrukturierung:

was passiert in den Übergängen grün->rot, rot-> grün und grün->grün?

A
  • grün → rot:
    • Schreibe einen Test der fehlschlägt. Schreibe gegebenenfalls gerade soviel Quelltext (Stummel, Attrappen, Nachahmungen), dass der Test übersetzt werden kann.
  • rot → grün:
    • Schreibe gerade soviel Quelltext, dass alle Tests erfolgreich laufen.
  • grün → grün:
    • Bereinigung durch Umstrukturierung: Eliminiere Duplikationen und andere Unsauberkeiten im Quelltext. Alle Tests müssen weiterhin laufen.
      *
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist Umstrukturierung und wie lauten die Voraussetzungen dafür?

A

“A change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior.” [Fowler 1999]

Voraussetzungen:

  • automatische Tests: sie stellen lauffähiges Produkt nach Umstrukturierung sicher
  • kollektiver Code-Besitz: Änderungen am ganzen Produkt für jeden möglich
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Ziel der Umstrukturierung?

A

Stets eine möglichst einfache Form, die für die bisher implementierten Anforderungen ausreicht (kein änderungsfreundlicher, vorausschauender Entwurf nötig)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Umstrukturierung: Wann ist die einfache Form erreicht?

A

Die einfache Form ist erreicht, wenn der Code…

  • alle seine Tests erfüllt.
  • vom „Zielpublikum“ verstanden werden kann.
  • jede Intention der Programmierer ausdrückt.
  • keine duplizierte Logik enthält.
  • möglichst wenig Klassen und Methoden umfasst.
  • Reihenfolge entscheidend!
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wo wird die Umstrukturierung durchgeführt?

A
  • Durchgeführt an faulen Gerüchen (engl. bad smells) des Programmtextes, z. B.:
    • duplizierter Programmtext
    • parallele Vererbungsbäume
    • Schrotflintenchirurgie: eine neue Funktion erfordert Änderung an vielen Stellen
    • Kommentare zu umfangreich (Variablen besser benennen, Codestücke herausziehen und in Methoden verpacken)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist der unterschied zwischen dem konventionellen Ansatz und dem XP Ansatz?

A
  • Konventioneller Ansatz: „Implement for today, design for tomorrow“
  • XP Ansatz: „The system should be designed as simply as possible at any given moment. Extra complexity is removed as soon as it is discovered.“
  • [Beck 2005]

Kleine inkrementelle Entwurfsschritte statt großer Entwurfsphase!

17
Q

Was ist das Ziel des Planungsspiels?

A
  • Ziel: Planung von Umfang, Zeit und Kosten
    • der nächsten Iteration (wöchentlicher Zyklus)
    • der nächsten Auslieferung (vierteljährlicher Zyklus)
  • Ständige Korrektur des Planes
18
Q

Eigenschaften des Kunden?

A
  • Echter Kunde ist jemand, der das Produkt später wirklich nutzen soll
  • Kunde sollte ständig verfügbar sein
  • Der Kunde sollte im selben Raum arbeiten wie Entwicklerteam
  • Ist in der Praxis nicht ganz leicht einzuhalten, und Kunde ist unterausgelastet
19
Q

Was ist die Behauptung Kent Becks?

A

Bei konventionellem Entwicklungsprozess steigen die Kosten für Änderungen exponentiell mit der Zeit.

20
Q

Behauptung Kent Becks Nr2?

A

Für den XP Entwicklungsprozess verläuft die Kurve dagegen asymptotisch.

21
Q

Kritik an XP?

A
  • Asymptotische Kostenkurve beruht auf der Erfahrungeinzelner
  • Fehlende Produktdokumentation
  • Nicht reproduzierbarer ad-hoc Prozess
  • Paarprogrammierung kostenintensiv, unklar ob dies durch den Zuwachs an Qualität kompensiert wird
22
Q

Probleme bei der Einführung von XP?

A
  • Kunde muss mitarbeiten und dies auch wollen
  • Softwareingenieure sind auf Vorausschau getrimmt. Folge kann sein:
    • Zu komplexer Entwurf
    • Zu umfangreicher Entwurf
  • Testgetriebene Entwicklung erfordert umdenken und umlernen
  • Gleiche Wellenlänge bei Paarprogrammierung
  • Respekt vor fremdem Programmtext
23
Q

Wie wird XP bewertet?

A

Ist XP Programmieren durch Probieren?

  • Nein,
    • Planungsschritte
    • Forderung nach erfolgreichen Tests
    • Testgetriebene Entwicklung und Restrukturierung kompensieren für fehlende Entwurfsphase
    • Paarprogrammierung kompensiert für fehlende Inspektionen
  • Cowboy-Programmierer diszipliniert
  • Spektrum des Planens
    • XP: leichtgewichtige, änderbare Planung
    • Wasserfallmodell: schwergewichtige, feste Planung
24
Q

Wie lauten die 3 Säulen der empirischen Verbesserung (bei Scrum)?

A
  • Transparenz
    • Der Arbeitsfortschritt und Hindernisse müssen für alle die die Arbeit verrichten und alle die diese Empfangen sichtbar sein.
  • Überprüfung
    • Die Artefakte und der Fortschritt in Bezug auf vereinbarte Ziele muss immer wieder sorgfältig überprüft werden um potenziell unerwünschte Abweichungen oder Probleme zu erkennen.
  • Anpassung
    • Sollte ein Aspekt des Prozesses oder das resultierende Produkt von akzeptablen Grenzen abweichen, muss der Prozess oder die produzierten Materialen schnellstmöglich angepasst werden.
25
Q

Was ist Scrum?

A

Scrum ist eine leichtgewichtige Rahmenarchitektur für das agile Projektmanagement.

26
Q
A