3. April 2017
Darum haben statische Prozesse ausgedient Dass statische Prozesse samt Vorgaben, bindende Quality Gates und vorgegebene Toollandschaften längst überholt sind, ist bereits seit einiger Zeit festzustellen. Denn Kundenansprüche haben sich verändert. Fixe Pläne und Regeln sind da limitierend. Unternehmen müssen zeitnah reagieren, auf Kundenwünsche eingehen und sie unmittelbar umsetzen. Rücksicht von Kundenseite ist nicht mehr erwartbar, denn wenn ein Unternehmen kein überzeugendes Angebot bietet, wird sich der Kunde Alternativen suchen. Agilität ist also absolut erforderlich. Flexibilität ist gefragter denn je, der Kundenwunsch hat oberste Priorität. Und das nicht erst beim Endprodukt. Vielmehr bestimmt der Kunde mit, schon während der Umsetzung. Auch in der Softwareentwicklung ist diese Veränderung deutlich spürbar – von einem vorübergehenden Trend kann hier keineswegs mehr gesprochen werden. Eine agile Softwareentwicklung ist heutzutage zwingend erforderlich. Enge Zusammenarbeit, kurze Dienstwege und unmittelbares Eingehen auf den Kunden sind entscheidend, wenn es darum geht, Kunden langfristig zufrieden zu stellen und letztlich an das eigene Unternehmen zu binden. Agile Softwareentwicklung: Der Kunde ist König Ziel eines jeden agilen Softwareentwicklungsprozesses ist die Zufriedenheit des Kunden. Wie ist diese zu erreichen? Eine schnelle, kontinuierliche Auslieferung sowie die Zuverlässigkeit des Produktes sind hier maßgeblich und entscheidend. Dass ein starrer, konsequent umgesetzter Plan hierbei nicht zielführend ist, ist offensichtlich. Die agile Idee in der Softwareentwicklung Vielmehr sind es Individualität, eine besondere Flexibilität hinsichtlich individueller Kundenwünsche und die Umsetzung selbiger sowie ein hohes Maß an Dynamik, die zur erfolgreichen Entwicklung führen. Die zwölf Unterpunkte des agilen Manifests greifen jene agilen Prinzipien auf. Selbstorganisierte Teams, die eng zusammenarbeiten – auch in Austausch mit Kunden sowie Fachexperten – liefern regelmäßig funktionierende Software möglichst zeitnah aus. Selbstreflexion ermöglicht bei der agilen Softwareentwicklung eine zunehmende Effizienz. Der Kundenwunsch rückt in den Mittelpunkt. Änderungswünsche sind zu jedem Zeitpunkt – selbst spät in der Entwicklung – willkommen und werden als Bereicherung des Entwicklungsprozesses angesehen. Sie verschaffen dem Kunden einen Wettbewerbsvorteil. Der Kunde wirkt aktiv am Entwicklungsprozess mit, greift ein, darf Änderungswünsche immer äußern und mit einer Umsetzung jener rechnen. Denn nur wenn Anforderungen zur hundertprozentigen Zufriedenheit umgesetzt werden, können Unternehmen mit Folgeaufträgen rechnen. Agile Methoden: Pair Programming vs. Code-Reviews Kommunikation spielt bei agiler Softwareentwicklung eine entscheidende Rolle. Nicht nur die Techniker befinden sich im konsequenten Austausch miteinander, auch der Kunde wird in den Entwicklungsprozess eingebunden, darf seine Wünsche äußern und mit einer Umsetzung rechnen. Sowohl beim Pair Programming als auch bei den Code-Reviews arbeiten immer zwei Entwickler an einer Implementierung. Da sie sich im ständigen Dialog befinden, sich gegenseitig reflektieren, werden Probleme schon im Keim erstickt. So kann der Entwicklungsprozess maßgeblich beschleunigt werden, was letztlich zu einer höheren Kundenzufriedenheit führt. Pair Programming Bei dieser Methode der agilen Softwareentwicklung arbeiten zwei Entwickler an der Umsetzung eines Requirements. Zusammenarbeit ist dabei tatsächlich wörtlich zu verstehen. Beide Entwickler sitzen an einem Rechner. Während der eine den Code schreibt, reflektiert der zweite die Problemstellung und kontrolliert den Code unmittelbar. Kommen hier Probleme, Missverständnisse oder Fehler auf, können diese direkt besprochen werden. Diese Direktheit verhindert Komplikationen schon vor ihrer Entstehung. Code-Reviews Auch bei den Code-Reviews sind mehrere Entwickler an