Agile Softwareentwicklung

Die Agile Softwareentwicklung kombiniert Flexibilität, schnelle Projektabwicklung und geringe Kosten. Daher setzen immer mehr Unternehmen auf agile Methoden in der Softwareentwicklung.
Zwei Mitarbeiterinnen einer Software Agentur arbeiten den Scrum Process bei der agilen Softwareentwicklung aus.
© Alexander

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.

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 2-4 Wochen dauern, erarbeitet, wodurch eine einfachere Reaktion auf Änderungen möglich ist. Der Hauptfokus bei der Scrum Entwicklung liegt 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 Scrum 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 die Webentwicklung sowie die Konzeption moderner Webportale, sowohl im Kundenauftrag als auch 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.