mindsquare.de durchsuchen

Agile Softwareentwicklung

Sie brauchen einen Berater für agile Softwareentwicklung und/oder möchten, dass wir Ihnen unser Angebot in diesem Umfeld vorstellen?

Lewin Böhlke
26. November 2021

Agile Softwareentwicklung bezeichnet eine Reihe von Ansätzen zur iterativen und unbürokratischen Anwendungsentwicklung. Dabei wird ein hohes Maß an Transparenz und Flexibilität angestrebt, sodass Prozesse möglichst einfach und beweglich (also agil) gestaltet werden. Auf diesem Wege lassen sich Risiken im Entwicklungsprozess minimieren und Anwendungen können schneller und kontinuierlich bereitgestellt werden. Im Vergleich zu herkömmlichen Entwicklungsverfahren lassen sich so Zeit und Kosten sparen.

Was ist agile Softwareentwicklung?

Agile Softwareentwicklung bezeichnet eine Reihe adaptiver Denk- und Handlungsansätze. Diese sollen die Entwicklungsprozesse von Anwendungen transparenter, schlanker und flexibler gestalten als bei klassischen Vorgehensmodellen. Die Ansätze basieren auf den 2001 formulierten zwölf Prinzipien der agilen Softwareentwicklung und können sich auf einzelne Aspekte der Softwareentwicklung oder aber den gesamten Prozess beziehen. Allgemein werden im Zuge der agilen Softwareentwicklung folgende Ziele verfolgt:

  • Erhöhung der Transparenz und Veränderungsgeschwindigkeit.
  • (Teil-)Auslieferung entwickelter Systeme so früh wie möglich, um Risiken bzgl. Fehlentwicklungen zu minimieren.
  • Reduzierung der Entwurfsphase (und der Dokumentation) auf ein Mindestmaß.
  • Abstimmung mit Kunden in kurzen, regelmäßigen Abständen, um das flexible Eingehen auf Kundenwünsche zu ermöglichen.
  • Arbeiten in selbstorganisierten Teams und mit inkrementellen und iterativen Vorgehensweisen für kontinuierliche Verbesserungen.
Under E-Book zum Thema: Was ist DevOps

E-Book: Was ist DevOps (development & operations)?

In diesem E-Book erfahren Sie mehr über DevOps und ob es für Ihr Unternehmen sinnvoll ist.

Diese Ansätze stehen im Kontrast zu Vorgehensweisen der klassischen Softwareentwicklung (bspw. Wasserfall- oder V-Modell), die oftmals als bürokratisch, schwergewichtig und langwierig angesehen werden. Ein Kritikpunkt dieser plangeführten Modelle ist, dass dabei alle Einzelheiten schon im Voraus genau geplant und festgelegt werden.

Im Gegensatz dazu wird bei der agilen Softwareentwicklung angestrebt, das Produkt flexibel an die Bedürfnisse von Kunden anpassen zu können. So lassen sich auch Anforderungen erfüllen, die sich noch während der Projektlaufzeit ergeben oder verändern. Ermöglicht wird dies zum einen durch die vergleichsweise kurzen und sich wiederholenden Planungs- und Entwicklungsphasen, bei denen Anforderungen und Ziele kontinuierlich evaluiert und gewichtet werden.

Darüber hinaus erlaubt die agile Softwareentwicklung, neu entwickelte Applikationen (oder Teile davon) möglichst früh im in Kundensystemen einzusetzen. Anwendungsfeatures können also im Realbetrieb getestet und vom Kunden selbst gegen Anforderungen und Geschäftsziele geprüft werden. So erhalten Entwickler noch während der Projektlaufzeit wertvolles Feedback, welches sie in nachfolgenden Entwicklungszyklen berücksichtigen können, um so ein Produkt zu entwerfen, welches genau auf Kundenbedürfnisse abgestimmt ist.

Leitsätze & Prinzipien der agilen Softwareentwicklung

Erste Ansätze von dem, was heute als agile Softwareentwicklung bezeichnet wird, ließen sich bereits in den 1990er-Jahren beobachten. Zu dieser Zeit gewann auch die neuartige Methode des Extreme Programming an Popularität und ebnete den Weg für weitere agile Prozesse und Methoden.

Die Definition bestimmter Entwicklungsmethoden als “agil” ereignete sich erstmals im Februar 2001, als eine Gruppe namhafter Programmierer und Softwareentwickler ein neues Konzept von Softwareentwicklung entwarf. Als Antwort auf Softwareprojekte, die als eine Abfolge linearer Sequenzen organisiert werden, formulierte diese Gruppe das sogenannte “Agile Manifest”. Dabei handelt es sich um ein Dokument, welches vier Leitsätze und zwölf Prinzipien darstellt, die laut den Unterzeichnern besondere beim Entwicklungsprozess zu beachten sind:

“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:

Individuen und Interaktionen mehr als Prozesse und Werkzeuge
Funktionierende Software mehr als umfassende Dokumentation
Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
Reagieren auf Veränderung mehr als das Befolgen eines Plans

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.”

Die zwölf Prinzipien des agilen Manifests

“Wir folgen diesen Prinzipien:

  1. Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufrieden zu stellen.
  2. Heiße Anforderungsänderungen selbst spät in der Entwicklung willkommen. Agile Prozesse nutzen Veränderungen zum Wettbewerbsvorteil des Kunden.
  3. Liefere funktionierende Software regelmäßig innerhalb weniger Wochen oder Monate und
    bevorzuge dabei die kürzere Zeitspanne.
  4. Fachexperten und Entwickler müssen während des Projektes täglich zusammenarbeiten.
  5. 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.
  6. Die effizienteste und effektivste Methode, Informationen an und innerhalb eines Entwicklungsteams zu übermitteln, ist im Gespräch von Angesicht zu Angesicht.
  7. Funktionierende Software ist das wichtigste Fortschrittsmaß.
  8. Agile Prozesse fördern nachhaltige Entwicklung. Die Auftraggeber, Entwickler und Benutzer sollten ein gleichmäßiges Tempo auf unbegrenzte Zeit halten können.
  9. Ständiges Augenmerk auf technische Exzellenz und gutes Design fördert Agilität.
  10. Einfachheit – die Kunst, die Menge nicht getaner Arbeit zu maximieren – ist essenziell.
  11. Die besten Architekturen, Anforderungen und Entwürfe entstehen durch selbstorganisierte Teams.
  12. In regelmäßigen Abständen reflektiert das Team, wie es effektiver werden kann und passt sein Verhalten entsprechend an.”

Ziel dieser Leitsätze und Prinzipien ist es nicht, bestimmte Entwicklungsverfahren und -abläufe vorzuschreiben. Stattdessen stellen die angesprochenen Punkte eine Art Richtlinie dar, um Denkansätze und Workflows von Entwicklerteams umzustrukturieren. Außerdem soll eine klare Abgrenzung agiler Entwicklungsverfahren zu herkömmlichen Methoden verdeutlicht werden. Das agile Manifest fördert ein neues Verständnis von Softwareentwicklung, welches die Zufriedenheit der User und Funktionalität von Anwendungen in den Mittelpunkt stellt und gleichzeitig die Wichtigkeit von Veränderung und Kooperation betont.

7 Schritte zum ersten erfolgreichen DevOps Projekt

7 Schritte zum ersten erfolgreichen DevOps Projekt

In regelmäßigen Feedbackschleifen Fehler beheben und das Risiko eines fehlerhaften Endproduktes minimieren.

Wasserfallmodell vs. Agile Softwareentwicklung

Zur Verdeutlichung der Leitsätze und Prinzipien des agilen Manifests werden die dort angesprochenen Konzepte an dieser Stelle dem traditionellen Wasserfallmodell gegenübergestellt.

Bei dieser klassischen Programmiermethode ist das Entwicklungsprojekt in aufeinanderfolgende Phasen organisiert. Die Prozesse einer Phase müssen vollständig abgeschlossen sein, bevor mit der nächsten Phase begonnen werden kann. Gleichzeitig ist es bei notwendigen Rückschritten nur möglich, zur unmittelbar vorangehenden Phase zurückzukehren.

Entwicklungsprozess nach dem Wasserfallmodell

Aus diesem Grund ist es erforderlich, dass Produktanforderungen und gewünschte Leistungen vom Auftraggeber bereits vor Entwicklungsbeginn in einem sogenannten Lastenheft festgelegt werden. Die direkte Beteiligung von Anwendern im Entwicklungsprozess ist beim Wasserfallmodell lediglich auf diese anfängliche Anforderungsanalysephase beschränkt. Bereits hier kann es zu ersten Verzögerungen des Projekts kommen, wenn das Lastenheft bspw. unklar definierte Anforderungen enthält.

Aufgrund des phasenhaften Ablaufs klassischer Modelle können diese nur mühsam auf veränderte Anforderungen reagieren, welche sich im fortgeschrittenen Verlauf des Entwicklungszyklus ergeben. Dies ist insofern problematisch, als gerade bei Neuentwicklungen erst im Laufe des Entwicklungsprozesses überhaupt erkennbar wird, welche Funktionen tatsächlich benötigt werden. Die dann erforderlichen Nachverhandlungen zwischen Kunden und Entwicklern und das erneute Durchlaufen der einzelnen Projektphasen bedeuten je nach Umfang des Projekts einen möglicherweise beträchtlichen Zeit- und Kostenaufwand.

Bei komplexen Entwicklungsverfahren hat sich daher die Praxis etabliert, die vorgeschaltete Planungsphase zu reduzieren und genaue Anforderungsziele erst im laufenden Prozess festzulegen. Dies stellt einen ersten Schritt Richtung agiler Softwareentwicklung dar und verdeutlich die Notwendigkeit, von unzweckmäßigen Vorgehensweisen klassischer Entwicklungsverfahren abzuweichen.

Der agile Ansatz

Der agile Ansatz wurde mit dem Ziel entworfen, die Nachteile und Einschränkungen phasenbasierter Entwicklungsmodelle zu umgehen. Mittlerweile wird er für zahlreiche Projekte der Softwareindustrie umgesetzt und kann je nach praktischen Anforderungen des Vorhabens unterschiedliche Ausprägungen aufweisen.

Im Gegensatz zum Wasserfallmodell, bei dem der Entwicklungszyklus sequenziell aufeinanderfolgende Phasen durchläuft, setzt die agile Softwareentwicklung grundsätzlich auf die parallele und iterative Ausführung unterschiedlicher Prozesssequenzen. Damit werden übermäßige lange Projektlaufzeiten, zu denen es bei traditionellen Entwicklungsmodellen oftmals kommt, vermieden.

So finden bspw. Entwicklungs- und Testphasen gleichzeitig statt und werden im Laufe des Application Lifecycle Managements (ALM) kontinuierlich wiederholt. Dies ermöglicht häufige kleine Releases lauffähiger Anwendungsfeatures, welche von Anwendern dann unter realen Bedingungen getestet werden können. Der Endkunde wird also effektiv in den Entwicklungsprozess eingebunden.

Auf diese Weise kann auch rechtzeitig auf veränderte Marktanforderungen reagiert werden. Durch die kurzen und sich wiederholenden Entwicklungszyklen ist es nämlich möglich, auch bisher unbekannte Anforderungen bei der zukünftigen Anwendungsprogrammierung zu berücksichtigen.

Vergleich agiler und klassischer Entwicklungsansätze

Diese Charakteristika der agilen Softwareentwicklung macht sie äußerst attraktiv für Unternehmen, die mittels zunehmender Digitalisierung darauf abzielen, flexibel auf die beschleunigte Geschäftsentwicklung zu reagieren. Agile Methoden liefern solide Grundlagen für digitale Workflows und unterstützen das an Bedeutung gewinnende Cloud Computing und cloudnative Technologien.

Darüber hinaus eignet sich das agile Vorgehen auch für die Umsetzung eines DevOps-Konzepts, das aufgrund der Verfahren Continuous Integration, Continuous Delivery und Continuous Deployment ebenfalls von flexiblen Prozessen zur Entwicklung und Bereitstellung von Software profitiert.

Der Erfolg der agilen Softwareentwicklung in den letzten Jahrzehnten lässt sich durch verschiedene Studien belegen: Im Zuge einer 2005 durchgeführten Marktstudie wurde ermittelt, dass zu diesem Zeitpunkt 14% der Unternehmen in Europa und Nordamerika agile Softwareentwicklung einsetzten, während 19% die Nutzung in Erwägung zogen. Im Vergleich dazu wurde 2013 festgestellt, dass bereits 84% aller Unternehmen zu einem gewissen Grad agile Prozesse einsetzen. 2016 betrug dieser Anteil bereits 94%.

Unser Whitepaper zum DevOps Workshop

DevOps Workshop: Beispielablauf

In diesem Dokument zeigen wir Ihnen einen Beispielablauf, wie ein DevOps Workshop aussehen kann.

Agile Frameworks

Die agile Softwareentwicklung baut auf verschiedenen Frameworks auf, welche die Grundlage für gängige Entwicklungsansätze und deren konkrete Praktiken bilden. Zu den bekanntesten agilen Frameworks zählen:

  • Scrum: ein auf sogenannten Sprints basiertes Projektmanagement-Modell.
  • Extreme Programming (XP): ein auf Risikomanagement bedachter Ansatz, der sich von formalisierten Protokollen zugunsten der Lösung konkreter Programmieraufgaben löst.
  • Kanban: eine Methode zur agilen Gestaltung eines flexiblen, dezentralen Aufgabenmanagements.
  • Scrumban: eine Hybridmethode, welche die Vorteile von Scrum und Kanban miteinander vereint.
  • DSDM (Dynamic Systems Development Method): eine Erweiterung des Rapid Application Development (RAD), die sich mit dem gesamten Projektlebenszyklus beschäftigt.
  • Feature Driven Development (FDD): eine schlanke Methode, welche den Entwicklungsprozess anhand eines Feature-Plans organisiert.
  • Adaptive Software Development (ASD): ein Ansatz, der auf Kreativität und Ergebnisqualität bedacht ist und daher so wenige Richtlinien wie möglich vorgibt.
  • Crystal Family: eine “Familie” von Methoden, die je nach Anzahl der beteiligten Personen und verbundenen Risiken unterschiedliche Regelsätze vorgibt.
  • Lean Startup: ein Ansatz zur Unternehmensgründung und der Umsetzung von Geschäftsideen, bei dem schlanke Prozesse und das Lernen durch kundenzentriertes Testen im Vordergrund stehen.

Da es sich bei Scrum um das am häufigsten eingesetzte Framework handelt, wird es im folgenden noch einmal näher vorgestellt.

Scrum

Scrum stellt eine Form des Projektmanagements ohne Projektmanager dar. In einem Scrum-Modell arbeiten interdisziplinäre Teams von bis zu neun Personen gemeinsam an einem Projekt. Das Team setzt sich dabei aus einem Scrum Master, einem Product Owner und dem restlichen Scrum Team zusammen. Dieses Team unterteilt seine Aufgaben in sogenannte Sprints – dabei handelt es sich um zwei- bis vierwöchige Arbeitsphasen, die im Laufe der Projektzeit wiederholt stattfinden.

Der Scrum Master ist für die Teamkoordination und das Aufrechterhalten optimaler Arbeitsbedingungen verantwortlich. Er sorgt für die Einhaltung von Prozessen, moderiert Scrum Meetings und löst Konflikte. Der Product Owner ist der Produktverantwortliche. Er pflegt die Produktanforderungen im sogenannten Product Backlog und stellt das Bindeglied zwischen Scrum Team und Stakeholdern bzw. Managern dar. Das Scrum Team sorgt für die Erfüllung der festgelegten Anforderungen, wobei es selbstständig über die konkrete Umsetzung entscheidet und sich entsprechend selbst organisiert.

Das grundlegende Motto von Scrum ist die Retrospektive, also das Durchlaufen von Feedbackschleifen, bei denen Prozesse kontinuierlich geprüft und den ggf. veränderten Vorgaben angepasst werden. Die Aufgaben werden im sogenannten Sprint Backlog festgehalten und zwischen den einzelnen Sprints ergänzt. Beim täglichen Scrum Meeting (auch Daily Scrum genannt) wird entschieden, welche Aufgaben als nächstes zu bearbeiten sind. Nach Abschluss eines Sprints erhält der Auftraggeber die bisherigen (Teil-)Ergebnisse in Form eines Sprint Review. Anschließend werden Feedback und neue Anforderungen des Auftraggebers in das Product Backlog aufgenommen und der Prozess beginnt von vorn.

Veranschaulichung der Scrum-Methode

Agile Praktiken

Agile Praktiken sind konkrete Techniken und Vorgehensweisen, durch die Änderungen oder neue Anforderungen mit möglichst geringem Aufwand umgesetzt werden können, während gleichzeitig die Produktqualität verbessert wird. Beispiele agiler Praktiken und Techniken sind:

  • Backlog: ein Katalog, der zur Sammlung noch zu erledigender Aufgaben dient. Je nach Ansatz und Projektphase können Entwicklerteams flexibel entscheiden, welchen Aufgaben sich als nächstes gewidmet wird.
  • Retrospektiven: Teammeetings, in denen Learnings aus vergangenen Erfahrungen diskutiert, Maßnahmen zur Verbesserung formuliert und Vorgehensweisen für weitere Entwicklungsphasen festgelegt werden.
  • User Story: eine in einfacher Sprache verfasste Erklärung von Softwarefeatures aus Sicht des Endanwenders, um den Wert der Anwendung für einen Kunden zu verdeutlichen. Beschreibungen werden auf sogenannten Story Cards notiert und in einer Story Map angeordnet.
  • Continuous Intergration, Continuous Delivery & Continuous Deployment: sich ergänzende Entwicklungs- und Bereitstellungsmethoden, die im Rahmen einer DevOps bzw. DevSecOps-Strategie umgesetzt werden. Kennzeichnend für sogenannte CI/CD-Pipelines ist die kontinuierliche und inkrementelle Entwicklung und Bereitstellung von Anwendungsfeatures, unterstützt durch einen hohen Prozessautomatisierungsgrad.
  • Pair Programming: ein Vier-Augen-Prinzip zur Fehlervermeidung, bei dem sich zwei Entwickler einen Arbeitsplatz teilen. Während eine Person aktiv Code schreibt, wird dieser noch während der Eingabe vom Partner überprüft.
  • Agile Testing: Das Testen von Anwendungen stellt einen integralen Bestandteil der agilen Softwareentwicklung dar, demnach findet zwischen Entwicklung und Testen keine Trennung statt. Beim Agile Testing wird das (Zwischen-)Produkt noch innerhalb der Iteration oder am Ende einer Iterationsphase vom Entwicklerteam selbst getestet, bevor es an den Kunden ausgeliefert wird.
  • Timeboxing: eine Projektplanungstechnik, die einen festen Zeitrahmen vorgibt und einzelnen Aufgaben ein maximales Zeitbudget zuordnet.

Vorteile der agilen Softwareentwicklung

Korrekt umgesetzte agile Entwicklungsverfahren bringen eine Reihe von Vorteilen sowohl für Entwicklerteams wie auch Kunden und Endanwender, die im Folgenden noch einmal zusammengefasst werden

  • Time-To-Market: Durch kurze, iterative Entwicklungszyklen und den Verzicht auf übermäßige Planung im Voraus kommt es zu schnellen Releases von Teilanwendungen. Diese können vom Kunden unmittelbar produktiv genutzt werden, wodurch eine frühe und kontinuierliche Wertschöpfung stattfindet.
  • Flexibilität: Einer der bedeutsamsten Vorteile der agilen Softwareentwicklung ist ihre Flexibilität bzgl. Veränderungen von Zielen und Anforderungen. Die iterativen Entwicklungszyklen erlauben das Reagieren auf Kundenfeedback, wodurch der Fokus auf die Anwendungselemente mit dem höchsten Geschäftswert gerichtet werden kann. Gleichzeitig lassen sich dadurch nachträglich durchzuführende Veränderungen vermeiden.
  • Kommunikation: Agile Methoden fördern den engen Kontakt von Projektbeteiligten und sorgen für kurze Kommunikationswege zwischen Entwicklern und Kunden. Durch den offenen Austausch lassen sich Fehlentwicklungen vermeiden und es ist jederzeit ersichtlich, welche Aufgaben von Priorität sind.
  • Produktqualität: Agil entwickelte Software weist eine hohe Produktqualität auf, da Arbeitsabläufe und Anwendungsfeatures kontinuierlich evaluiert und verbessert werden. So entsteht Software, die genau auf Kundenbedürfnisse zugeschnitten ist.
  • Mitarbeiterzufriedenheit: Die agile Softwareentwicklung erlaubt einen gewissen Spielraum für Kreativität und eigenverantwortliches Arbeiten. Zusätzlich liefert der offene Austausch Entwicklern Möglichkeiten zum lebenslangen Lernen und der stetigen Erweiterung ihrer Kenntnisse. Dadurch wird das Mitarbeiterengagement gefördert und die allgemeine Zufriedenheit steigt.

Herausforderungen der agilen Softwareentwicklung

Trotz der zahlreichen Vorteile stellt die agile Softwareentwicklung keine Pauschallösung für erfolgreiche Softwareprojekte dar. Wie bei traditionellen Verfahren auch wird der Rahmen eines agilen Projekts durch allgemeine Vorgaben wie Deadlines und Budgets vorgegeben und kann durch unterschiedliche Komplikationen eingeschränkt werden. Zu etwaigen Herausforderungen der agilen Softwareentwicklung zählen z. B.:

  • Produktive Zusammenarbeit: Der Erfolg eines Projekts hängt nicht nur von der Methode, sondern auch von der Zusammenarbeit aller Verantwortlichen ab. Falls es zu Interessenskonflikten kommt oder Entwicklerteams unzureichend vom Auftraggeber unterstützt werden, wirkt sich dies negativ auf alle agilen Prozesse aus.
  • Unzureichende Planung: Die Flexibilität agiler Methoden hat auch ihre Kosten. Da auf konkrete und langfristig ausgelegte Planung oftmals verzichtet wird, ist es schwierig, genaue Abgabetermine zu ermitteln. Aus diesem Grund besteht immer ein gewisses Risiko, dass nachlässig gearbeitet wird.
  • Einstiegsbarrieren: Die konsequente Umsetzung agiler Praktiken bedeutet einen nicht zu missachtenden Aufwand für Entwicklerteams, die an herkömmliche Entwicklungsverfahren gewöhnt sind. Zusätzlich benötigen Mitarbeiter meist fachübergreifende Fähigkeiten, was die Durchführung entsprechender Schulungen voraussetzen kann. Die Einführung agiler Prozesse kann sich demnach als unerwartet zeitintensiv herausstellen und sollte kleinschrittig aufgebaut werden.
  • Vertragsgrundlage: Die Eigenheiten flexibler Projekte verlangen eine besonders klar festgelegte Vertragsgrundlage. So muss ein belastbarer vertraglicher Rahmen erarbeitet werden, der die Rechte und Pflichten aller Parteien berücksichtigt und möglichen Konflikten entgegenwirkt.

Wann ist der Einsatz agiler Methoden sinnvoll?

Sind die Entwicklerteams noch unerfahren im Umgang mit agilen Vorgehensweisen, sollten bisherige Entwicklungsverfahren nach und nach umstrukturiert werden, indem neue Methoden und Praktiken schrittweise eingeführt und immer wieder evaluiert werden.

Verfügen Mitarbeiter über ausreichend Kenntnisse zur Umsetzung eines agilen Projekts, sollte die Entscheidung von den Ansprüchen und Bedürfnissen des Auftraggebers abhängig gemacht werden.

Agiles Vorgehen ist sinnvoll, wenn

  • der Auftraggeber zur aktiven Gestaltung des Projekts bereit ist.
  • der Auftraggeber eine noch unausgereifte Idee hat und Unterstützung zur genauen Definition von Vorgaben benötigt.
  • das Projekt schnell umgesetzt oder in einem sich schnell wandelnden Umfeld eingesetzt werden soll.

Agiles Vorgehen ist weniger sinnvoll, wenn

  • der Auftraggeber genaue Vorgaben macht oder eine hohe Planungssicherheit fordert.
  • die Software in einer sich kaum verändernden Umgebung eingesetzt werden soll.
  • es um die Entwicklung standardisierter Anwendungen geht.
Lewin Böhlke

Websession: Agile Softwareentwicklung

Haben Sie weitere Fragen zum Thema Agile Softwareentwicklung? Oder wünschen Sie sich eine individuelle Beratung zum erfolgreichen Einführung agiler Frameworks und Praktiken? Dann kontaktieren Sie uns für ein unverbindliches Erstgespräch mit einem unserer Experten.

FAQ

Wie zeichnet die agile Softwareentwicklung aus?

Agile Ansätze setzen auf die parallele und iterative Ausführung von Entwicklungsprozessen. So kommt es zu kurzen Entwicklungs- und Testphasen, die das häufige Bereitstellen von Teilanwendungen ermöglichen. Gleichzeitig wird auf Feedbackschleifen und intensive Kommunikation gesetzt. Entwickler pflegen einen offenen Austausch und stehen in direktem Kontakt zum Auftraggeber, um Prozesse flexibel anzupassen und eine pragmatische Softwarelösung zu liefern.

Welche Prinzipien verfolgt die agile Softwareentwicklung?

Agile Methoden setzen auf die frühe und kontinuierliche Auslieferung funktionsfähiger Software in kurzen Zeitspannen, das Eingehen auf Veränderungen, die direkte Zusammenarbeit motivierter Individuen in selbstorganisierten Teams, technische Exzellenz und gutes Design, Einfachheit und die nachhaltige Prozessverbesserung durch Reflexion.

Was sind gängige agile Frameworks?

Scrum ist das bekannteste agile Framework: ein überschaubares und selbstorganisiertes Team, das verschiedene Rollen in sich vereint, erledigt seine Aufgaben mithilfe sogenannter Sprints. Dabei werden in sich wiederholenden Arbeitsphasen von wenigen Wochen die Anforderungen des Auftraggebers schrittweise umgesetzt. Weitere gängige Frameworks sind Extreme Programming, Kanban, Scrumban, DSDM, Feature Driven Development, Adaptive Software Development, Crystal und Lean Startup.

Welche Vorteile haben agile Vorgehensweisen?

Zu den wichtigsten Vorteilen der agilen Softwareentwicklung zählen kürzere Time-To-Market, Flexibilität bzgl. auftretender Veränderungen, offener Austausch und die Kommunikation von Feedback, erhöhte Produktqualität und gesteigerte Mitarbeiter- wie auch Kundenzufriedenheit.

Welche Herausforderungen bringen agile Methoden mit sich?

Die agile Softwareentwicklung konfrontiert Unternehmen bspw. mit folgenden Herausforderungen: mangelnde Zusammenarbeit innerhalb der Entwicklerteams oder mit dem Auftraggeber, mangelnde Planung und damit einhergehender Verlust von Produktivität, Einstiegsbarrieren für eine erfolgreiche Einführung und Umsetzung agiler Verfahren, erhöhte Anforderungen an den vertraglichen Rahmen zwischen Auftraggeber und -nehmer.

Verwandte Know-Hows

Continuous Integration (zu Deutsch kontinuierliche Integration oder fortlaufende Integration) ist ein Konzept der agilen Software-Entwicklung und grundlegender Bestandteil des DevOps-Ansatzes. Continuous Integration beschreibt den Prozess fortlaufender Zusammenführungen von Code-Komponenten zu […]
Der Anspruch an Software, ständig verfügbar zu sein, führt zu Transformationen in der Softwareentwicklung und im IT-Betrieb. Agile DevOps-Methoden bringen immer kürzer werdenden Entwicklungszyklen mit sich, welche auf eine flexibel […]
Continuous Deployment (kontinuierliche Bereitstellung, kurz: CD – nicht zu verwechseln mit Continuous Delivery) ist eine Release-Strategie in der Software-Entwicklung. Bei CD wird jede Anwendungsversion, die eine automatisierte Testphase erfolgreich durchlaufen […]

Passende Angebote zum Thema

DevOps und agile ABAP-Entwicklung sind Themen, die schon seit einiger Zeit diskutiert werden. Die Philosophien versprechen viele Vorteile wie schnellere Release-Zyklen, höhere Robustheit der Applikationen, geringere Fehlerzahlen und flexiblere Entwicklung. […]
Kennen Sie auch das Problem: Sie haben eine Herausforderung im Coding umzusetzen, aber es will einfach nicht klappen? Testdaten eingegeben, Konsolenausgaben erzeugt, Debugger gesetzt, … dennoch funktioniert es nicht. Mit […]
Sie haben eine App-Idee, jedoch noch kein klares Bild zur Umsetzung? Im App-Design Workshop entwickeln wir zusammen mit Ihnen klare Zielbilder mit einem klaren Konzept. Anschließend, oder sogar währenddessen, setzt […]
Kontakt aufnehmen
Ansprechpartner
Laura Feldkamp mindsquare Kundenservice
Laura Feldkamp Kundenservice