Agile Softwareentwicklung

Die Agile Softwareentwicklung kombiniert Flexibilität, schnelle Projektabwicklung und geringe Kosten. Daher setzen immer mehr Unternehmen auf agile Methoden in der Softwareentwicklung.
Teilen

Agile Softwareentwicklung Definition

Agil bedeutet, aus dem lateinischen übersetzt, zunächst beweglich oder wendig.

Allgemein formuliert, umfasst Softwareentwicklung die Planung und Umsetzung von Softwareprojekten. Diese Projekte können z.B. Anwendungen für Endbenutzer, Entwickler und Betriebssysteme sein, welche mithilfe von Programmiersprachen und Frameworks erstellt werden.

Beide Begriffe zusammen bezeichnen also ein flexibles Projektmanagement in der Informationstechnik (IT).

Mittlerweile ist die Agile Softwareentwicklung zum Standard der Softwareentwicklung geworden und wird von über 80% der Unternehmen genutzt.

Was ist besonders an Agiler Softwareentwicklung?

Agile Softwareentwicklung lässt sich als Gegenbewegung zu der klassischen Softwareentwicklung beschreiben. Bei traditionellen Methoden wie z.B. dem Wasserfallmodell hat jede Phase zuvor bestimmte Start- und Endpunkte. Diese Phasen könnten beispielsweise bestehen aus:

  1. Anforderungsanalyse und -spezifikation
  2. Systemdesign und -spezifikation
  3. Programmierung und Modultests
  4. Integrations- und Systemtest
  5. Auslieferung, Einsatz und Wartung

Anders als bei dieser Vorgehensweise kann bei der Agilen Softwareentwicklung eine schnelle Anpassung an neue Wünsche der Kunden stattfinden. Wie dies erreicht werden kann, ist im Agilen Manifest festgehalten.

Agiles Manifest

Die Anfänge Agiler Softwareentwicklung liegen bereits in den frühen 90ern. 1999 veröffentlichte Kent Beck Extreme Programming (XP), wodurch die theoretische Grundlage der Agilen Softwareentwicklung geboten wurde. Zusammen mit Robert C. Martin, Martin Fowler und mehreren anderen Softwareentwicklern, gründeten sie 2001 das Agile Manifesto.

Agile Werte

Die vier im Agilen Manifest genannten Leitsätze bieten das Fundament der Agilen Softwareentwicklung.

  • Individuen und Interaktionen > Prozesse und Werkzeuge
  • Funktionierende Software > umfassende Dokumentation
  • Zusammenarbeit mit dem Kunden > Vertragsverhandlung
  • Reagieren auf Veränderungen > Befolgen eines Plans

Im Weiteren schreiben sie, dass sie die Werte auf der rechten Seite nicht weniger wichtig finden, sondern lediglich denen auf der linken Seite einen höheren Wert zuschreiben. Zusammengefasst ist die Zusammenarbeit mit den Kunden wichtiger eingestuft als rein technische Prozesse.

Agile Prinzipien

Dieser Kundenfokus zieht sich weiter durch die zwölf Prinzipien des Agilen Manifests.

Bei klassischen Modellen gibt es oft das Problem, dass zwar das planmäßige Endergebnis vorliegt, dieses jedoch nicht dem benötigten Ergebnis entspricht. In der Agilen Softwareentwicklung wird dies durch regelmäßige Meetings mit dem Kunden verhindert. Durch die kontinuierliche Kommunikation, wie sie auch in den Agilen Werten angesprochen wird, kann eine Reaktion auf sich ändernde Anforderungen schnell geschehen und Veränderungen können sogar als Wettbewerbsvorteil des Kunden genutzt werden.

Die Arbeit nach dem KISS-Prinzip („keep it simple, stupid“), bzw. dem Prinzip der Einfachheit verhilft unter anderem zu möglichst kurzen Zeitspannen bis zur Lieferung des Produkts, die die Zufriedenstellung des Kunden erhöhen sollen. Ebenso gehört eine enge Zusammenarbeit von Experten und Entwicklern zur Agilen Softwareentwicklung.

Die selbstorganisierten Teams zeichnen sich durch flache Hierarchien und viel gemeinsamer Verantwortung aus. Sie bearbeiten die Projekte in einem kontinuierlichem Arbeitstempo, was einerseits gesünder und produktiver ist und andererseits auch Verlässlichkeit dem Kunden gegenüber bietet. Persönliche Gespräche, untereinander und auch mit dem Kunden und Selbstreflexion führen zu einer kontinuierlichen Verbesserung des Teams.

Agile Techniken

Konkrete Verfahren zur Umsetzung der Prinzipien und Werte werden als Agile Techniken bezeichnet.

Beispiele hierfür sind:

  • Task Boards – Übersicht über aktuelle Aufgaben
  • Daily-Standup-meetings – tägliche Statusbesprechung
  • User Stories – Anwendungsfälle
  • Timeboxing – klare, feste Zeitvorgaben
  • Earned Value – Fortschritts- & Budgetkontrolle
  • Persona – Einnehmen der Kundenperspektive
  • Definition of Done – Kriterien für fertiggestellte Aufgaben
  • Work-in-Progress-Limits – Begrenzung der Anzahl paralleler Aufgaben

Agile Methoden

Agile Methoden sind die Kombination aus den Prinzipien und Techniken.

Sie zeichnen sich durch hohe Eigenverantwortung, einfache Regeln und einen iterativen Entwicklungsprozess aus. Die Zwischenergebnisse werden dabei jeweils vom Kunden bewertet.

Die häufigste Methode ist Scrum.

Scrum

Hierbei wird die Software in sogenannten „Sprints“, die jeweils 1-3 Wochen dauern, erarbeitet, wodurch eine einfachere Reaktion auf Änderungen möglich ist. Der Hauptfokus liegt bei Scrum auf Selbstorganisation und Selbstmotivation.

Zunächst gibt es einen Product Owner, welcher einen Backlog mit allen Anforderungen erstellt. Das Scrum Team ist schließlich für die Entwicklung dieses gewünschten Produktes verantwortlich und organisiert sich dabei selbstständig. Dieses Team besteht aus ca. 3-9 Personen, wobei die Mitglieder meist crossfunctional, also nichtspezialisiert arbeiten. Als eine Art „Moderator“ in Meetings versteht sich der Scrum Master, welcher außerdem Regelverstöße verhindert.

Kanban

Im Gegensatz zu Scrum haben die Mitglieder des Teams bei der Kanban Methode keine festen Rollen. Es gibt ein sogenanntes Kanban-Boards mit den Einteilungen To-Do; In-Progress; Done.

Anfänglich werden alle zu erledigenden Aufgaben ganz links positioniert und von den Mitgliedern des Teams je nach Bearbeitungszustand eigenständig verlegt. So behalten alle Beteiligten jederzeit den Überblick und können dementsprechend handeln. Besonders geeignet ist die Methode für Routinearbeiten.

Hybride

Oft findet man eine Kombination aus traditionellen und agilen Prozessen, bei dem der traditionelle, organisatorische Rahmen mit einer Entwicklung nach agilen Prinzipien verbunden wird (z.B. Scrum + V-Modell).

Ebenfalls existieren auch Hybride aus Kanban und Scrum durch Nutzung eines Kanban-Boards, gekoppelt mit festen Rollen im Team.

Vorteile von Agiler Softwareentwicklung

Der größte Vorteil und gleichzeitig auch Unterschied zu traditionellem software development ist das direkte Feedback vom Kunden durch regelmäßige Meetings. Neben Transparenz führt dies auch zu einer frühen Fehlererkennung, flexiblen Reaktionen auf Änderungen der Ansprüche und Vermeidung von Missverständnissen. All das begünstigt außerdem eine erhöhte Zufriedenheit des Kunden mit dem Endprodukt. Eine schnellere Fertigstellung (time-to-market) wird ebenfalls durch kurze Kommunikationswege möglich.

Agile Softwareentwicklung bei TenMedia in Berlin

Aufgrund dieser vielen Vorteile, die Agile Softwareentwicklung bietet, setzen viele Unternehmen auf diese Methoden. Auch bei TenMedia in Berlin wird beispielsweise die Scrum-Methode erfolgreich eingesetzt. Unsere effiziente, agile und kundenorientierte Arbeitsweise führt nicht nur im Team, sondern auch bei Auftraggebern zu größerer Zufriedenheit. Statt Software von der Stange zu bieten, wird jedes Projekt bei uns mithilfe individueller Softwareentwicklung umgesetzt und setzt damit bei unternehmenseigenen Wünschen und Bedürfnissen an.

Neben der Softwareentwicklung übernehmen wir auch Webentwicklung, Webdesign, sowie die Konzeption moderner Webportale im Kundenauftrag und als eigene Projekte. Ob als Webagentur Berlin oder bundesweit unterstützen wir Unternehmen branchenunabhängig und in jeder Größe, von Start-ups über Vereine und öffentliche Einrichtungen bis hin zu KMU und Konzernen. Durch eigene Portale und unserer Rolle als Co-Founder von Start-ups gehen wir mit viel Erfahrung an die Umsetzung neuer Projekte.

Unser Team steht jederzeit bei Fragen und Anregungen telefonisch, per Mail oder persönlich in unserem Office in Berlin zwischen Alexanderplatz und Rosa-Luxemburg-Platz bereit.

Gefällt dir was du siehst? Teile es!

Neueste Beiträge

Glossar > Begriffe
Glossar > Services
Glossar > Begriffe

Zufällige Beiträge

Glossar > Programmiersprachen
Glossar > Begriffe
Glossar > Begriffe

Zufällige Glossareinträge

Glossar > Städte
Glossar > Städte
Glossar > Städte