Agiles Requirements-Engineering
Daniel Fisher
daniel.fisher@devcoach.com
Lennybacon.com
Daniel Fisher | CTO & Software Architect
MCP, MCTS, MCPD…
daniel.fisher@devcoach.com
Mit-Gründer und Geschäftsführer von devcoach.com
www.devcoach.com
Mitglied von
www.solution-EXPERTS.de
Mit-Gründer und Vorstand der
gemeinnützigen www.just community.de e.V.
Veranstalter des größten Entwickler & IT-Pro
Community Events in Deutschland: www.nrwconf.de
Mit-Gründer und Leiter der
INETA Usergroup Düsseldorf
www.NetUG-NiederRhein.de
Mitglied im Microsoft
Community Leader & Insider Program (CLIP)
Connected Systems Advisory Board
Expertengruppe für WCF, WF & BizTalk
devcoach.com
• Leistungen
– Architektur-Beratung
• Strukturierter und effizienter zu einer wartbaren Anwendung.
– Prozessoptimierung
• BPM
• FDD, TDD, MSF Agile & SCRUM
– Software-Entwicklung
• Team-out-of-the-box (Near-shoring)
• Objektmodelle und Datenzugriff
• Kommunikations-Infrastrukturen
• Identitäts- und Berechtigungsmodelle
• Web 2.0 und Rich Internet Applikation
– Coaching & Training
• Technologien schneller verstehen und richtig einsetzen.
• Technologien
– Microsoft Windows & .NET Framework
• ASP.NET, WCF, WF, WPF, Silverlight & Geneva
• Kunden
– Versicherung, Finanzindustrie, Mittelstand, Handel, Kommunikation,
Softwarehersteller u.v.a.
• Bundesamt für Sicherheit in der Informationstechnologie, Microsoft,
Dresdner Bank…
Project
Experience
Technology
Know-how
devcoach®
Agile Anforderungsanalyse...
Warum sind die Anforderungen so wichtig?
Der Erfolg eines Software-Projektes hängt von
verschiedenen Faktoren ab!
Heisst das wenn man eine Anforderungsanalyse
betreibt erhält man gute Software?
Die bloße existenz ist keine Garantie
Wie bei allen anderen Faktoren!
Das ist nicht nur in der Software-Industrie so...
Ein Brot ist immer so gut wie seine Zutaten und
sein Bäcker
Oder?
Wenn aus Eisen kein Gold werden kann...
kann ein Prozess allein keine Gute Software
machen!
Sehen wir uns die "Zutaten" mal an...
Customer Requirements
Functional Requirements
Non-functional Requirements
Derived Requirements
Allocated Requirements
Stakeholder identification
Stakeholder interviews
Requirements lists
Measurable goals
Prototypes
Use cases
Und trotzdem...
Sehen wir uns das Problem mal genauer an...
Der Kunde weiss gar nicht was er will?
Der Kunde will eine Software!
Wenn er ein Auto kauft muss er das ABS dazu
auch nicht selbst erfinden...
Der Kunde weiss gar nicht wie er die
Anforderungen formulieren soll?
Der Kunde hat ein Geschäft, dass er kennt!
Zu 99,9% ist das nicht das schreiben von
Anforderungen...
Die Anforderungen des Kunden ändern sich mit
der Zeit!
Die Welt dreht sich. Märkte ändern sich!
Warum sollten Anforderungen in Stein
gemeisselt sein...
Die Kommunikation mit dem Kunden ist schwer!
Jeder spricht die Sprache seiner Fachdomäne!
Techniker auch...
Der Kunde hat keine Ahnung von Technologie
Woher soll der Kunde die Technologie kennen
wie wir? Kennen wir seine Fachdomäne wie er?
Der Kunde versteht den Entwicklungs-Prozess
nicht!
Verstehen wir seinen Geschäftsprozess
ohne, dass er diesen erklärt?
Der Entwickler verfasst oder interpretiert
Anforderungen!
Der Entwickler kennt die Technologie!
Nicht die Fachdomäne...
OK, Probleme identifiziert!
Aber wie kann uns "Agil" helfen?
Agil != Funky
agil <Adj.> [frz. agile < lat. agilis]
(bildungsspr.): von großer Beweglichkeit
zeugend; regsam, flink, gewandt und wendig
(bes. Körperlich und geistig).
Messen, messen, messen!
Nicht nur einmal raten!
Ein Projekt hat ein meist fixes Budget
Für das Software Programmiert werden kann
Ein Projekt hat ein meist eine Deadline
Bis zu der Software Programmiert werden kann
Agilität heisst Kurskorrekturen ein zu planen
Das Ziel genauer zu treffen!
Wie kann man denn Aufwände schätzen wenn
der Umfang nicht von vorne herein klar ist?
Heisst das nicht, dass vieles doppelt entwickelt
wird?
Ist so ein Ansatz denn schon Reif?
Ein Beispiel aus einem Projekt...
The Manual
Small iterations Gather
Requirements
Design
DevelopTest
Review
Und die Tools?
A fool with a tool is still a fool!
Besonders bei agilen Methoden!
2009 - Basta!: Agiles requirements engineering
2009 - Basta!: Agiles requirements engineering
2009 - Basta!: Agiles requirements engineering
2009 - Basta!: Agiles requirements engineering

2009 - Basta!: Agiles requirements engineering

Hinweis der Redaktion

  • #15 Where will the system be used? How will the system accomplish its mission objective? What are the critical system parameters to accomplish the mission? How are the various system components to be used? How effective or efficient must the system be in performing its mission? How long will the system be in use by the user? What environments will the system be expected to operate in an effective manner?
  • #17 usability efficiency reliability robustness portability interoperability ethical requirements legislative delivery implementation standards compliance
  • #18 Requirements that are implied or transformed from higher-level requirement. For example, a requirement for long range or high speed may result in a design requirement for low weight.
  • #55 Manual Feature User Case Sketches Developer Task