SWEN2

Software Engineering 2

Software Engineering 2


L. K.
Diese Lernkarten bieten einen umfassenden Überblick über agile Methoden, insbesondere Scrum, und richten sich an Studierende der Informatik. Sie behandeln zentrale Konzepte wie Sprints, Teams, User Stories und das Product Backlog, sowie Techniken zur Schätzung und Priorisierung von Aufgaben. Praktische Anwendungen, wie Planning Poker und die Definition von Done, werden ebenso erläutert. Ideal für Studierende, die agile Projektmanagementmethoden verstehen und anwenden möchten.
Karten
92
Lernende
10
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
28.05.2019 / 16.01.2020

Lernkarten

Was ist das Agile Manifesto?

Ein Set von Werten und Prinzipien, die von der Agile Community geteilt werden.

Das Agile Manifesto enthält 12 Prinzipien. Nenne 4 davon.

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  • Welcome changing requirements, even late in delevopment. Agile processes harness change for the customer's competitive advantage.
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  • Business people and developers must work together daily throughout the project
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  • Working is the primary measure of progress.
  • Agile processes promote sustainable development. The sponsors, developers and users should be able to maintain a constant pace indefinitely.
  • Continuous attention to technical exellence and good design enhances agility.
  • Simplicity - the art of maximizing the amount of work not done - is essential
  • The best architectures, requirements and desings emerge from self-oranising teams.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly

Zähle die Values des Agilen Manifestos auf und erläutere sie.

  • Individuals and interactions over processes and tools
    • Leute sollen mehr Wertschätzung erhalten als Prozesse oder Tools, denn es sind Leute, die auf Geschäftsbedürfnisse eingehen und den Entwicklungsprozess vorwärts treiben.
      Wenn der Prozess oder die Tools das tun würden, könnte das Team weniger schnell auf Änderungen reagieren und weniger auf Kundenbedürfnisse eingehen.
  • Working software over comprehensive documentation
    • Agilität elliminiert die Dokumentation nicht, aber es strafft sie in einer Art, die dem Entwickler gibt, was nötig ist um die Arbeit zu erledigen, ohne sich in Details festzufahren.
  • Customer collaboration over contract negotiation
    • Durch Kollaboration wird der Kunde in den ganzen Entwicklungsprozess eingebunden und nicht nur am Anfang und am Ende. Das stellt sicher, dass das Produkt den Geschäftsbedürfnissen des Kunden entspricht.
  • Responding to change over following a plan
    • Durch die Kürze der Iterationen in Agile können Prioritäten von Iteration zu Iteration angepasst und neue Features können hinzugefügt werden. Änderungen verbessern, aus der Sicht von Agile, immer das Projekt. Sie fügen zusätzlichen Wert hinzu.

Nenne 5 Verfasser des Agile Manifesto.

  • Kent Beck
  • Mike Beedle
  • Arie van Benekum
  • Alistair Cockburn
  • Ward Cunningham
  • Martin Fowler
  • James Grenning
  • Jim Highsmith
  • Andrew Hunt
  • Ron Jeffries
  • Jon Kern
  • Brian Marick
  • Robert C. Martin
  • Steve Mellor
  • Ken Schwaber
  • Jeff Sutherland
  • Dave Thomas

Nenne 4 Risiken bei Entwicklungsprojekten und wie Extreme Programming (XP) damit zusammenhängt.

  • Project cancelled
  • Business misunderstood
  • Business changes
  • Staff turnover

XP soll uns Prinzipien und Praktiken geben, um mit diesen Risiken umzugehen.

Was sind die 5 Core Values von XP?

  • Communication
  • Simplicity
  • Feedback
  • Courage
  • Respect

Erkläre den Core Value Communication

Jeder ist Teil des Teams und wir kommunizieren täglich face-to-face. Wir werden an allem gemeinsam arbeiten, von den Anforderungen bis zum Code. Wir werden gemeinsam die bestmögliche Lösung für unser Problem kreieren.

Erkläre den Core Value Simplicity.

Wir werden das tun, was nötig und verlangt ist, aber nicht mehr. Dies wird den Wert für das bisher gemachte Investment maximieren. Wir werfen kleine, einfache Schritte auf unser Ziel zu machen und Fehler behandeln, wenn sie auftreten.
Wir werden etwas kreieren, worauf wir stolz sind und es über lange Zeit zu vernünftigen Kosten unterhalten können.

Erkläre den Core-Value Feedback.

Wir werden jedes Iterations-Commitment ernst nehmen, ndem wir funktionierende SW liefern. Wir demonstrieren unsere SW früh und oft. Dann werden wir zuhören und die nötigen Änderungen vornehmen. Wir werden über das Projekt sprechen und unseren Prozess wo nötig anpassen.

Erkläre den Core Value Courage.

Wir werden die Wahrheit über Fortschritt und Schätzung sagen. Wir dokumentieren keine Entschuldigungen für Fehler, denn wir planen erfolgreich zu sein.
Wir haben keine Angst, denn niemand arbeitet je alleine. Wir werden uns an Änderungen anpassen, wann immer sie auftreten.

Erkläre den Core Value Respect.

Jeder spürt und gibt den Respekt, den er als wertvolles Teammitglied verdient. JEder trägt seinen Teil bei, selbst wenn es nur Ethusiasmus ist. Entwickler repsektieren die Expertise der Kunden und vice versa.
Das Management repektiert unser Recht Verantwortung zu akzeptieren und die Autorität über unsere eigene Arbeit zu haben.

Nenne die 5 fundamentalen Prinzipien von XP.

  • Rapid Feedback
  • Assume Simplicity
  • Incremental Change
  • Embracing Change
  • Quality Work

Nenne die 12 Praktiken des XP.

  • The Planning Game
  • Small Releases
  • Metaphor
  • Simple Design
  • Testing
  • Refactoring
  • Pair Programming
  • Collective Ownership
  • Continuous Integration
  • 40 hours week
  • On-site customer
  • Coding Standards

Erkläre die Praktik The Planning Game.

Balance finden, zwischen business und technischen Betrachtungen.

Business Leute entscheiden über:

  • Scope
  • Priorität
  • Zusammensetzung von Releasen
  • Zeitpunkt von Releasen

Techniker entscheiden über:

  • Einschätzung
  • Konsequenzen
  • Prozess
  • detaillierte Plannung

Erkläre die Praktitk Small Releases.

Jeder Release sollte so klein wie möglich sein und die wertvollsten Business Requirements beinhalten.
Der Release als Ganzes muss Sinn ergeben (keine halbwegs funktionierenden Features). Es ist besser 1/Monat zu releasen, als 2/Jahr.

Erkläre die Praktik Metaphor.

Jeder im Team muss ein "gemeinsames Verständnis" für das System haben. Ausserdem muss das Team ein "gemeinsames Vokabular" haben. Das betrifft sowohl technische, als auch nicht technische Leute.

Es muss klar sein, was die Basiselemente des Systems sind und wie sie in Beziehung zueinander stehen.

Erkläre die Praktik Simple Design.

Das richtige Desing für ein SW System ist eines,

  • bei dem alles getestet wird
  • das keine duplizierte Logik hat
  • das die kleinst mögliche Anzahl an Klassen und Methoden hat
  • das ein aufstrebendes, wachsendes Design hat.

Erkläre die Praktik Testing.

Ein Programmfeature ohne automatisierten Test gibt es nicht. Die Test werden Teil des Systems und erlauben es dem System, Änderungen zu akzeptieren.

Development Cycle:

  • Listen (Requirements)
  • Test (write first)
  • Code (simplest)
  • Design (refactor)

Erkläre die Praktik Refactoring.

Wenn ein Feature implementiert wird, sollte man sich fragen, ob es einen Weg gibt, den existierenden Source Code so zu verbessern, damit die Implementierung dieses Features einfacher wird.

Automatisierte Tests bieten ein Sicherheitsnetz für Refactoring.

Erkläre die Praktik Pair Programming.

Der Produktions-Code wird von 2 Leuten geschrieben, die auf einen Bildschirm schauen (mit nur 1 Maus und 1 Tastatur).

Es gibt 2 Rollen. Der Programmierer an der Tastatur konzentriert sich auf die momentane Methode. Der andere Programmierer denkt über den breiteren  Kontext nach (Refactoring, etc.).

Die Paare sollten regelmässig wechseln.

Erkläre die Praktik Collective Ownership.

Jeder, der eine Gelegenheit sieht, irgendeinem Teil des Codes Wert hinzuzufügen, muss das jederzeit tun. Jeder übernimmt Verantwortung für das ganze System. Nicht jeder kennt jeden Teil gleich gut, aber jeder weiss etwas über jeden Teil.

Erkläre die Praktik Coninuous Integration.

Code wird mind. 1 Mal am Tag integriert und getestet (Machmal öfter). Der Build Prozess muss automatisiert werden. Automatisierte Tests werden laufen gelassen und machen es möglich Probleme früh zu identifizieren.

Erkläre die Praktik 40 hours week.

Nachhaltige Entwicklung. Aufwand sollte gleichmässig verteilt werden. Ausgedehnte Perioden von Überstunden haben einen negativen Einfluss auf die Produktivität.

Ziel: Sei jeden Morgen frisch und jeden Abend müde und zufrieden.

Manchmal ist es auch gut, einen Schritt zurück zu machen, um weiter zu kommen.

Erkläre die Praktik On-site customer.

Ein echter Kunde muss physisch beim Team sein, damit er Fragen beantworten kann.

Echter Kunde = User, der das System verwenden wird.

Der echte Kunde arbeitet nicht die ganze Zeit am Projekt, aber muss anwesend sein, um Fragen schnell beantworten zu können. Er hilft auch bei der Priorisierung.

Erkläre die Praktik Coding Standards.

Collective Ownership und konstantes Refactoring heissen, dass die Coding Standards im Team einheitlich sein müssen.

Nenne die Eigenschaften von Scrum.

  • Selbstorganisierte Teams
  • Produktionsschritt als Serie von "Sprints" in Monats-Rythmus
  • Anforderungen werden als Artefakte im "Backlog" erfasst
  • Keine speziellen Engineering-Vorgehen definiert
  • Verwendete sich entwickelnde Regeln, um eine agile Umgebung für die Lieferung von Projektergebnissen zu kreieren
  • Einer der "agilen Prozesse"

Was ist ein Product Backlog?

Anforderungen und Liste aller auszuführenden Arbeiten im Projekt.

Idealerweise so dargestellt, dass jeweils der Wertbeitrag für den Nutzenden des Produktes nachgewiesen wird.

--> Priorisiert und wird repriorisiert am Anfang jedes Sprints

Was sind Sprints und wie lange dauern sie?

Scrum Projekte machen in Form von Sprints Fortschritte.

Typische Dauer: 2 - 4 Wochen. Die Dauer sollte konstant gehalten werden. Das gibt einen besseren Rythmus. Die Länge eines Sprints hängt davon ab, wie lange verhindert werden kann, dass Änderungen ins Projekt einfliessen.

Das Produkt wird während eines Sprints designed, codiert und getestet.

Was sind Rollen in Scrum?

Rollen sind ein Bestandteil von Scrum und setzen sich zusammen aus Product Owner, Scrum Master und Team

Was macht ein Product Owner?

  • Definiert Funktionen (Features) des Produktes
  • Entscheidet über das Datum und den Inhalt eines Releases
  • Ist verantwortlich für die Profitabilität (ROI) des Produktes
  • Priorisiert Funktionen aufgrund ihres Marktwertes
  • Passt die Funktionen und Prioritäten wenn nötig für jeden Sprint an
  • Akzeptiert Arbeitsresultate oder weist sie zurück

Was macht ein Scrum Master?

  • Ist Verantwortlich für die Durchsetzung der Scrum Werte und Praktiken
  • Entfernt Hindernisse
  • Sorgt dafür, dass das Team vollständig arbeitsfähig und produktiv ist
  • Ermöglicht enge Zusammenarbeit zwischen allen Beteiligten
  • Schirmt das Team gegen äussere Einflüsse ab

Was charakterisiert ein Team (Scrum Rolle)?

  • Besteht typischerweise aus 5 - 9 Personen
  • Ist Cross-Functional (Programmierer, Tester, Designer, etc.)
  • Teammitglieder sollten zu 100% im Team sein. Ausnahme: Spezialtätigkeiten
  • Selbst-Organisierend
  • Die Zusammensetzung sollte nur zwischen den Sprints ändern

Was sind Scrum Zeremonien?

Zeremonien sind Bestandteil von Scrum. Dazu zählen:

  • Sprint Planning
  • Sprint Review
  • Sprint Retrospective
  • Daily Scrum Meeting

Was ist das Sprint Planning Meeting? Was geschieht dabei und was ist der Output?

Da hinein fliessen

  • Teamkapazität
  • Product Backlog
  • Business Conditions
  • Current Product
  • Technology

Während des Meetings kommt es zur Sprint priorisation und zum Sprint planning.

Sprint Priorisation: Der Product Backlog wird analysiert und evaluiert und dann die Sprint Goals festgelegt.

Sprint Planning: Es wird entschieden, wie man das Sprint Goal erreichen will (Design). Man erstellt einen Sprint Backlog (Tasks) aus dem Inhalt des Product Backlogs (user stories/features) und schätzt den Sprint Backlog in Stunden.

Output: Sprint Goal, Sprint Backlog

Was ist ein Sprint Goal?

Ein kurzes Statement zur Zielformulierung.

Was geschieht während dem Sprint Planning?

Das Team wählt Itesm, die sie innerhalb eines Sprints umsetzen können, aus dem Backlog aus. Ein Sprint Backlog wird definiert und die Tasks werden identifiziert und geschätzt (Gemeinsam, nicht nur von Scrum Master).

Dann wird das High LEvel Design überlegt.

Was ist ein Sprint Review?

Dabei präsentiert das Team die Resultate des Sprints als Demo (neue Funktionen / Architektur). Informell und max. 2h Vorbereitungszeit.

Es werden keine Folien benötigt.

Alle nehmen daran teil, darum auch alle einladen.

Erkläre die Sprint Retrospective.

Periodische Prüfung was läuft und was nicht. Dauert typischerweise 15 - 30 Minuten und findet nach jedem Sprint statt.

Teilnehmer:

  • Scrum Master
  • Product Owner
  • Team
  • Kunden und Andere

Was ist ein Daily Scrum?

Ein kurzes, tägliches Stand-Up, das ca. 15 Minuten dauert. Dabei werden keine Probleme gelöst.

Eingeladen sind alle Beteiligten aber nur die Team-Mitglieder, der Scrum Master oder der Product Owner dürfen sprechen. Das soll helfen, unnötige Meetings zu vermeiden.

Während es Stand-Ups beantwortet jeder die Fragen:

  1. Was hast Du gestern gemacht?
  2. Was willst Du heute tun?
  3. Ist alles gut gelaufen?

Was sind Scrum Artefakte?

Artefakte sind ein Bestandteil von Scrum.

Dazu zählen:

  • Product Backlog
  • Sprint Backlog
  • Sprint Burndown Chart

Lernen