• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/18

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

18 Cards in this Set

  • Front
  • Back
Welche Probleme gibt es bei der professionellen Softwareentwicklung(4) undwie kann man es lösen?

-Entwicklung wird komplizierter


-Wartung wird schwieriger


-Schätzungen werden unübersichtlich


-Überblick geht verloren


/ Es muss nach einem passenden Vorgehensmodell entwickelt werden

Allgemeine Vorgehensmodelle SW-Modelle.Ein Modell aussuchen.Vorteile Nachteile (auf Nachteile konzentrieren)

Wasserfallmodell:


pros:


-klare Struktur


-einfach zu verstehen


-klarer Projektzustand


-klare Anforderungen


cons:


-Test am ende


-"keine" Kommunikation zwischen Teams -zwischenstände nicht möglich (Phase muss zuerst beendet werden.)


-unflexibel bei Änderungen


-keine Rückkopplung auf frühere Phase.




Wasserfallmodell reicht für die heutigen Anforderungen nicht aus.ist gut wenn sich Anforderungen nicht ändern, bei heutigen Projekten ändern sie sichrelativ schnell.

Warum scheitern Projekte?

-Anforderungen sind schwer abzuschätzen-Anforderungen ändern sich laufend-Anforderungen ändern sich spät im Projekt-Distanz zu Auftraggeber während der Entwicklung

Was ist "agil"?

•“agilis” (latein.) oder “agile” (engl.)


- steht für “flink, gewandt”


•Flexibler und schlanker Entwicklungsprozess


•Fokus:


- zu erreichende Ziele


- technische + soziale Probleme

Was bedeutet agil im Kontext Softwareentwicklung?

-Flexibel, dynamisch


-Anforderungen überpüft


-iterativ


-kürzere Zyklen


-kommunikativ


-Kunde wird eingebunden


-Wenig Bürokratie

Ziele agiler Softwareentwicklung?

- Höhere Flexibilität als bei klassischen Modellen- Fokusierung auf die zu erreichenden Ziele


- Angehen von technische und sozialen Problemen


- nicht schwergewichtig und bürokratisch vorgehen


- Fail fast - fail cheap - fail early

Vorteile agiler Softwareentwicklung?

-flexibel-geringer bürkokratischer Aufwand-wenige und flexible regeln


-nur soviel doku wie möglich


-verspricht besseres Kosten- /Nutzenverhältnis-man kann dem Kunden früh was zeigen.

Manifesto for Agile Software Development



Deutsch(Übersetzung):


Menschen und Interaktionen stehen über Prozessen und Werkzeugen


-Funktionierende SW steht über umfassende Dokumentation


-Zusammenarbeit mit den Kunden steht über der Vertragshandlung


-Reaktion auf Veränderung steht über dem befolgen eines Plans.


//~ Dh. obwohl wir die Werte auf der rechten Seite wichtig finden, schätzen wirdie Werte auf der Linken höher ein.




Englisch:


-Individuals and interactions processes and tools-Working software comprehensive documentation


-Customer collaboration contract negotiation


-Responding to change following a plan

Die zwölf Prinzipien hinter dem agilen Manifest:?

#1 Kunden zufriedenstellen / Kundenwertschätzung


#2 Anforderungsänderungen jederzweit willkommen -> Wettbewerbsvorteil


#3 Kontinuirliche iterative Lieferung von Software.


#4 tägliches Teamwork von Fachexperten und Entwickler


#5 Managmentaufgabe: angenehmes Arbeitsumgebung schaffen


#6 Kommunikation -> Gespräch von Angesicht zu Angesicht


#7 Funktionierende SW = wichtigstes Fortschrittsmaß


#8 gleichmäßiges Tempo auf unbegrenze Zeit


#9 Konzentration auf technisches Exzellenz & gutes Design -> Agilität


#10 KISS /Keep it simple Short / Keep it short and Simple


#11 selbstorganisierte Teams -> bestes Ergebnis


#12 Teamkommunikation ist alles

Ein Leitsatz für die agile Arbeit, z.B.:

-Frühe und häufige Softwareauslieferung


-Mehrfachnutzung vorhandener Ressourcen


-zweckmäßig


-kundenorientiert


-KISS-Prinzip (keep it simple stupid)


-Collective Code Ownership


-Lernen Lernen Lernen ...

Agile Methoden -Best Practices

-Fixe Entwicklungszeitrahmen (in Scrum sind es die Sprints)


-Timeboxing ( Meetings in einem Zeitrahmen, darf ums verrecken nicht überschritten werden)


-Pair Programming immer 2(abwechselndes programmieren /4-Augenprinzip)


-Story Cards ( Anforderungen nicht in Pflichten/Lastenheft sondern auf Story Cards)


-TDD TestDrivenDevelopment (erst Testen dann entgegen entwickeln)


-Reviews (Code) ( Code wird durch andere Person nochmal gesichtet)


-Refactoring ( vorhandener Code wird umstrukturiert, angepasst)


-Iterative Entwicklung ( Wiederholung einzelner Arbeitsschritte zur Lösung eines Problems)

Werte hinter agiler Softwareentwicklung?

-Kommunikation


-Einfachheit


-Rückkopplung


-Mut


-Respekt

Welche Vorteile hat der Kunde durch die Verwendung von agilen Methoden?

-Flexibilität


-Spart Zeit und Nerven


-Wettbewerbsvorteil

Welche Vorteile haben die Software-Entwickler durch die Verwendung von agilen Methoden?

-Qualitätsarbeit


-Direkte Kommunikation mitden Anwendern-Mehr Spaß bei der Arbeit

Was ist Scrum?

Scrum = agiles Projektmanagement Rahmenwerk


-Scrum = Methode zum Management komplexer Systeme (Inspect & Adapt)


-Scrum ist eine Methode zur Einführung agiler Projektmanagementmethoden in Unternehmen (Enterprise Scrum)


-Selbst-organisierende Teams


-Produkt schreitet in Serien von monatlichen “Sprints” fort


-Anforderungen sind als Listeneinträge im “Produkt-Backlog”festgehalten


-Keine spezifischen Entwicklungsvorgehen vorgeschrieben


-Benutzt generative Regeln um ein agiles Umfeld für dieAuslieferung von Produkten zu schaffen


-Einer der „agilen Prozesse“

Product Owner (PO)

-ist verantwortlich für den Erfolg der gesamtenEntwicklungsvorhaben eines Produktes oder einerProduktlinie.


-bringt die Produktvision ins Team.


-beschreibt die Anforderungen und verwaltet dasProduct Backlog.


-erstellt den Releaseplan und die Releaseberichte.


-managed die Stakeholder und arbeitet eng mit demTeam während der gesamten Projektlaufzeitzusammen.


-Definiert Produkt-Features


-Bestimmt Auslieferungsdatum und Inhalt


-Ist verantwortlich für den Gewinn des Projekts(ROI)


-Priorisiert Features abhängig vom Marktwert


-Passt Features und Prioritäten nach Bedarf fürjede Iteration an


-Akzeptiert oder weist Arbeitsergebnisse zurück

Scrum-Master(SM)

-Verantwortlich für die Einhaltung von Scrum-Werten und -Techniken


-Entfernt Hindernisse


-Stellt sicher, dass das Team vollständig funktional undproduktiv ist


-Unterstützt die enge Zusammenarbeit zwischen allenRollen und Funktionen


-Schützt das Team vor äußeren Störungen


-hilft, Scrum richtig anzuwenden.


-Repräsentiert das Management gegenüber dem Projekt


-unterstützt das Team und stellt die direkte Arbeitzwischen ProductOwner und Team sicher


-beseitigt Impediments und hilft dem Team, seineProduktivität kontinuierlich zu steigern.


-ist der Trainer und Moderator des Teams. Er hatimmer einen Trainingsplan für sein Team - dasImpediment Backlog.


-hält die "inspect and adapt" Zyklen von Scrum unterKontrolle.


-beschützt das Team und arbeitet zusammen mitdem Product Owner an der Maximierung derRendite.

Eigenschaften eines Scrum-Teams

-Typischerweise fünf bis zehn Leute


-funktionsübergreifend


-QA, Programmierer, UI-Designer, etc.


-Teams organisieren sich selbst


-Mitgliedschaft kann sich nur zwischen Sprintsverändern


-besteht aus unterschiedlichen Spezialisten,damit alle notwendigen Kenntnisse zurRealisierung des Produktes vorhanden sind.


-muss die Vision und die Sprint Ziele desProduct Owners verstehen, um funktionsfähigeProduktinkremente zu liefern


-ist bevollmächtigt und autonom


-organisiert seine Arbeit selbst


-interdisziplinär besetzt