2009 - Basta!: Agiles requirements engineering

Post on 13-Aug-2015

60 views 0 download

Transcript of 2009 - Basta!: Agiles requirements engineering

Agiles Requirements-Engineering

Daniel Fisherdaniel.fisher@devcoach.com

Lennybacon.comDaniel Fisher | CTO & Software Architect

MCP, MCTS, MCPD…daniel.fisher@devcoach.com

Mit-Gründer und Geschäftsführer von devcoach.comwww.devcoach.com

Mitglied von www.solution-EXPERTS.de

Mit-Gründer und Vorstand dergemeinnü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 derINETA 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äftsprozessohne, 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 BudgetFür das Software Programmiert werden kann

Ein Projekt hat ein meist eine DeadlineBis zu der Software Programmiert werden kann

Agilität heisst Kurskorrekturen ein zu planenDas 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!