Agiles Manifest

Im Februar 2001 legten 17 Softwareentwickler durch das Verfassen von Werten und Richtlinien bei der Softwareentwicklung des Grundstein fĂŒr eine Vielzahl von agilen Arbeitsmethoden, die sich seitdem daraus entwickelt haben. Das agile Manifest beinhaltet vier LeitsĂ€tze und zwölf Prinzipen, die bei agilen Prozessen im Vordergrund stehen.
Vier Menschen arbeiten an einem Schreibtisch und schauen in einen PC
© Anna Shvets

Definition agil

Das Adjektiv agil wird vom lateinischen agilis abgeleitet und kann mit den Worten „flink“ oder „geschickt“ ĂŒbersetzt werden.

Definition Manifest

Manifest leitet sich vom lateinischen „manifestus“ ab, was so viel bedeutet wie „handgreiflich gemacht“ oder „offenbart“. Ein Manifest ist demnach eine ErklĂ€rung, die aus Zielen und Absichten besteht und veröffentlicht wird. Manifeste sollen eine breite Masse an Menschen erreichen und Impulse geben, etwas zu verĂ€ndern. Es wird zwischen literarischen, kĂŒnstlerischen und politischen Manifesten unterschieden.

Ein sehr bekanntes Beispiel ist das „Kommunistische Manifest“, welches von Karl Marx und Friedrich Engels im Jahr 1848 verfasst wurde.

Definition Agiles Manifest

Auch das Agile Manifest, im englischen Original „Manifesto for Agile Software Development“ genannt, zĂ€hlt zu einer bedeutenden ErklĂ€rung fĂŒr ein großes Publikum und definiert Verhaltensregeln und Werte fĂŒr Teams, die an der agilen Softwareentwicklung beteiligt sind.

Geschichte Agiles Manifest

Die agile Softwareentwicklung definiert bestimmte Vorgehensweise innerhalb eines Softwareentwicklungsprozesses, die das Ziel haben, Transparenz zu schaffen und die VerĂ€nderungsgeschwindigkeit zu erhöhen. Teams, die einen agilen Prozess ausĂŒben, organisieren sich in der Regel selbst und arbeiten nach iterativem (sich wiederholend) und inkrementellem (aufeinander aufbauend) Vorgehen.

Dieses Vorgehen wurde in den ersten GrundzĂŒgen bereits im Jahr 1957 von Softwareentwicklern realisiert. Die Vertreter gehen davon aus, dass ein Endzustand eines Produkts wĂ€hrend des Prozesses nicht feststehen kann. Ein Projekt wĂ€chst organisch.

In den 1970er Jahren entstanden das evolutionĂ€re Projektmanagement und die adaptive Softwareentwicklung. Beide Theorien bauen darauf auf, dass klare Ziele und Strukturen im Vorfeld nicht planbar sind und vordergrĂŒndig die Selbstorganisation der Teams verfolgt werden sollte.

Zu Beginn der 1990er Jahre wurden viele Forschungen zum Thema AgilitÀt unternommen. Es finden sich darunter erste AnsÀtze, die zu agiler Softwareentwicklung aufgestellt wurden.

PopulĂ€r wurde die agile Softwareentwicklung im Jahre 1999 durch den amerikanischen Softwareentwickler Kent Beck und der Veröffentlichung seines Buches ĂŒber die agile Methode Extreme Programming.

Anfang 2001 fand ein Treffen in Utah statt, bei dem ĂŒber die Methoden der Softwareentwicklung gesprochen wurde. Die 17 Softwareentwickler, die daran teilnahmen, waren Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland und Dave Thomas. Sie verfassten zusammen das agile Manifesto, welches vier LeitsĂ€tze und zwölf Prinzipien beinhaltet.

LeitsÀtze und Prinzipien

Der Aufbau des agilen Manifests gleicht einer GegenĂŒberstellung. Diese verdeutlicht die Kernaussagen, die sich von herkömmlichen und traditionellen Vorgehensmodellen abgrenzen.

Als Einleitung wird das Anliegen der Entwickler genannt:

„Wir erschließen bessere Wege, Software zu entwickeln, indem wir es selbst tun und anderen dabei helfen. Durch diese TĂ€tigkeit haben wir diese Werte zu schĂ€tzen gelernt:“

LeitsÀtze

  1. Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge.
  2. Funktionierende Software ist mehr wert als umfassende Dokumentation.
  3. Die Zusammenarbeit mit dem Kunden ist wichtiger als die Vertragsverhandlung.
  4. Das Reagieren auf VerÀnderung ist mehr wert als das Befolgen eines Plans.

Die Entwickler fĂŒgen hinzu:

„Das heißt, obwohl wir die Werte auf der rechten Seite wichtig finden, schĂ€tzen wir die Werte auf der linken Seite höher ein.“

Mit dem Leitsatz 1 wird der Mensch innerhalb der agilen Softwareentwicklung in den Mittelpunkt gestellt. Wichtig sind dabei die persönlichen GesprĂ€che und der direkte Austausch. Diese Aspekte sind ebenfalls fĂŒr die agilen Teams wichtig, da fĂŒr sie die Kommunikation untereinander eine entscheidende Rolle beim Entstehungsprozess eines Produktes spielt.

Leitsatz 2 spricht sich fĂŒr konkrete Arbeitsergebnisse aus. Der Fokus liegt bei dem agilen Vorgehen auf den erreichten Ergebnissen und die Erledigung der Aufgaben und nicht auf der Dokumentation oder PrĂ€sentation.

Im 3. Leitsatz wird die Wichtigkeit des Kunden und die Zusammenarbeit mit eben jenem zum Ausdruck gebracht. Der Kunde stellt die Anforderungen an das Projekt. Auch hier ist der direkte Austausch wichtiger als Verhandlungen ĂŒber Formalien.

Leitsatz Nummer 4 steht fĂŒr die AnpassungsfĂ€higkeit der Teams. Dabei arbeiten die Mitwirkenden nicht chaotisch und willkĂŒrlich, sondern haben konkrete Ziele, von denen sie, wenn es nötig wird, jedoch abweichen können.

Prinzipien

Die zwölf Prinzipien geben den vier erstellten LeitsÀtzen konkrete Handlungen vor und bieten einen Handlungsrahmen, an den sich agile Teams halten können.

Die zwölf Prinzipien des agilen Manifestes lauten:

  • Unsere höchste PrioritĂ€t ist es, den Kunden durch frĂŒhe und kontinuierliche Auslieferung wertvoller Software zufrieden zu stellen.
  • Heiße AnforderungsĂ€nderungen selbst spĂ€t in der Entwicklung willkommen. Agile Prozesse nutzen VerĂ€nderungen zum Wettbewerbsvorteil des Kunden.
  • Liefere funktionierende Software regelmĂ€ĂŸig innerhalb weniger Wochen oder Monate und bevorzuge dabei die kĂŒrzere Zeitspanne.
  • Fachexperten und Entwickler mĂŒssen wĂ€hrend des Projektes tĂ€glich zusammenarbeiten.
  • Errichte Projekte rund um motivierte Individuen. Gib ihnen das Umfeld und die UnterstĂŒtzung, die sie benötigen und vertraue darauf, dass sie die Aufgabe erledigen.
  • Die effizienteste und effektivste Methode, Informationen an und innerhalb eines Entwicklungsteams zu ĂŒbermitteln, ist im GesprĂ€ch von Angesicht zu Angesicht.
  • Funktionierende Software ist das wichtigste Fortschrittsmaß.
  • Agile Prozesse fördern nachhaltige Entwicklung. Die Auftraggeber, Entwickler und Benutzer sollten ein gleichmĂ€ĂŸiges Tempo auf unbegrenzte Zeit halten können.
  • StĂ€ndiges Augenmerk auf technische Exzellenz und gutes Design fördert AgilitĂ€t.
  • Einfachheit - die Kunst, die Menge nicht getaner Arbeit zu maximieren - ist essenziell.
  • Die besten Architekturen, Anforderungen und EntwĂŒrfe entstehen durch selbstorganisierte Teams.
  • In regelmĂ€ĂŸigen AbstĂ€nden reflektiert das Team, wie es effektiver werden kann und passt sein Verhalten entsprechend an.

Vorgehensweisen

Auf Basis des agilen Manifestes entstanden verschiedene Frameworks (RahmengerĂŒste) und Praktiken.

Beispiele fĂŒr Frameworks, die in vielen Unternehmen Verwendung finden, sind das Modell Scrum, die Vorgehensweise Feature Driven Development und das Adaptive Software Development.

Scrum

Scrum kann mit “GedrĂ€nge” ĂŒbersetzt werden. Der verwendete Begriff kommt aus dem Rugby. Die Teams stehen dicht gedrĂ€ngt um den Ball herum und versuchen ihn durch Taktiken ĂŒber die gegnerische Linie zu befördern.

Metaphorisch kann dieses Bild auf die Vorgehensweise Scrum ĂŒbertragen werden. Es gibt ein Team, welches selbstorganisiert die interne Rollenverteilung bestimmt und die Arbeitsprozesse durch zum Beispiel Scrum Meetings wĂ€hrend der Scrum Sprints gestaltet.

Es wird zwischen drei Rollen unterschieden. Der Product Owner, dem Scrum Master und dem Umsetzungsteam.

Obwohl Scrum seine UrsprĂŒnge in der Softwaretechnik findet, wird es inzwischen auch in vielen anderen Branchen und Bereichen eingesetzt.

Feature Driven Development

Das Feature Driven Development, kurz FDD, kann als Sammlung von diversen Arbeitstechniken, Strukturen, Rollen und Methoden bezĂŒglich des Projektmanagements betrachtet werden.

Im Jahre 1997 entwickelte der Programmierer Jeff De Luca die Methode mit dem Ziel, ein komplexes Projekt zu realisieren. Ab diesem Punkt wurde FDD stetig weiterentwickelt.

Im Fokus steht der Begriff Feature. Jedes Feature ist fĂŒr den Kunden nĂŒtzlich. Anhand eines Feature-Plans findet die Organisation der Entwicklung statt. Eine leitende Rolle nimmt der sogenannte Chefarchitekt ein, der dafĂŒr verantwortlich ist, den Überblick zu behalten.

Adaptive Software Development

Das Adaptive Software Development (ASD) basiert auf dem Rapid Application Development und beinhaltet Elemente der schnellen Anwendungsentwicklung. Im Fokus stehen die kontinuierliche Anpassung an neue Anforderungen.

Alle vier Wochen findet innerhalb des Softwareentwicklungsprozess ASD eine PrĂŒfung hinsichtlich des Fortschritts der neuen Programmversionen statt. Die Treffen werden mit dem Kunden abgehalten, um ihn in den Prozess mit einzubeziehen. Dazwischen werden drei Phasen durchlaufen, die „Spekulieren“, „Zusammenarbeiten“ und „Lernen“ heißen.

Agile Praktiken

Im Folgenden werden beispielhaft drei agile Praktiken nÀher erlÀutert, die bei der agilen Softwareentwicklung eingesetzt werden. Diese lauten kontinuierliche Integration, Paarprogrammierung und agiles Testen.

  • Kontinuierliche Integration
    Die kontinuierliche Integration ist, die auch fortlaufende oder permanente Integration genannt wird, ist agil und definiert das fortlaufende ZusammenfĂŒgen von Komponenten einer Anwendung. Dabei wird das Ziel verfolgt, die SoftwarequalitĂ€t zu verbessern. Unter Verwendung von Compilern findet bei der kontinuierlichen Integration der typische Arbeitsschritt des Übersetzens statt. Compiler sind Computerprogramme, die Quellcodes ĂŒbersetzen, damit sie von einem Computer auf direktem Weg ausgefĂŒhrt werden können. Ein Quellcode stellt den Text eines Programms dar, der in einer bestimmten Programmiersprache verfasst wird. Neben dem Übersetzen wird auch das sogenannte Linken betrieben. Mithilfe des Linkers werden Programmmodule so zusammengesetzt, dass sie ein ausfĂŒhrbares Programm ergeben.
  • Paarprogrammierung
    Die Paarprogrammierung wird auch als Tandemprogrammierung bezeichnet und findet vor allem im Framework Extreme Programming (XP) Anwendung. Zwei Programmierer erstellen an einem Arbeitsplatz den Quellcode. Dabei ĂŒbernimmt einer die Aufgabe des Codeschreibens, wĂ€hrend der andere sich mit der Problemstellung auseinandersetzt, den Code kontrolliert und sofort Feedback gibt. Die Methode gilt als agil. Jedoch sollten die Rollen regelmĂ€ĂŸig abwechseln und die Paare hĂ€ufiger wechseln.
  • Agiles Testen
    Das agile Testen stellt das Testen einer Software dar, die im agilen Entwicklungsprozess entsteht. Als Basis fĂŒr das agile Testen werden die zwölf Prinzipien des agilen Manifests beachtet und auf den Testvorgang ĂŒbertragen. Beispielsweise wird auf die hohe Kundenzufriedenheit, die QualitĂ€t, das Design und die hohe Entwicklungsgeschwindigkeit der Produkte wert gelegt und beim Testen bedacht.

Agile Methoden bei TenMedia

Die Entwicklung von Software unter Verwendung agiler Methoden hĂ€lt viele Vorteile fĂŒr die Arbeit des Entwicklerteams bereit. In der Softwareagentur TenMedia wird beispielsweise mit dem Framework Scrum gearbeitet und fĂŒhrte uns bereits zu einer Reihe erfolgreich abgeschlossener Projekte. Die effiziente, agile und sehr kundenorientierte Arbeitsweise ĂŒberzeugt kleine und mittelstĂ€ndische Unternehmen, SelbststĂ€ndige, Start-ups und Privatpersonen und sorgt bei allen Beteiligten fĂŒr große Zufriedenheit. Wir bieten unter anderem individuelle Softwareentwicklung an und verzichten somit auf den Einsatz von 08/15 Codes.

Unser motiviertes Team freut sich auf ein unverbindliches Kennenlernen. Wenn Sie eine spannende Projektidee haben, schreiben Sie uns gerne eine E-Mail oder rufen Sie uns an.