infforum

Agile Softwareentwicklung

Schlank zum Erfolg   agil = effizient

Unternehmensberatung Know-how-Transfer zu Vorgehensmodellen - Methoden - Werkzeugen


Startseite Informatik Forum

Anforderungsanalyse

Prozess-Modellierung

Anwendungsentwicklung

Projektmanagement

Kennzeichen agiles Vorgehensmodell Risiken ASD Crystal DSDM FDD LD PP Scrum XP Prozess problem NUnit NAnt testen SW Programmierung Agile Requirements Engineering Vorlage Vorgang Änderungsanforderung Agilität Anwendungsentwickler Anleitung Schritte agile Softwareentwicklung CARE Definition agile Prozesse Erfahrung Anforderungsmanagement Aufbau Systemplanung Ergebnis Verfahren Aktivität Optimierung Abnahme Arbeitsablauf Kommunikation Mitarbeiter review personal Wissen Systementwicklung QS Programm agile manifesto plan activity Anforderungsdefinition Checkliste Qualität Unterschied Projektarbeit Produkt transformation Informatik Life-Cycle Projektstrukturierung Vorgehensweise standard Prinzipien Abfolge Prozessoptimierung Ablauf tutorial Konzept Informationssystem training consulting information workshop phase Nutzen Risiko Werkzeug Software-System Ist-Analyse Ablaufplan Zielsetzung CASE Computer Aided Software Engineering Objekt Funktionsanalyse professional Schulung Systemanforderung Arbeitspaket Reengineering Geschäftsprozess Arbeitsschritte Neuentwicklung Projektablaufplan Situationsanalyse guide Zielkonflikt Änderungsantrag Entwicklungsprozess BPM IDE Tester Rollenkonzept Ablaufplanung Funktionsmodell Zeitplanung Erläuterung Systemintegration Leitfaden Planung Pflichtenheft lernen MS Office Testkonzept parallel DV Zusammenfassung Grafik

INffORUM Leistungen

Projekt-Beispiele

Kontakt zu INffORUM

Requirements Engineering Risiken DSDM CASE-Tool Verteilung Softwareentwicklung OO Doku Agile Manifesto Risiko Wartung Agile Requirements Dialog Verantwortungsbereich Arbeitsplanung Geschäftsprozess Prozessmanagement Produktentwicklung Arbeitsplanung skill Qualitätssicherung Aufteilung Stakeholder Transparenz Ist-Analyse Konzeption Abgrenzung modular Kennzahlen Kosten best practices Berater Benutzer Kompetenz transition Werkzeug Projektmodell Erklärung

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

objectiF RPM

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

Meilenstein-Trend-Analyse

Methoden Aufwandsschätzung

Methode NuWA - Nutzwertanalyse

Werkzeuge Projekt-Management

in-STEP BLUE

Primavera

Übersicht Leistungen

Organisationskonzepte

Studien, Gutachten

Auswahl Requirements Engineering (CARE) Tool

Auswahl Software Engineering (CASE) Tool

Auswahl Projekt-Management (PM) Tool

Projektleitung

Coaching IT-Projektleiter

Know-how-Transfer Projekte

Beratung und Unterstützung

Software Einsatz case/4/0

Software Einsatz Innovator

Software Einsatz ObjectiF

Projektbeispiele

Informationssystem-Planung

IV-Rahmenplanung Museum

Kommunikationsanalyse Versicherung

Organisation

ORG-BW-Gesamtmodell

Prozessmodellierung und Ablauf-Organisation Rating

Versionierung in der 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 (mit Download)

Cockpit - Steuerung der Simulation

Mitarbeiter-Profil

Kontakt

Impressum

Unsere Kompetenz

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. Die agile Software-Entwicklung stellt

  • 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.

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.

Wichtigsten Triebfedern 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 in einem Anforderungskatalog 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 BLUE), 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











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 in Ihrem IT-Projekt von den langjährigen Erfahrungen der INffORUM Berater.