| | Agile Methodik | Neben technologischer Kompetenz bilden der Einsatz von
smarten Methodiken in Projektmanagement und Entwicklungsprozess den Grundstein
für smarte Softwareprodukte.
Agile Software-Entwicklung Agilität ist die Fähigkeit einer Organisation prompt und angemessen
auf Änderungen der Umgebung sowie auf die Bedürfnisse, die durch diese Änderungen
entstehen, einzugehen. Ein agiler Prozess ist einer, der diese Anpassungsfähigkeit
bereitwillig begrüßt und unterstüzt. [Duden-Fremdwörterbuch]
| Motivation:Sowohl Software als auch ihr Entwicklungsprozess sind inhärent komplex.
Wissenschaftliche Untersuchungen zeigen, dass es heute immer noch keine Ausnahme ist,
dass Software-Projekte ihr Ziel verfehlen bzw. Qualitätsanforderungen
nicht erfüllen [StandishGroup].
- Projekte scheitern mit zunehmender Größe komplett.
- Anwender beschweren sich, dass die Software viel zu umständlich ist,
oder dass Anforderungen gar nicht abgedeckt sind.
- Auftraggeber bekommen zwar ihre Software, allerdings meist zu einem erheblich
späteren Zeitpunkt und/oder zu weit höheren Kosten als geplant.
Die Ursachen hierfür sind vielschichtig:
- Rasanter technischer Fortschritt in der Softwaretechnologie
mit Architekturen, Standards und Schnittstellen von Drittanbieterkomponenten
die sich in kurzen Zeitabständen ändern
- Anforderungsaspekte werden erst während der Projektlaufzeit erkannt. In
Sofwareprojekten kennen oft sowohl Entwicklerteam als auch Kunde selbst die exakten
Bedürfnisse und Anforderungen zum Zeitpunkt der Spezifikation nur unzureichend.
- Zum Teil signifikante geschäftsdomänenspezifische Änderungen,
etwa aufgrund modifizierter Vorgaben des Gesetzgebers, müssen eingearbeitet werden.
- Der Auftraggeber verändert seine Organisationsstruktur oder das Budget.
Eine Adaption der Vorgehensmodelle aus Naturwissenschaft und Ingenieursdisziplinen, wo etwa
in der Architektur durch Kenntnis der Naturgesetze (Statik,...) eine detaillierte Planung des
Produktes sowie des Projektmanagements im voraus mit anschliessender beharrlicher Umsetzung
genau nach Plan
möglich ist, hat sich in der Softwareentwicklung als ineffizient und als immens
kostenintensiv erwiesen.
Dieser heute vorherrschende Ansatz in der Softwareindustrie muß nach Meinung führender
Software-Ingenieure-der wir uns durch langjährige Projekterfahrung anschließen-, als
gescheitetert betrachtet werden.
|
| Die Agile Bewegung
So entstand im Jahr 2001 das Agile Manifest,daß als “Aufschrei” führender
Köpfe des Software-Engineering gegen die Softwareindustrie gedacht war und als
“Mahnmal” gegen schlechte Software gelten sollte[Manifesto for Agile Software Development].
Der Wortlaut des Agilen Manifests mit seinen vier Werten:
“Wir entdecken Wege, Software besser zu entwickeln, indem wir es selbst tun und anderen
dabei helfen, es zu tun. Durch diese Arbeit haben wir Folgendes zu schätzen gelernt:
- Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge
- Funktionierende Software ist wichtiger als umfassende Dokumentation
- Zusammenarbeit mit dem Kunden ist wichtiger als Vetragsverhandlungen
- Sich auf unbekannte Änderungen einzustellen ist wichtiger als
einem Plan zu folgen.
Wir schätzen aufgrund unserer Erfahrungen die Punkte auf der rechten Seite, aber wir
bewerten die Punkte auf der linken Seite höher.”
|
| Agiles omeleon-Projektmanagement
Zum Wettbewerbsvorteil des Kunden werden nötige Änderungen der Anforderungen auf Basis
der Funktionalitätsspezifikation ausdrücklich begrüßt, anstatt
-wie in der traditionellen Software-Entwicklung- zu versuchen, diese durch möglichst
ausgefeilte Projektplanung (Ausweichpläne, technische Dokumentation, Designdokumente,
siehe weiter unten) vom Anfang bis zum Ende auszuschließen.
In enger(täglicher) Zusammenarbeit mit Projektverantwortlichen und ggf.
späteren Anwendern, zu der sich der Kunde verpflichtet — wird die Erfüllung der
Anforderungen kontinuierlich verifiziert. So werden unsausweichliche Änderungen zu
einem frühestmöglichen Zeitpunkt bekannt und unmittelbar eingearbeitet.
Wir betrachten den Kunden als Partner und die Projektverantwortlichen des Kunden
als Mitglieder des Entwicklungsteams.
Die Kommunikation erfolgt direkt, von Angesicht zu Angesicht.
Zu diesem Zweck liefern wir kontinuierlich und möglichst häufig (mehrere Tage bis
wenige Wochen) funktionierende Software aus.
Gegenstand des Projektfortschritts ist alleinig funktionierende Software. Dies ermöglicht
ein unmittelbares Feedback des Kunden.
In jeweiligen “Planungsrunden” bestimmt dabei der Kunde sebst die Komponenten, die als
nächstes entwickelt werden. Somit hält der Kunde zu jedem Zeitpunkt “das Steuer
selbst in den Händen”.
|
| Agiler omeleon-EntwicklungsprozessUnser Entwicklungsprozess ist exakt auf die beschriebene inkrementelle und iterative
Projektabwicklung abgestimmt.
Beide basieren auf den Konzepten des Extreme Programming(XP)
|
Kontaktieren Sie uns wenn Sie weitergehende Fragen zu unsere innovativen Methodik haben!
| | |