Der Softwareentwicklungsprozess im Hause der IWM Software AG

0

In den letzten Jahren wurde bei der IWM Software AG eine agile Vorgehensweise in der Softwareentwicklung etabliert, die es ermöglicht, einen klar abgesteckten Bereich an Projekten zu realisieren und an den Kunden zeitnah auszuliefern.

Ein klares Geschäftsziel des Unternehmens heißt: die Effizienz in der Softwareentwicklung zu erhöhen. Hierzu bedient sich die IWM Software AG des agilen Softwareentwicklungsprozesses Scrum, wodurch eine stetige Verbesserung erreicht werden soll.

Softwarentwicklung im Scrum-Prozess

Die empirische Verbesserung beruht dabei auf drei Säulen:

1.Transparenz:
Der Fortschritt und die Hindernisse eines Projektes werden regelmäßig und für alle sichtbar festgehalten.

2. Überprüfung:
In regelmäßigen Abständen werden Produktfunktionalitäten geliefert und sowohl das Produkt als auch das Vorgehen beurteilt.

3. Anpassung:
Die Anforderungen an das Produkt, die Pläne und das Vorgehen werden nicht ein für alle Mal festgelegt, sondern kontinuierlich detailliert und angepasst (just-in-time).

Ziel dieser Vorgehensweise ist die schnelle und qualitativ hochwertige Entwicklung von Produkten entsprechend einer formulierten Vision. Die Umsetzung der Vision in das fertige Produkt erfolgt nicht durch die Aufstellung möglichst detaillierter Anforderungslisten (vgl. Lastenheft/Pflichtenheft), die dann phasenweise umgesetzt werden. In Scrum werden die Anforderungen in Form klarer Eigenschaften aus der Anwendersicht formuliert (Akzeptanzkriterien). Die Liste dieser Anforderungen ist das Product Backlog. Diese Anforderungen werden Stück für Stück in zwei bzw. vier Wochen langen Intervallen, sogenannten Sprints, iterativ und inkrementell umgesetzt. Am Ende eines jeden Sprints steht bei Scrum die Lieferung eines fertigen Teilprodukts.

Einsatz sog. Scrum-Teams

Jedes Scrum-Team setzt sich bei der IWM Software AG zusammen aus:
„Scrum Master“ (managt den Prozess und beseitigt Hindernisse)
„Product Owner“ (stellt fachliche Anforderungen und priorisiert sie)
„Entwicklungsteam“ (entwickelt das Produkt)

Als Produktverantwortlicher hält der Product Owner regelmäßig Rücksprache mit den Stakeholdern (z. B. Anwender oder Kunden), um deren Bedürfnisse und Wünsche zu verstehen und in Form von Akzeptanzkriterien festzuschreiben.

Dadurch lassen sich bereits zu Beginn des Entwicklungsprozesses Missverständnisse bei der Umsetzung der Kundenanforderung vermeiden.

Während des Scrum finden verschiedene Aktivitäten statt, die jeweils von allen Team-Mitgliedern besucht werden und feste Zeitfenster haben, die nicht überschritten werden sollen.

Aktiviäten im Scrum-Prozess

Sprint Planning

Der Product Owner stellt dem Entwicklungsteam die im Product Backlog festgehaltenen Produkteigenschaften vor (in der zuvor priorisierten Reihenfolge).

Das Entwicklungsteam entscheidet, wie viele Aufträge für den kommenden Sprint eingeplant werden und zeichnet sich daher auch für das Erreichen des Sprint-Ziels verantwortlich.

Daily Scrum

Zu Beginn eines jeden Arbeitstages trifft sich das Entwicklerteam zu einem max. 15-minütigen Daily Scrum, bei dem Scrum Master und Product Owner ebenfalls anwesend, jedoch nicht aktiv beteiligt sind, falls sie nicht selbst Backlog-Elemente bearbeiten. Zweck des Daily Scrums ist der Informationsaustausch. Im Daily Scrum werden keine Probleme gelöst – vielmehr geht es darum, sich einen Überblick über den aktuellen Stand der Arbeit zu verschaffen.

Sprint Retrospektive

Die Sprint Retrospektive steht ganz am Ende eines Sprints. Hierbei überprüft das Scrum-Team seine bisherige Arbeitsweise, um sie in Zukunft effizienter und effektiver zu machen.

Kanban

Der Daily Scrum findet dabei vor einem sog. Kanban-Board statt.

Kanban ist ein Vorgehensmodell zur Softwareentwicklung, bei dem die Anzahl paralleler Arbeiten, – der sog. Work in Progress (WiP), reduziert und somit schnellere Durchlaufzeiten erreicht und Probleme – insbesondere Engpässe – schnell sichtbar gemacht werden sollen.

Testautomatisierung

Eine Rolle in jedem Entwicklerteam stellt ein QM-Mitarbeiter dar.

Einen Großteil seiner Arbeit nimmt neben manuellen Tests mittlerweile die Testautomatisierung ein und verfolgt folgende Ziele:

– Ergänzung zum manuellen Testprozess in der agilen Softwareentwicklung.
– Nächtliche Systemtests der verschiedenen Produktbereiche.
– Einsatz des Werkzeuges Ranorex zum Erstellen, Durchführen und Kontrollieren der Tests.

Weiterhin werden durch das Werkzeug Jenkins (erweiterbares, webbasiertes System zur kontinuierlichen Integration) im Nightly Build, wie der Name bereits andeutet, im nächtlichen Prozess Versionen erstellt und automatisiert getestet.

http://www.iwm-software.de/

Disclaimer:
„Für den oben stehenden Beitrag sowie für das angezeigte Bild- und Tonmaterial ist allein der jeweils angegebene Nutzer verantwortlich. Eine inhaltliche Kontrolle des Beitrags seitens der Seitenbetreiberin erfolgt weder vor noch nach der Veröffentlichung. Die Seitenbetreiberin macht sich den Inhalt insbesondere nicht zu eigen.“

Share.

Es sind keine weiteren Kommentare möglich.