Agile Softwareentwicklung

Home » Agile Softwareentwicklung

Agile Softwareentwicklung


Das Ziel agiler Softwareentwicklung ist es, den Entwicklungsprozess flexibler und schlanker zu machen, als das bei den klassischen Vorgehensmodellen der Fall ist.

Stellen Sie sich vor, sie wollen mit einem Segelschiff einen fremden Hafen ansteuern. Sie messen vor der Reise den Wind, berechnen den Kurs , binden das Ruder fest und kontrollieren schließlich nach einer festgelegten Zeit, ob Sie auch wirklich am Ziel angekommen sind?

Sicher nicht!

In einer vergleichbaren Situation befinden sich häufig Kunden bei klassischen Softwareentwicklungsprojekt: Anforderungen an die neue Software werden vor Beginn in Pflichten- oder Lastenheften definiert - in den meisten Fällen kristallisiert sich aber erst im Laufe des Entwicklungsprozesses heraus, welche Funktionen im Einzelnen wie benötigt werden. Um neue Anforderungen dann noch in das System zu integrieren, sind dann meist nachträglich zeit- und kostenintensiven Änderungen nötig.

Agile Entwicklungsmethoden kommen ohne Pflichtenhefte aus. Der Kunde gibt am Anfang nur einige wenige Basisfunktionalitäten vor, das Projekt startet sofort ohne Verzögerung. Während des Projektverlaufs können jederzeit neue oder geänderte Anforderungen definiert werden, z.B. weil festgestellt wurde, dass die Software andere Merkmale haben muss als bisher angenommen; oder weil sich die Wettbewerbssituation geändert hat. Durch dieses iterative Vorgehen können Erfahrungen aus dem laufenden Projekt in den weiteren Entwicklungsprozess mit einfließen, und es wird nur das entwickelt, was tatsächlich von Nutzen ist. 

In agilen Projekten sprechen die Entwickler direkt mit den Anwendern - und das am besten täglich. Diese direkte Kommunikation führt nicht nur dazu, dass die Entwickler besser verstehen, was die Anwender eigentlich für eine Software benötigen; gleichzeitig wächst auch das Verständnis der Anwender, wenn mal eine Schätzung von den Entwicklern korrigiert werden muss. Insgesamt ist eine gute Zusammenarbeit zwischen Entwicklern und Kunden sowie eine gemeinsame Vertrauensbasis von unschätzbarem Wert für jedes Projekt!

 

Unser Angebot

  • Modellierung von Softwarearchitekturen nach agilen Prinzipien 
  • Professionelle Mitarbeit bei der Implementierung und Integration von Softwarekomponenten
  • Erarbeitung und Umsetzung von Testkonzepten und Vorgehensweisen zur Testautomatisierung
  • Organisation bei der Durchführung von Projekten nach agilen Prinzipien
  • Beratung und Unterstützung bei der Skalierung agiler Projektvorhaben
  • Anforderungsanalyse und Erstellung von Fachkonzepten und User Stories

 

 

Kontaktieren Sie uns jetzt!

 

 

Vorteile für Kunden & Entwickler


Agile Softwareentwicklung zeichnet sich durch selbstorganisierende Teams, sowie eine iterative und inkrementelle Vorgehensweise aus

Im Kern geht es bei agiler Produktentwicklung um möglichst häufige Rückkopplungsprozesse und zyklisches (iteratives) Vorgehen auf allen Ebenen: bei der Programmierung, im Team und beim Management. Anders als in der klassischen Vorgehensweise wird das neue System nicht im Voraus in allen Einzelheiten genau geplant und dann in einem einzigen langen Durchgang entwickelt, denn schließlich können sich die Anforderungen während der Projektlaufzeit noch ändern, und oft sind sie zu Projektbeginn noch gar nicht vollständig bekannt.

Stattdessen wechseln sich beim agilen Vorgehen kurze Planungs- und Entwicklungsphasen ab. Bei sogenannten iterativen Entwicklungsmodellen, welche bereits seit den frühen 1950er Jahren existieren, ist die Aufteilung des Projektes in Iterationen (dt. Wiederholungen) bzw. Kleinst-Projekte vorgesehen. Jede Iteration enhält dabei von der Analyse bis zur Auslieferung alle Disziplinen, welche innerhalb der Iterationsphase sequenziell oder sogar parallel ablaufen können. Nachdem eine Vision für das neue System entwickelt wurde, also die Ziele festgelegt und gewichtet wurden, die mit dem Produkt erreicht werden sollen, wird ein Plan für eine erste Version ausgearbeitet, und die Entwicklung beginnt. Danach werden notwendige Anpassungen vorgenommen. 

Nach jeder Iteration soll eine Veröffentlichung (meist zu Demonstrationszwecken) eines stabilen, integrierten und getestenten Teil-Systems erfolgen können, welches ein Bestandteil des Gesamtprojektes darstellt. Damit soll möglichst viel Feedback eingeholt werden, welches in die Definition von Anforderungen und Ziele der nächsten Iteration einfließen kann. Inkrementelle Entwicklung ist eine Strategie zur Termin- und Ablaufplanung, in der die verschiedenen Teile des Systems zu unterschiedlichen Zeiten und mit verschiedenen Geschwindigkeiten entwickelt und umgehend im Gesamtsystem integriert werden. Das Gegenbild ist eine gleichzeitige Integration aller Teilsysteme zum Abschluss des Projekts.