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.
Agiles Manifest
© Anna Shvets
Teilen

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.

Bleibe auf dem Laufenden in Sachen Software, IT und Start-ups mit unserem Newsletter.
Jetzt abonnieren!
Bleibe auf dem Laufenden in Sachen Software, IT und Start-ups mit unserem Newsletter.
Jetzt abonnieren!
Gefällt dir was du siehst? Teile es!
Kontaktperson
Anica Piontek
+49 (0) 30 5 490 650-0
anica.piontek@tenmedia.de
Du hast auch ein spannendes Projekt?
Gerne bespreche ich ganz unverbindlich alle Projektdetails in einem persönlichen Gespräch.

Zufällige Beiträge

Ein Mitarbeiter eines Call Centers mit Headset freut sich über die bereitgestellte Software. Glossar > Begriffe
Eine Webentwicklerin präsentiert einem Kunden eine barrierefreie Website auf einem großen Bildschirm. Glossar > Begriffe

Zufällige Glossareinträge

Ein Mitarbeiter eines Call Centers mit Headset freut sich über die bereitgestellte Software. Glossar > Begriffe
Mann am Computer, erstellt eine Datenbank Glossar > Services
Drei Menschen sitzen am Tisch und schauen auf ein Mobiltelefon Glossar > Begriffe