IREB RE@Agile Primer
Lernziele gemäss Lehrplan und Studienleitfaden
Lernziele gemäss Lehrplan und Studienleitfaden
Fichier Détails
Cartes-fiches | 108 |
---|---|
Langue | Deutsch |
Catégorie | Informatique |
Niveau | Autres |
Crée / Actualisé | 15.05.2025 / 15.05.2025 |
Lien de web |
https://card2brain.ch/cards/20250515_ireb_reagile_primer?max=40&offset=80
|
Intégrer |
<iframe src="https://card2brain.ch/box/20250515_ireb_reagile_primer/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
LZ 3.1.2 Wert von Visionen und Zielen kennen
EU 3.1.2 Vision und Ziele
Die Darlegung der Vision und die Ziele der Stakeholder beschreiben sämtliche Bedürfnisse, die das System befriedigen soll, um seinen Zweck zu erfüllen.
Jeder Entwicklungsprozess sollte von Visionen oder Zielen geprägt sein, über die sich alle Stakeholder einig sind und welche die Produktfunktionen definieren. Wenn die Visionen und Ziele erfolgreich implementiert wurden, gilt die Lösung als erfolgreich.
Die Ziele verschiedener Stakeholder können im Widerspruch zueinander stehen. Somit müssen sich die Stakeholder abstimmen und eine gemeinsame Vision/Ziele vereinbaren.
Da in der agilen Welt die Ergebnisse des Entwicklungsprozesses einen klaren betriebswirtschaftlichen Wert haben, sollten sie sich immer auf die Produktvision bezieht. Es wird häufig mit Zielen von unterschiedlicher Granularität gearbeitet. Z.B. gibt es Ziele für unterschiedliche Zeithorizonte oder Planungsintervalle. Es kann beispielsweise ein Jahres-Ziele geben, um Abstimmungen über Auslieferungen (Zeitpunkt und Inhalt) zu ermöglichen, Drei-Monats-Ziele für die Release-Planung und Sprint-Ziele für die nächste Iteration/den nächsten Sprint.
Langfristige Produktvisionen und kurzfristige Sprint-Ziele sind hilfreich, um die wichtigsten Leistungen hervorzuheben, die innerhalb eines bestimmten Zeitrahmens erreicht werden sollen. Zudem helfen sie die Interessen aller Stakeholder auf eine „gemeinsame Mission" einzustimmen. Diese Ziele lassen sich auf einer Roadmap visualisieren.
Die Produktvision oder -ziele sind die abstrakteste Form von Anforderungen, die nicht ohne weitere Verfeinerung in die Entwicklung übernommen werden können. Sie dienen als leicht verständliche und umfassende Orientierungshilfe für den gesamten agilen Entwicklungsprozess. Jede Anforderung sollte auf die Ziele hin überprüft werden, um den Beitrag zu verifizieren, den sie für die unterschiedlichen Ziele leistet. Wenn eine Anforderung keine Beziehung zu den Zielen hat, kann das auf mangelnden betriebswirtschaftlichen Wert hindeuten. Folglich sind die Ausarbeitung der Produktvision und die abgestimmten Ziele der Stakeholder sehr wichtige Artefakte für den Erfolg agiler Entwicklungsprozesse, da sie den Rahmen für alle Entwicklungsaktivitäten vorgeben, ohne die Entwickler unnötig in ihrer Kreativität einzuschränken.
LZ 3.1.1 Unterschied zwischen herkömmlichen Spezifikationsdokumenten und Backlogs kennen
EU 3.1.1 Spezifikationsdokumente vs. Product Backlog
Im Requirements Engineering werden Anforderungen als Artefakte oder als Ergebnis des Ermittlungsprozesses (z.B. Benutzeranforderungsspezifikation oder Systemanforderungsspezifikation) bezeichnet, abhängig vom Autor und Detaillierungsgrad. Die Anforderungssammlung ist nicht notwendigerweise dokumentenbasiert, sondern einfach eine Sammlung von Anforderungen in jeglicher physischen Form (Papier, Repository-basiert, usw.).
Bei agilen Methoden wird der Begriff Product Backlog als zu implementierende Anforderungssammlung verwendet. Der Begriff Sprint Backlog wird für Anforderungen verwendet, die für die nächste Iteration/Sprint ausgewählt wurden. Auch hier ist die physische Erscheinungsform der Backlogs nicht relevant. Sie können aus Karteikarten oder Haftnotizen an einer Wand bestehen. Das Product Backlog muss angemessen detailliert, geschätzt, emergent und priorisiert wird. Für den Product Owner als Wertoptimierer ist die Priorisierung des Produkts das Wertvollste und Wichtigste.
Auch wenn die Bezeichnungen und die Behandlung unterschiedlich sind, beruhen alle Artefakte auf denselben Ideen und bieten eine Basis für die Ermittlung, die Dokumentation, die Abstimmung, die Validierung und das Management von Anforderungen. Die folgenden Elemente müssen unabhängig von der Dokumentationsform erfasst werden:
- Ziele und Visionen
- die Definition des Umfangs eines Systems
- funktionale Anforderungen
- Qualitätsanforderungen und Randbedingungen
- ein Glossar (d. h. Definitionen relevanter Begriffe und Abkürzungen).
Die Ansätze für Anforderungsspezifikationen können in Notationen, in der Syntax und im Detaillierungsgrad variieren. Gar keine Spezifikation zu erstellen (d. h. ohne schriftlich erfasste Anforderungen, ausschließlich auf verbale Kommunikation zwischen Stakeholdern zu setzen), bildet keine Alternative, da schriftliche Dokumente häufig als Basis für Abstimmungen und Akzeptanztests sowie zur rechtlichen Absicherung dienen.
Je mehr alle Stakeholder miteinander kommunizieren, umso weniger Schreibarbeit ist erforderlich, doch die Ergebnisse = Anforderungen, sollten schriftlich oder grafisch erfasst werden.
LZ 2.7.1 Wert kontinuierlicher Prozesse und deren Lernkurve kennen
EU 2.7 Inspect and Adapt (K1)
Agile Methoden setzten auf häufiges und schnelles Feedback. Nach jeder Iteration bespricht das Team, ob der Entwicklungsprozess funktioniert oder verbessert werden muss. Dabei werden die eingesetzten Methoden, die Werkzeuge, die Zusammenarbeit im Team, usw. hinterfragt. Der aktuellen Entwicklungsprozess wird inspizieren („inspect").
Zudem wird vom Team das Arbeitstempo besprochen und die geplante Implementierungsgeschwindigkeit für die nächste Iteration oder der Anforderungsprozess entsprechend geändert oder angepasst. Die Konsequenz aus diesen Erkenntnissen ergibt kurzfristige Anpassung von Prozessverbesserungsschritten. Die Erkenntnisse werden umgesetzt („adapt").
LZ 2.6.1 Wissen, wie der Produktdefinitionsprozess vereinfacht und ein Minimum Viable Product definiert werden kann
EU 2.6 Einfachheit als wesentliches Konzept (K1)
Der Produktdefinitionsprozess kann wie folgt vereinfacht werden:
- Erarbeiten einer einfachen, potenziell unvollständigen Lösung für ein Problem, wodurch ein kleines Wertinkrement geschaffen wird
- Entwickeln der Fähigkeit, basierend auf Praxiserfahrungen mehr über den Kontext zu erfahren
- Anpassen und Erstellen von Iterationen zur Schaffung und Auslieferung von Werten in einem kontinuierlichen Tempo
- Einsparen von Ressourcen von einer nicht gewinnorientierten Idee, um diese einer neuen Idee zuzuweisen - durch schnelles Scheitern und Lernen.
«Einfachheit» steht in gewisser Weise im Gegensatz zu „Perfektion". Einfachheit bedeutet nicht „schlechte Qualität" sondern „minimaler Umfang" oder „minimaler Service" - jedoch immer mit hoher Qualität. In Bezug auf Qualität gibt es keine Kompromisse.
Zwei Arten „einfacherer" Produkte:
Ein Minimum Viable Product (MVP) ist ein Konzept des Lean-Startups. Es wird als das kleinste Produkt definiert, das eine Endbenutzererfahrung und damit dem Team Feedback bieten kann. Dieses Feedback ist für die Weiterentwicklung des Produkts wichtig. Diese Arbeitsweise bietet eine rasche Investitionsrendite bei einem geringen Risikolevel.
Der Zweck eines Minimum Marketable Products (MMP) geht einen Schritt weiter. Es geht hierbei nicht nur darum, frühzeitig Feedback bereitzustellen und damit die nächsten Anforderungsschritte voranzubringen, sondern um die sofortige Schaffung von Wert. Viele Produkte können bereits in einer einfachen „Version 1" genutzt werden, ohne dass diese Version alle gewünschten Funktionalitäten und Qualitäten umfasst; so erzielt das Produkt bereits Umsatz, mit dem die kontinuierliche Verbesserung des Produkts finanziert werden kann.
LZ 2.5.3 Beispiele für Wert in gewinnorientierten und Non-Profit-Organisationen kennen
EU 2.5 Wertorientierte Entwicklung (K1)
Der Ansatz dem Endbenutzer kontinuierlich betriebswirtschaftlichen Wert zu liefern, wird häufig in gewinnorientierten Organisationen verfolgt. Aber für Non-Profit-Organisation lässt sich der Wert nicht ganz so klar definieren. Für diese können Kennzahlen wie Nutzungsquoten oder der Zufriedenheitsindex für ein Produkt (d. h. Klickraten auf Websites oder Spenden für eine Non-Profit-Organisation) relevanter sein.
LZ 2.5.2 Wissen, dass Wert gleichbedeutend ist mit Risiko- UND Chancenmanagement
EU 2.5 Wertorientierte Entwicklung (K1)
Eine andere Art von Wert ist die Risikoreduktion. Gute agile Ansätze versuchen, ein Gleichgewicht zwischen betriebswirtschaftlichem Wert und Risikominderung für die Iterationen herzustellen. Um die Anforderungen mit dem optimalen Wert zu ermitteln, streben agile Methoden häufig Minimum Viable Products (MVPs).
LZ 2.5.1 Wertorientierte Entwicklung kennen (z.B. Priorisierungen von Anforderungen)
EU 2.5 Wertorientierte Entwicklung (K1)
Mit agilen Methoden wird das Ziel verfolgt, dem Endbenutzer kontinuierlich betriebswirtschaftlichen Wert zu liefern. Betriebswirtschaftlicher Wert lässt sich in finanzieller Hinsicht, in einem höheren Marktanteil oder in Bezug auf die Kundenzufriedenheit direkt ausdrücken.
Die Anforderungen, welche den größten betriebswirtschaftlichen Wert versprechen, sollten „bereit für die Implementierung" sein (Definition of Ready). Andere, aus betriebswirtschaftlicher Perspektive weniger dringende Anforderungen werde erst dann verfeinert, wenn die dringenden Anforderungen abgeschlossen sind.
LZ 2.4.1 Gute Gründe dafür kennen, weshalb das Requirements Engineering Teil eines kontinuierlichen Prozesses sein sollte
EU 2.4 Requirements Engineering als kontinuierlicher Prozess (K1)
Gute Gründe dafür kennen, weshalb das Requirements Engineering Teil eines kontinuierlichen Prozesses sein sollte:
- Das Requirements Engineering in agilen Entwicklungsprozessen ist keine klar abgegrenzte Phase während der Entwicklung, sondern eine iterative und laufende Aktivität.
- Die Ermittlung und Analyse sämtlicher Anforderungen, bevor das Design und die Implementierung beginnen können, ist nicht das Ziel; Anforderungen und Produkte werden gleichermaßen iterativ und inkrementell erstellt.
Das Requirements Engineering ist daher eine fortlaufende Aktivität, die so lange dauert wie die gesamte Entwicklung des Produkts.
- Gleichwohl hat dieser Prozess gut definierte Zwischenergebnisse: die vorausgesagten Anforderungen, welche den grössten betriebswirtschaftlichen Wert versprechen, sollten „bereit für die Implementierung" sein (Definition of Ready).
- Andere, aus betriebswirtschaftlicher Perspektive weniger dringende Anforderungen werden erst dann verfeinert, wenn die dringenden Anforderungen abgeschlossen sind.
Der „kontinuierliche Prozess" schließt einige wichtige Vorabaktivitäten nicht aus. Selbst wenn für Anforderungen jeweils rechtzeitig auf Basis des Need-to-Know Prinzips geklärt werden, so gibt es einige Aspekte, die dennoch frühzeitig im Projektlebenszyklus behandelt werden müssen. Als Beispiele seien das Definieren von Visionen oder Zielen, das Kennen der Stakeholder und das Erarbeiten des Produktumfangs genannt. Beginnt man die Implementierung ohne diese Aktivitäten, so erhöht sich das Risikolevel erheblich.
LZ 2.3.1 Unterschied zwischen einem klassischen Requirements Engineer und einem Scrum Product Owner kennen
EU 2.3 Unterschiede und Gemeinsamkeiten von Requirements Engineers und Product Ownern (K1)
Vergleicht man diese beiden Rollen, so zeigt sich, dass sowohl der Requirements Engineer als auch der Product Owner (gemeinsam mit allen Stakeholdern) die zentralen Aufgaben Ermitteln, Dokumentieren, Validieren und Managen von Anforderungen durchführen muss.
Die Notationen und Werkzeuge, die dabei zum Einsatz kommen, sind in agilen Entwicklungsprozessen jedoch in der Regel weniger formell:
- Story-Cards anstelle von Anforderungsdokumenten
- mehr Gespräche und weniger Schreibarbeit
- stärkere Betonung von aktuellen Statusanforderungen, weniger Betonung auf Versionierung und Verlauf
Es ist zwar wichtig, eine Gesamtverantwortung für Anforderungen von hoher Qualität kontinuierlich aufrechtzuerhalten, dabei ist die Rolle des Product Owners breiter gefächert als die eines herkömmlichen Requirements Engineers: Ein Product Owner ist für den Erfolg des Produkts insgesamt, das fortwährende Einholen von Feedback von den Stakeholdern sowie für das entsprechende Aktualisieren und Priorisieren des Backlogs verantwortlich.
LZ 2.2.3 Konzept des Product Backlog mit Epics und User-Storys kennen
EU 2.2 Scrum (plus bewährte Verfahren) als Beispiel (K1)
Im «Product Backlog» werden die aufgeführten Items resp. Anforderungen gebündelt.
- Je nach Granularität werden die Anforderungen in «Epics», «Features» und «User-Storys» zerlegt.
- Es wird unterschieden zwischen funktionalen Anforderungen (Fähigkeit), Qualitätsanforderungen (Verhalten) und Randbedingungen (Umgebung)
- Und nach Anforderungsthemen gruppiert.
Innerhalb des Sprints gibt es das Backlog Refinement bei dem Anforderungen besprochen und verfeinert werden.
Mit der «Definition of Done» (DoD) entwickelt das Team ein gemeinsames Verständnis davon, wann ein Product Backlog Item vollständig und bereit für die Produktionsfreigabe ist.
LZ 2.2.2 Verantwortlichkeiten eines Scrum Product Owner kennen
EU 2.3 Unterschiede und Gemeinsamkeiten von Requirements Engineers und Product Ownern (K1)
Die wichtigsten Verantwortlichkeiten eines Product Owners sind:
- Sicherstellen, dass das Entwicklungsteam konstanten betriebswirtschaftlichen Wert liefert: Das bedeutet, dass der Product Owner die längerfristige Vision für das Produkt und kurzfristige Bedürfnisse ins Gleichgewicht bringen muss, und er das Product Backlog aus betriebswirtschaftlicher Sicht priorisieren und die Ergebnisse des Entwicklungsteams zusammen mit den Stakeholdern am Ende jedes Sprints prüfen muss.
- Managen aller Stakeholder: Der Product Owner ist dafür verantwortlich, konsistente Anforderungen an das Team weiterzuleiten. Er muss Anforderungen aller Stakeholder erfassen und sicherstellen, dass sich die Anforderungen nicht widersprechen. Es muss etwaige Meinungsverschiedenheiten zwischen Stakeholdern lösen, um das Entwicklungsteam davon zu entlasten.
- Kontinuierliche Versorgung des Entwicklungsteams mit den hochrangigen Einträgen aus dem Backlog: Die Granularität dieser Anforderungen muss klein genug sein, damit sie sich für einen Sprint eignet. Für alle Fragen, die nach dem Sprint-Planungsmeeting entstehen, muss der Product Owner zur zügigen Klärung zur Verfügung stehen.
LZ 2.2.1 Scrum als ein Beispiel kennen: (Rollen, Prozesse, Artefakte und deren) Relevanz für das Requirements Engineering
EU 2.2 Scrum (plus bewährte Verfahren) als Beispiel (K1)
Im Scrum werden keine Requirements-Engineering-Techniken eingesetzt. Trotzdem ist es für RE relevant. Denn im «Product Backlog» werden die aufgeführten Items resp. Anforderungen gebündelt.
Das Backlog sollte „DEEP" (Detailed appropriately, Estimated, Emergent, Prioritized, d. h. angemessen detailliert, geschätzt, dynamisch, priorisiert) sein.
Alternativ gilt die «INVEST»-Regel:
I: „Independent of each other" - unabhängig voneinander
N: „Negotiable" - verhandelbar
V: „Valuable" - wertvoll, nützlich
E: „Estimable" - schätzbar
S: „Small enough to fit into one sprint" - klein genug für einen Sprint
T: „Testable" - testbar
Im RE werden ähnliche Kriterien für gute Anforderungen genannt:
- abgestimmt
- Eindeutig
- Notwendig
- Konsistent
- Prüfbar
- Realisierbar
- Verfolgbar
- Vollständig
- Verständlich
LZ 2.2.1 Scrum als ein Beispiel kennen: Rollen, Prozesse, Artefakte (und deren Relevanz für das Requirements Engineering)
EU 2.2 Scrum (plus bewährte Verfahren) als Beispiel (K1)
Scrum ist ein schlankes Framework zur Entwicklung von Produkten in komplexen Umgebungen. Es gibt 3 Rollen (Scrum Master, Product Owner und Entwicklungsteam), 4 Ereignisse (Sprint-Planung, Daily-Scrum-Meeting, Sprint Review und Sprint-Retrospektive) und Artefakte (Product Backlog, Sprint Backlog, Sprint Goal/Sprint-Ziel und Definition of Done). Scrum empfiehlt keinerlei Engineering-Verfahren.
Scrum entwickelt Produkte iterativ und inkrementell in einer Folge von Sprints (max. 1 Monat). Jeder Sprint resultiert in einem Produktinkrement: Das ist ein Teilprodukt, das Endkunden in einer Produktionsumgebung potenziell verwenden können.
Der Sprint ist ein iterativer 'Plan-Do-Check-Act' Prozess. Jeder Sprint beginnt mit der Sprint-Planung, einem Ereignis, bei dem das Scrum-Team gemeinsam definiert, was im nächsten Produktinkrement ausgeliefert und wie das erreicht werden kann (Zerlegung).
Der Plan basiert auf dem Product Backlog (eine priorisierte und dynamische Liste aller Bedarfe für das Produkt). In der Sprint-Planung wird das Sprint-Ziel und Sprint Backlog (Auswahl der Items und deren Zerlegung für den Sprint) erstellt. Anschliessend beginnt das Scrum-Team mit der Implementierung des Produktinkrements.
Das Entwicklungsteam ist für die Umsetzung der ausgewählten Items in konkrete Ergebnisse verantwortlich, arbeitet mit dem Product Owner an der Verfeinerung der Product Backlog Items zusammen und gibt sein Feedback zur aktuellen Implementierung ab.
Die Mitglieder des Entwicklungsteams bringen sich jeden Tag in den Daily-Scrum-Meetings auf denselben Stand, um den Fortschritt zu beurteilen und das Sprint Backlog zu aktualisieren.
In der „Definition of Done" wird vereinbart, welche Teile einer Anforderung vom Entwicklungsteam erfüllt werden müssen. Wenn die Sprint Timebox vorüber ist, inspiziert das Scrum-Team in einem Sprint Review das Produktinkrement, und die wichtigsten Stakeholder bewerten die Ergebnisse des Sprints und besprechen die weiteren Schritte. Das Product Backlog wird entsprechend aktualisiert.
Der Sprint endet mit der Sprint-Retrospektive, in der das Scrum-Team bespricht, wie der letzte Sprint verlaufen ist, und wie es effizienter werden kann.
LZ 2.1.1 Beispiele für agile Methoden kennen
EU 2.1 Agile Methoden - ein Überblick (K1)
- Bei den Crystal Methoden wird für jedes Projekt ein eigens zugeschnittenes Prozessmodell benötigt. Abhängig von Größe, Komplexität und Kritikalität werden verschiedene Rollen, Aktivitäten und Artefakte angewendet. Crystal Clear, eine Methode für kleine und weniger kritische Projekte. Crystal Orange und Crystal Red wurden um einige Formalismen erweitert, um größere Projekte abwickeln zu können. Aus Anforderungsperspektive werden mit wenig formellen Anwendungsfallmodellen und Mock-ups gearbeitet.
- Lean Development und Kanban beruhen auf Prinzipien aus den 1940erJahren. Ziel dieser Ansätze ist es, sieben Arten von Verschwendung im Produktionsprozess aufzudecken (unfertige Vorprodukte, Überproduktion, Mängel,...) und diese bis zur endgültigen Lieferung schrittweise zu beseitigen.
- Scrum ist ein Framework zum Entwickeln und Erhalten komplexer Produkte. Das Framework ist auf eine iterative, inkrementelle Entwicklung ausgerichtet. Es gibt drei Schlüsselrollen: einen Product Owner (zum Managen des Product Backlog), ein Entwicklungsteam, das diese Anforderungen in kurzen Sprints implementiert und einen Scrum Master, der den Prozess überwacht und als Vermittler zwischen den anderen Rollen fungiert.
- TDD (Test Driven Development) beruht auf der Idee, dass vor dem Codieren eines Features zunächst der entsprechende Test verfasst wird. Die Testfälle sind sowohl eine exakte, als auch eine detaillierte Spezifikation der Anforderungen, die das Produkt erfüllen soll.
- XP (eXtreme Programming) Beim XP liegt der Schwerpunkt auf der direkten Kommunikation zwischen einem Kunden und einem Programmierer (der sog. On-Site Customer, der direkt neben dem Programmierer sitzt, ständig Anforderungen bespricht und unmittelbares Feedback in Form von implementierten Features erhält).
LZ 1.5.2 Exemplarische Ansätze kennen, die Agilität in konzeptueller Arbeit ermöglichen
EU 1.5 RE@Agile und konzeptuelle Arbeit (K1)
3 Ansätze für Agilität in konzeptueller Arbeit (Kombinationen aus RE Ermittlungs- und Validierungstechniken).
Design Thinking
- ein multidisziplinäres Team, das an dem Problem arbeitet; dieses Team bringt ein breit gefächertes Wissen mit, das für die Problemlösung benötigt wird;
- eine Arbeitsumgebung, in der das Team an Ideen arbeiten kann; und
- ein iterativer Prozess, der sich aus folgenden Phasen zusammensetzt: Hineinversetzen („Empathize") / Definieren („Define") / Ideen finden („Ideate as many as possible and choose one» / Prototypen entwickeln („Prototype") / Testen („Test")
Die Phasen des Design Thinking sind skalierbar und im Ablauf. Diese Methode entspricht dem agilen Wert „das Reagieren auf Veränderungen bewerten wir höher als das Befolgen eines Plans", «multidisziplinäre Team und die Arbeitsumgebung sind zentrale Elemente des Prozesses» sind und durch die Entwicklung von kostengünstigen und schlanken Prototyps, dem agilen Prinzip der «Einfachheit».
Der Design-Sprint ist ein 5-tägiger Entwicklungsworkshop mit Endkunden. Gearbeitet wird mit klar definierten «Timeboxes»;
- Wissen des Teams freisetzen / Ideen skizzieren / entscheiden, für welche Ideen Prototypen erstellt werden sollen / die ausgewählten Prototypen erstellen / die Ideen mit realen Kunden testen.
- Der entscheidende Unterschied im Vergleich zu agiler Entwicklung ist, dass der Prototyp keine Software sein muss
Lean Startup ist ein Ansatz zur Entwicklung von Geschäftsideen und zum Managen von Startups.
- Produktentwicklungsansatz „Build - Measure - Learn" führt zu kontinuierlichem Lernen über die Kundenbedürfnisse
- Mit dem Minimum Viable Product ist eine Version eines neuen Produkts gemeint, mit mimalem Aufwand das maximale Kundenfeedback ermöglicht.
Bei Lean Startup wird ein Kurswechsel, d. h. „eine strukturierte Kurskorrektur, um eine neue grundlegende Hypothese über das Produkt, die Strategie und den Wachstumsmotor» aufzustellen. Anstelle einer Ermittlung und Validierung der Anforderungen basierend auf Konzepten oder Dokumenten, werden diese Methoden anhand des realen Produkts durchgeführt. Das MVP muss nicht zwingend eine voll funktionsfähige, vollständige Software sein muss.
LZ 1.5.1 Wissen, dass agile Werte auf konzeptuelle Arbeit übertragen werden können
EU 1.5 RE@Agile und konzeptuelle Arbeit (K1)
Agilität beinhaltet mehr als Scrum. Besonders geeignete Ansätze für Innovationen sind: Design Thinking, Design-Sprint und Lean Startup
Diese Techniken zeigen, dass es Ansätze für konzeptuelle Arbeit in RE@Agile gibt, welche die Denkweise agiler Methoden teilen und daher gänzlich mit agilen, Softwareentwickelnden Unternehmen kompatibel sind. Diese Herangehensweisen sollten als eine neue Form des Wasserfall-Ansatzes berücksichtigt werden.
Sie können als Frameworks von agiler Entwicklung für das Design dedizierter Aspekte eines Systems verwendet werden. Alternativ können sie als Aktivitäten genutzt werden, die der agilen Entwicklung vorangehen. So helfen diese Ansätze, das begrenzte Potenzial für Innovationen in agilen Entwicklungsprozessen zu überwinden.
LZ 1.4.1 Vorteile, Stolpersteine und Missverständnisse bei der Verwendung von RE@Agile kennen
EU 1.4.3 Stolpersteine von RE@Agile
Agile und kulturelle Veränderungen sind unvereinbar. Agile Werte verändern die Unternehmenskultur (erfordert Zeit und qualifizierte Mitarbeiter)
Anforderungen als einheitliche Art von Informationen behandeln. Der benötigte Detailierungsgrad und unterschiedlichen Abstraktionsebene pro Anforderungen muss berücksichtigt werden. Z.B. Vision = hohe Abstraktionsebene und lange Gültigkeitsdauer. Andere Anforderungen sind schnelllebiger – es müssen nicht alle Anforderungen einheitlich spezifiziert werden.
Den Zusammenhang aus den Augen verlieren. Bei agilen Methoden wird der Fokus nur auf Themen gelegt, die unmittelbar umgesetzt werden. Dadurch gerät der Gesamtzusammenhang aus dem Blickfeld. Lang- und mittelfristige Perspektiven schaffen (z. B. Verfeinerungs-Meetings).
Es wird sofort in Lösungen gedacht und spezifiziert. Noch bevor das Problem analysiert und der Nutzen/Bedarf des Stakeholders festgestellt wurde.
Stakeholder mit Informationen überladen. RE-Artefakte weisen eine hohe Informationsdichte auf, die einen grossen Review-Aufwand für Stakeholder darstellt.
Inkrementelle und iterative Ausarbeitung aller Themen. Nicht jedes Anforderungsthema muss detailliert und inkrementell entwickelt werden. Inkrementelle Entwicklungen eignen sich für komplexe Themen (z.B. Einkaufsprozess Onlineshop). Hochkomplexe Themen sind für inkrementelle Entwicklung nicht geeignet, da jede neue Erkenntnis zu einem völlig neuen Verständnis der bereits bekannten Informationen führt (z.B. Berechnungen von Versicherungspolicen).
Inkrementelle Entwicklung unterstützt möglicherweise keine radikalen oder bahnbrechenden Innovationen. Agile Entwicklungen mit inkrementellen Prozessen führen zu kontinuierlichen Innovationen. Radikale Innovationen entstehen, wenn unterschiedliche Ideen berücksichtigt und vorhandene Ideen neu kombiniert werden. Gemäss dem Prinzip «10. Prinzip - Maximieren nicht getaner Arbeit» werden keine alternativen Ideen in agilen Umgebungen entwickelt. Radikale Innovationen benötigt z.B. Lean-Startup-Ideen oder Design-Thinking-Ansätze.
LZ 1.4.1 Vorteile, Stolpersteine und Missverständnisse bei der Verwendung von RE@Agile kennen
EU 1.4.2 Missverständnisse in Bezug auf RE@Agile
LZ 1.4.2 Beispiele für Missverständnisse kennen
Das RE ist lediglich eine vorab erstellte Analyse. Missverständnis, da RE als Disziplin prozessunabhängig ist und nicht zwingend eine umfassende Vorarbeit erfordert. RE kann in jede Iteration integrierte Aktivität darstellen.
Vorab ist schlecht. Missverständnis, da die Vorbereitung auf eine iterative Entwicklung ein wesentlicher Bestandteil jedes nicht alltäglichen Entwicklungsprojekts ist. Agile Verfahren, die den Wert von Überlegungen im Vorfeld berücksichtigen, sind Story Mapping, Prototyping und das sog. Test Driven Development (TDD).
RE ist gleich Dokumentation. Missverständnis, da Dokumente bei z.B. der Einhaltung rechtlicher Vorgaben (Compliance), Bewahrung nützlicher Informationen, Vereinfachung der Kommunikation und bei gedanklichen Vorgängen unterstützen.
User-Storys sind ausreichend. Missverständnis, da User-Storys eine Methode für die Erfassung der Stakeholder Bedürfnisse sind. Sie zielen jedoch darauf ab, die Kommunikation in Gang zu setzen und stellen nicht die vollständige Spezifikation dar. Ein weit umfassenderes Bild von Anforderungen lässt sich durch eine Kombination von User-Storys mit anderen anerkannten RE Techniken wie Kontextdiagrammen, Prototyping, Anwendungsfällen und User Journeys erreichen.
Dokumentation ist wertlos, nur Code ist von bleibendem Wert. Missverständnis, da die Anforderungsdokumentation ebenso wie die Design-, Test- oder Betriebsdokumentation in bestimmten Kontexten ihre Daseinsberechtigung hat. Die Dokumente sind alle gleichermassen gültige und notwendige Artefakte, die aus dem Entwicklungsprozess für jedes nachhaltige Softwareprodukt entstehen.
Funktionierende Software ist der einzige Weg zur Validierung von Anforderungen: Missverständnis, Software ist als Mittel zur Validierung von Anforderungen zu bevorzugen, wenn die mit einem solchen Validierungsansatz verbundenen Kosten und Risiken verglichen mit dem Ergebnis akzeptabel sind. Sind die Kosten und/oder Risiken hoch, stellt RE verschiedene Tools zur Verfügung, die ein schnelles Feedback und eine rasche Anforderungsvalidierung ermöglichen, bevor auch nur eine einzige Zeile Code geschrieben wurde, beispielsweise Modelle für Benutzeroberflächen oder Story Boards
LZ 1.4.1 Vorteile, Stolpersteine und Missverständnisse bei der Verwendung von RE@Agile kennen
EU 1.4.1 Vorteile von RE@AGILE
- RE und Entwicklungskompetenzen im selben Team können den Aufwand für Übergaben verringern
- Wenn RE_ Aufgaben im Team ausgeführt werden, kann das den Bedarf an vorab erstellter, umfassender Anforderungsdokumentation verringern (direkte Klärung innerhalb des Teams)
- Dokumentation von Ergebnissen aus den geführten Gesprächen und die Bewahrung von Wissen
- Inkrementelle Entwicklung ermöglicht die Optimierung vorhandener Ideen (die Qualität der Artefakte und/oder Software wird kontinuierlich verbessert)
- Das Risiko das zwischen den Kundenerwartungen und der Entwicklung grosse Lücken entstehen wird minimiert
- Kontinuierliche Verfeinerung ist ein Prinzip zur Ausreifung und Validierung. In regelmässigen Verfeinerungsmeetings wird mit dem Entwicklungsteam und den Stakeholdern die Anforderungen wiederkehrend durchgesehen und detailliert
- Durch das Verfahren der "Definition of Ready" Als "Quality Gate" wird validiert, dass eine Anforderung einer nachfolgenden Iteration zur Implementierung bereit ist
- Das RE vereinfacht das definieren eines ersten «Product Backlogs». Das RE bietet verschiedene Techniken, um die Stakeholder Anforderungen für das gewünschte Produkt richtig zu verstehen.
LZ 1.3.4 Wissen, was „Dokumentation" in einem agilen Kontext bedeutet (in Übereinstimmung mit dem Manifest für agile Softwareentwicklung)
EU 1.3 RE@Agile - die Brücke zwischen RE- und agilen Prinzipien (K1)
Das Manifest für agile Softwareentwicklung hebt den Wert eines Inkrements funktionierender Software (oder eines funktionierenden Produkts) gegenüber einer umfassenden Dokumentation hervor. Eine übertriebene Interpretation hatte den falschen Eindruck zur Folge, dass agile Methoden gänzlich auf Dokumentation verzichten. Diese Interpretation ist falsch: Zweckmäßige Dokumentation ist in agilen Entwicklungsprozessen nach wie vor erwünscht und zu empfehlen, allerdings nur dann, wenn sie die Entwicklung unterstützt oder Bestandteil des Produkts ist. In der Vergangenheit wurde es als Problem empfunden, dass in vielen Projekten Dokumentation ohne klar definierten Zweck oder Mehrwert erstellt wurde - diese Art von Dokumentation ist nach den agilen Prinzipien zu vermeiden.
LZ 1.3.3 Synergien von Denkweisen und Werten mit Blick auf RE@Agile kennen
EU 1.3 RE@Agile - die Brücke zwischen RE- und agilen Prinzipien (K1)
- Das Ziel der Auslieferung von Software auf ein klar definiertem Qualitätsniveau
- Dank agiler Methode kann funktionierende Software effizient und schneller ausgeliefert werden (geringere Zykluslaufzeit)
- Da RE stellt geeignete Technikgen bereit, mit deren Hilfe ein Verständnis der Wünsche und Anforderungen von Stakeholdern erlangt und die Software mit dem grössten Gewinn (Zuwachs an Business-Wert oder Liderung akuter Probleme) entwickelt werden kann.
- RE vereinfacht:
- Bedürfnisserkennung und Verständnis der Stakeholder für die Softwareentwicklung
- Marktveränderungen erkennen und für Stakeholder Wettbewerbsvorteile generieren
- Förderung effizienter Stakeholder Zusammenarbeit durch passende Techniken und Werkzeuge
- Unterstützung verbaler Kommunikation durch passsende Techniken und Werkezuge
- Das Verständnis um Stakeholder Anforderungen auf das Minimum reduzieren zu können.
LZ 1.3.1 Unterschiede zwischen agilen und RE-Denkweisen kennen
EU 1.3 RE@Agile - die Brücke zwischen RE- und agilen Prinzipien (K1)
- Das RE beschäftigt sich mit der systematischen Ermittlung und Dokumentation von Anforderungen als eigenständigen Artefakten, während bei agilen Entwicklungsprozessen die funktionierende Software im Vordergrund steht und nicht eine umfassende Dokumentation; auch werden Personen und Kommunikation höher bewertet als Prozesse und Werkzeuge.
- Ein wichtiger Unterschied zwischen der Anwendung von RE in agilen Entwicklungsprozessen und anderen Entwicklungsmethoden ist die zeitliche Abstimmung und der angewandte Prozess.
- Das Manifest für agile Softwareentwicklung hebt den Wert eines Inkrements funktionierender Software (oder eines funktionierenden Produkts) gegenüber einer umfassenden Dokumentation hervor.
LZ 1.3.1 Unterschied zwischen Prinzip, Verfahren und Aktivität kennen
EU 1.3 RE@Agile - die Brücke zwischen RE- und agilen Prinzipien (K1)
Differenzierung nach "Prinzipien", "Verfahren" und "Aktivitäten" auf den drei Abstraktionsebenen:
- Ein Prinzip ist eine präskriptive Aussage, die abstrakt und falsifizierbar ist.
- Ein Verfahren/eine Technik ist eine Instanziierung eines Prinzips in einem bestimmten Kontext.
- Eine Aktivität ist eine reale oder geplante Ausführung eines Verfahren
Die wichtigen Begriffe zur Differenzierung der drei Definitionen sind präskriptiv, abstrakt und falsifizierbar. Präskriptiv bedeutet, dass die Aussage eine Aktion steuert, anstatt eine Tatsache oder eine Eigenschaft darzulegen. Ein Prinzip unterscheidet sich von einem Verfahren durch Abstraktheit. Ein Beispiel: „Eine Softwarefunktion vor der Auslieferung testen" ist präskriptiv, wohingegen „einen Unit-Test für jedes Softwarefeature erstellen" ein Verfahren basierend auf dem vorgegebenen Prinzip ist. Eine Aktivität zu diesem Beispiel wäre die Erstellung eines UnitTests für die Suchfunktion eines Bibliotheksystems. Falsifizierbarkeit bedeutet, dass eine Person mit hinreichendem Hintergrundwissen eine andere Meinung zu einem Prinzip haben kann. Das oben angeführte Prinzip („Eine Softwarefunktion...testen") erfüllt dieses Kriterium.
LZ 1.2.2 Zentrale Werte des Manifests für agile Softwareentwicklung und die daraus abgeleiteten Prinzipien kennen
EU 1.2 Prinzipien im agilen Entwicklungsprozessen (K1)
Agile Prinzipien:
- Zufriedenstellung des Kunden durch frühzeitige und kontinuierliche Auslieferung
- Veränderte Anforderungen auch noch in späten Entwicklungsphasen
- Funktionierende Software regelmässig innert weniger Wochen ausliefern
- Stakeholder/Entwickler arbeiten täglich zusammen
- Projekte mit motivierten Einzelpersonen
- Persönliches Gespräch als effizienteste/effektivste Methode für Informationsvermittlung im Team
- Funktionierende Software als primäres Mass für Fortschritt
- Agile Prozesse fördern kontinuierliche Entwicklungen
- Stetiges Augenmerk auf technischer Excellenz und gutes Design
- Einfachheit ist wesentlich
- Beste Architekturen, Anforderungen, Designs aus sich selbst organisierenden Teams
- In regemässigen Abständen Nachdenken um effizienter zu werden.
LZ 1.2.2 Zentrale Werte des Manifests für agile Softwareentwicklung und die daraus abgeleiteten Prinzipien kennen
EU 1.2 Denkweisen/Werte im agilen Entwicklungsprozessen (K1)
In der agilen Entwicklung // Manifest
- Einzelpersonen und Interaktion vor Prozesse/Werkzeuge
- Funktionierende Software vor umfassender Dokumentation
- Zusammenarbeit mit Kunden vor Vertragsverhandlung
- Reagieren auf Veränderungen vor Plan befolgen
LZ 1.2.1 Denkweise im RE
EU 1.2 Denkweisen und Werte im RE und in agilen Entwicklungsprozessen (K1)
- Im RE wird der Begriff "System" bevorzugt, da er die Tatsache betont, dass ein System eine Gruppe von Bestandteilen oder Elementen ist, die zusammen in einer Umgebung funktionieren. Die Umgebung bezeichnet man im RE als Systemkontext
- Die 4 Hauptaktivitäten des RE sind: Ermitteln, Dokumentation, Prüfen, Validierung/Abstimmung und Verwaltung von Anforderungen
- Ein zentraler Wert des IREB ist, dass das RE ein prozessunabhängiger Ansatz ist (= ein grosser Wissensfundus an Methoden und Techniken)
- IREB ist der Überzeugung, dass beide Ansätze (agil und nicht-agil) ihren Wert haben.
LZ 1.2.1 RE-Werte von IREB kennen
EU 1.2 Denkweisen und Werte im RE und in agilen Entwicklungsprozessen (K1)
Requirement Engineering (RE) ist gemäss IREB Definition:
Ein systematischer und disziplinierter Ansatz für die Spezifikation und das Management von Anforderungen mit den folgenden Zielen:
- Verstehen und Dokumentieren der Wünsche und Bedürfnisse der Stakeholder
- Kennen der relevanten Anforderungen, Erreichen eines Konsenses der Stakeholder über diese Anforderungen, das Dokumentieren der Anforderungen nach vorgegebenen Standards und das systematische Managen der Anforderungen
- Spezifizieren und Managen von Anforderungen, um das Risiko der Auslieferung eines Systems zu minimieren, das nicht den Wünschen und Bedürfnissen der Stakeholder entspricht.
LZ 1.1.1 Motivation für die Verwendung agiler Methoden kennen
- Agile Methoden resp. Agilität sind kein Selbstweck
- Agile Methoden eignen sich, wenn der Markt oder eine Projektsituation schnelle und kontrollierte Änderungen erfordert
- Bei der agilen Methode konzentrieren sich alle Prinzipien letztlich auf häufige Auslieferungen in einer vorgegebenen Qualität
- Passender Entwicklungsansatz ist entschiedener Erfolgsfaktor im digitalen Geschäft
- Systeme und Produkte in IT-orientierten Branchen müssen einer konstanten Anpassung unterzogen werden, damit sie mit den veränderten Bedürfnissen von Kunden oder dem Markt schritthalten können.