infforum

Agile Softwareentwicklung

Schlank zum Erfolg   agil = effizient


Startseite Informatik Forum

Anforderungsanalyse

Prozess-Modellierung

Anwendungsentwicklung

Projektmanagement

Kennzeichen Risiken ASD Crystal DSDM FDD LD PP Scrum XP Prozess NUnit NAnt testen SW Requirements Engineering Agilität Softwareentwicklung

INffORUM Leistungen

Projekt-Beispiele

Kontakt zu INffORUM

Ziele

Themen

SIP - Strategische Informationssystemplanung

GPM - Geschäftsprozess-Modellierung

Anforderungsanalyse Anforderungsmanagement

Vorgehensmodell

Methoden

Systemabgrenzung

PZR-Analyse

Problemanalyse / Schwachstellenanalyse

Zielanalyse

Restriktionsanalyse

Affinitätsanalyse

Durchführbarkeitsanalyse / Wirtschaftlichkeitsanalyse

Werkzeuge Requirements Engineering

Anwendungsentwicklung

Vorgehensmodelle

Wasserfall-Modell

Spiral-Modell

V-Modell

Evolutionäre / inkrementelle Vorgehen

RUP - Rational Unified Process

Agile Softwareentwicklung

MDA - Model Driven Architecture

Methoden

Methode SA - Strukturierte Analyse

Methode ESA - Essentielle System-Analyse

Methode SD - Strukturiertes Design

Methode ERM - Entity-Relationship-Modellierung

Methode RM - Relationen-Modellierung

Methode UML - Unified Modeling Language

Werkzeuge Software Engineering

case/4/0

Innovator

objectiF

Projekt-Management

Vorgehensmodell

Projektstrukturplanung

Aktivitätenplanung

Arbeitsplanung

Kapazitätsplanung / Ressourcenplanung

Change-Management

Konfigurations-Management

Methoden/Techniken

Netzplan-Technik

Balkenplan-Technik

Methoden Aufwandsschätzung

Methode NuWA - Nutzwertanalyse

Werkzeuge Projekt-Management

in-Step

Primavera

Übersicht Leistungen

Organisationskonzepte

Studien, Gutachten

Auswahl Requirements Engineering (CARE) Tool

Auswahl Software Engineering (CASE) Tool

Auswahl Projekt-Management (PM) Tool

Projektleitung

Coaching Projektleiter

Know-how-Transfer Projekte

Beratung und Unterstützung

Software Einsatz case/4/0

Software Einsatz Innovator

Software Einsatz ObjectiF

Seminare

Projektbeispiele

Informationssystem-Planung

IV-Rahmenplanung Museum

Kommunikationsanalyse Versicherung

Organisation

ORG-BW-Gesamtmodell

Prozessmodellierung und Ablauf-Organisation Rating

Versionskontrolle Logistik

Know-how-Transfer Software-Entwicklung

Vorgehensmodell Analyse
mit Einsatz case/4/0

Vorgehensmodell mit Word-Dokumentation

Werkzeug-Einführung Innovator

Simulation Tour de France

Cockpit - Steuerung der Simulation

Anleitung und Hilfe für Sudoku-Rätsel

Mitarbeiter-Profil

Kontakt

Kontakt-Formular

Impressum

Unser Thema

Agile Software-Entwicklung

Als Antwort auf den Einsatz der schwergewichtigen Vorgehensmodelle der Anforderungsanalyse und der Anwendungsentwicklung wie zum Beispiel das V-Modell oder den Rational Unified Process (RUP) ist ein "agiles" Vorgehen in der Softwareentwicklung entstanden, das

  • Team-Mitglieder und deren Zusammenarbeit über  Prozesse und Werkzeuge,

  • funktionierende Software über  umfangreiche Dokumentation,

  • Zusammenarbeit mit dem Auftraggeber über  vertragliche Vereinbarungen und

  • Eingehen auf Veränderungen über  Festhalten am Plan

stellt.

weiterführende
externe Links

Die Definition von Vorgehen und Methoden-Einsatz ist eine Zusammenfassung verschiedener agiler Methoden und Prozesse der Software-Entwicklung (ASD, Crystal, DSDM, FDD, LD, PP, Scrum, XP). Die Autoren zu diesen agilen Methoden sind:

  • James A. Highsmith: ASD - Adaptive Software Development,

  • Alistair Cockburn: Crystal - Agile Software Development,

  • Jennifer Stapleton: DSDM - Dynamic Systems Development Method,

  • Peter Coad / Eric Lefebvre  / Jeff De Luca: FDD - Feature-Driven Development,

  • Mary und Tom Poppendieck: LD - Lean Development,

  • Andrew Hunt / David Thomas: PP - Pragmatic Programming,

  • Ken Schwaber / Mike Beedle: Scrum - Agile Software Development,

  • Kent Beck / Ward Cunningham / Ron Jeffries: XP - eXtreme Programming.

Die Zusammenfassung dieser Methoden wurde durch das Agile Manifesto mit seinen nachfolgend hervorgehobenen zwölf Prinzipien festgelegt.

Mit der Betonung der stetigen Auslieferung von bereits für den Auftraggeber nutzbaren Komponenten einer Anwendung entspricht die agile Methode dem inkrementellen Vorgehen in der Software-Entwicklung.

ASD - Adaptive Software Development

Crystal - Agile Software Development

DSDM - Dynamic Systems Development Method (engl.)

FDD - Feature-Driven Development

Interview zu Lean Development

Agile Software Entwicklung mit SCRUM


Agile Manifesto.org

 1

Unsere höchste Priorität ist es, den Auftraggeber durch frühzeitige und kontinuierliche Auslieferung werthaltiger Software zufrieden zu stellen.

Wichtigste Triebfeder für eine Softwareentwicklung, die sich agil nennen kann, sind laut Manifesto die Anforderungen (Requirements), die mit dem nächsten Release oder den nächsten Iterationen (als Zwischenschritte zu einem Release) umgesetzt werden sollen. Die Anforderungen werden für agile Projekte der Anwendungsentwicklung zeitnah zusammengestellt, um jede Änderung einer Anforderung oder auch zum geschnürten Paket passende neue Anforderungen berücksichtigen zu können (Agiles Requirements Engineering, Agile Anforderungsanalyse). Dabei spielt gemäß Manifest der Geschäftswert einer Anforderung die wichtigste Rolle bei der Priorisierung.

 2

Begrüße sich ändernde Anforderungen, selbst spät in der Entwicklung. Agile Prozesse machen Änderungen als Wettbewerbsvorteil für den Kunden nutzbar.

Die Definition von "agil" bedeutet hier auch, dass der Erfolg der IV-Projekte an den Anforderungen des Kunden zum Zeitpunkt des Projekt-Ende gemessen wird und nicht am Inhalt eines Auftrags zum Projekt-Start.

Es wird in der Prozess-Entwicklung keine Funktion als Bestandteil der Anwendung realisiert, die nicht explizit in einer Anforderung enthalten ist. Jede Funktion ist so einfach wie möglich zu realisieren - ohne Vorschau auf mögliche Erweiterungen. Das Agile Manifesto betont: Die einfache Lösung erfordert weniger Aufwand für die Erstellung und Darstellung, ist leichter zu verstehen und schneller an eine neue Anforderung anzupassen. Entsprechend schlank ist auch das zugehörige Prozessmodell gestaltet.

 10

Schlichtheit - die Kunst des Weglassens - ist wesentlich.

Die Notwendigkeit, Ziele zu definieren sowie eine grobe Systemarchitektur zu entwerfen und den Rhythmus der Bereitstellung von Releases zu planen, gehört auch hier zur Methode. Die Iterationszyklen der Software-Entwicklung sind dabei bis auf wenige Wochen verkürzt.

 3

Liefere lauffähige Software häufig aus, in Abständen von wenigen Wochen bis wenigen Monaten - je kürzer, desto besser.

Der auf der Basis der Systemarchitektur entstehende Software-Entwurf schließt neben der Entwicklung der neuen Pakete, Klassen und automatisch ausführbaren Test-Suiten auch das jeweilige Refactoring und Testen der bereits bestehenden Software-Einheiten mit ein. Die Implementierung soll gemäß Vorgehensmodell (möglichst täglich) neue ausführbare Komponenten entstehen lassen und in einen automatisierten Build- und Test-Prozess münden.

 7

Lauffähige Software ist das wichtigste Maß für den Projektfortschritt.

Aus dem evolutionären und dem inkrementellen Vorgehen der Software-Entwicklung ist auch die enge Einbindung des Auftraggebers erhalten geblieben.

Für das Prozessmodell "Agile Software-Entwicklung" legt die Agile Alliance im Manifesto jedoch noch größere Betonung auf die Zusammensetzung, Organisation und die Art der dauerhaften Zusammenarbeit in der Projektgruppe.

 4

Fachliche Spezialisten und Entwickler müssen während des gesamten Projektes täglich zusammenarbeiten.

 8

Agile Prozesse fördern eine andauernde Entwicklung.
Alle Beteiligten sollten eine konstante Entwicklungsgeschwindigkeit unbegrenzt beibehalten können.

 9

Beständiges Achten auf ausgezeichnete Fertigkeiten und gutes Entwerfen verstärken die Agilität.

Die Rolle des Projektleiters für ein agiles Projekt der Anwendungsentwicklung verliert im Vorgehensmodell an Bedeutung. Das Projektteam ist auf ein gemeinsames Ziel eingeschworen, die Organisation der Detailarbeit wird gemeinschaftlich geplant. Der Aufwand für das IT-Projektmanagement soll sich reduzieren.

 5

Baue Projekte um motivierte Individuen herum auf.
Stelle ihnen die benötigte Umgebung und Unterstützung bereit und vertraue darauf, dass sie ihre Arbeit bewältigen.

 11

Die besten Architekturen, Anforderungen und Entwürfe gehen von selbstorganisierenden Teams aus.

 12

In regelmäßigen Abständen denkt das Team darüber nach, wie es effektiver werden kann und verbessert dementsprechend das Verhalten.

Viele dieser Prinzipien dienen der Verminderung der Risiken in der Software-Entwicklung. Ein agiles Projekt der Software-Entwicklung ist aber nach dem Vorgehensmodell "Agile Manifesto" nur bei Einhaltung einiger Randbedingungen erfolgreich.

  • Das Projektteam muss überwiegend aus erfahrenen Software-Entwicklern mit einem hohen Maß an Kommunikationsfähigkeit bestehen.

  • Zum Team muss mindestens ein Fachexperte gehören.

  • Die Zahl der Software-Entwickler und der fachlichen Spezialisten sollte zusammen 10 nicht überschreiten.

  • Das Vorgehen bei der Software-Entwicklung muss durch Auftraggeber und Management unterstützt werden.

  • Agile IV-Projekte erfordern eine passende Entwicklungsumgebung mit einem Prozessmuster und mit einem leistungsfähigen Konfigurations-Management.

Eine Software-Entwicklungsumgebung (SEU) bzw. Workbench, die alle Belange des Requirements Engineering und der agilen Software-Entwicklung unterstützt, wird zum Beispiel von microTOOL angeboten. Hier sind in der microTOOL Suite .NET alle notwendigen und wünschenswerten Komponenten für die agile Entwicklung zusammengestellt:

  • ein Prozessmuster (actiF) mit Methoden für die Erstellung und Beschreibung aller in der Entwicklungs- und der Ziel-Plattform benötigten Aktivitäten- und Ergebnistypen;

  • ein Workflow-Management-System (in-Step), in dem das Prozessmuster (zum Beispiel aus actiF) abgebildet ist und das sowohl Anforderungen verwaltet als auch die Aufgaben zu Projekt-Management (Einbeziehung MS Project möglich), Risiko-Management  und Konfigurations-Management im Prozess übernimmt;

  • Workflow-Management-System, das auch die objektorientierte Entwicklung (mit Methode) in der Tool-Komponente objectiF steuert,

  • Microsoft Visual Studio .NET für C# und VB.NET, das beidseitig mit objectiF integriert ist und

  • NUnit sowie NAnt nutzen kann (NAnt für den Build-Prozess und NUnit für als Test-Tool).


microTOOL.de

microTOOL Suite .NET

microTOOL actiF












NAnt - .NET Build Tool

NUnit - .NET Test Framework

INffORUM bietet Ihnen Know-how-Transfer durch Beratung und Unterstützung bei der Einführung der agilen Softwareentwicklung (Vorgehensmodell und Methoden) und bei der Nutzung der microTOOL Suite .NET für Ihre IV-Projekte.

Profitieren Sie von den langjährigen Erfahrungen der INffORUM Berater.