Huffpost Germany
BLOG

Eine offene Plattform für kontroverse Meinungen und aktuelle Analysen aus dem HuffPost-Gastautorennetzwerk

Hamid Reza Monadjem Headshot

Der Fortschritt ist agil

Veröffentlicht: Aktualisiert:
SOFTWARE
ASSOCIATED PRESS
Drucken

War es vor Jahren noch üblich die eigene IT-Abteilung mit der Entwicklung einer eigenständigen betrieblichen Software zu beauftragen, hat sich inzwischen vieles verändert. Man verabschiedet sich mehr und mehr von der statischen Entwicklung hin zu agilen und schnellen Entwicklungsformen.

Wurde früher umständlich in Meetings alle Determinanten einer Software im Vorwege geplant und dann erst umgesetzt, geschieht dies heute im laufenden Prozess. Das Schlagwort ist die agile Softwareentwicklung.

Schnell und wendig

Heute ist eine ständig optimierte Software ein wichtiger Erfolgsfaktor in den meisten Unternehmen. Hierfür bieten sich Handlungsmethoden aus dem Bereich der agilen Softwareentwicklung und des Frameworks an.

Wie immer hängt der Einsatz von der Art der Aufgabe, der Projektanforderung und den Entwicklerteams ab. So positiv die agile Softwareentwicklung auch ist, es wird immer von den agierenden Personen bestimmt.

Das heißt nicht jeder Softwareentwickler lässt sich auch zum Arbeiten mit den neuen Methoden ein. Der eine Grund könnte sein, dass bislang alles prima lief und so nicht das Bedürfnis nach einer weiteren Methode besteht oder schlicht, weil der Entwicklungsprozess zu klein ist, um dies mit einer neuen Methode zu machen.

Hier besteht dann natürlich die Möglichkeit, die Entwicklung extern zu vergeben. Letztendlich wird jedoch auf Dauer an der agilen Softwareentwicklung kein Weg vorbeiführen, sodass, um Entwicklungsprozesse zu beschleunigen darauf kaum verzichtet werden kann zu überprüfen, ob dies im betrieblichen Alltag sinnvoll einsetzbar ist.

Eckpunkte einer agilen Softwareentwicklung

Arbeitszeiträume und Meetings, so könnte man dies vereinfachend sagen. Grundsätzlich werden Arbeiten so gestückelt, dass sie in einer Phase von 1-2 Wochen zu erledigen sind. Nach Abschluss der Iteration findet ein Meeting statt, bei dem retrospektiv der Entwicklungsschritt analysiert wird.

Weiter wichtig ist die Storycard, die sozusagen die Entwicklungsgeschichte des Produktes festhält und der Backlog, die Liste der noch abzuarbeiten Punkte enthält. Ein weiterer Schritt ist, Arbeitsabschnitte mit einer Präferenz zu belegen und damit wie in einem Punktesystem Arbeitszeit und Aufwand zuzuordnen.

Jeder im Entwicklungsteam hat daher auch einen bestimmten Punktewert im Zeitraum X abzuarbeiten. Eine Definition of Done komplettiert schließlich die wichtigsten Bausteine. Hier sind Wünsche und Qualität für die Entwicklung und letztendlich das Anwendungsziel der Software festgelegt.

Wünsche oder Änderungen des Projektbeauftragten sind immer möglich und können dann nach Ende einer Arbeitsphase integriert werden. Ziel des Ganzen: Der Entwicklungsprozess erhält mehr Struktur und Unklarheiten fallen schneller auf und können dann auch zügig behoben werden.

Wichtig dabei ist auch, dass der Kunde die Software möglichst schnell einsetzen kann, so findet die Ausreifung des Produktes meist während der Anwendung im betrieblichen Alltag statt. Dabei ist klar, dass das Anwendungsziel der Software immer gleich bleiben muss.

Methoden der agilen Softwareentwicklung

Etabliert hat sich bereits Scrum, ein agiles Framework zur schnellen Entwicklung. Scrum bietet also die Rahmenstruktur, bei der die Anwendung innerhalb dieser Methodik erstellt wird. Hier werden die Iterationen als Sprint bezeichnet. Bei dieser Methode müssen die einzelnen Schritte im Vorwege sehr gut geplant werden.

Jeder Beteiligte oder Team bekommt eine klare Aufgabe, die in einem Board festgelegt wird, so können sowohl zukünftige Arbeitsschritte, wie vergangene nachvollzogen werden. Der Vorteil liegt darin, dass auch kleinere Entwicklungsarbeiten parallel ausgeführt werden können.

Pointiert und meinungsstark: Der HuffPost-WhatsApp-Newsletter

2016-07-22-1469180154-5042522-trans.png

Bei dieser Vorgehensweise wird eine bestimmte Punktzahl pro Aufgabe vergeben, die ein Team oder Beteiligter zu erledigen hat. Eine Alternative zu dieser Methodik ist Lean Development, jedoch können auch beide Ansätze verknüpft werden.

Lean Development ist eigentlich ein Begriff aus der Industrieproduktion, hat aber auch in die Softwareentwicklung Einzug gehalten. Hierbei geht es darum, alle unnötigen Aufgaben zu entfernen oder auszulagern, die nicht konkret der Softwareentwicklung dienen.

Das heißt keine Meetings, nur weil dies nach dem Ablauf notwendig erscheint. Wiederkehrende Arbeiten werden - sofern sinnvoll - aus dem Entwicklungsprozess ausgelagert. Eigentlich ist dies System nicht zwingend ein Bestandteil der agilen Softwareentwicklung, die Geschwindigkeit kommt durch die Konzentration aufs Wesentliche.

Aufgaben, die nicht zwingend für einen schnellen Prozess notwendig sind, jedoch erledigt werden müssen, werden dann ausgelagert. Aus dieser Idee hat sich die Kanban-Methode entwickelt, die etwas flexibler als Scrum ist.

Dies trifft auf die Dauer einzelner Arbeitsschritte zu, die zeitlich und inhaltlicher zwar schneller verändert werden, jedoch auch die Struktur und die Dauer des Entwicklungsprozesses hemmen können. Scrum und Kanban sind jedoch keine Gegensätze. Beide Methoden können gleichzeitig eingesetzt werden. Für Scrum spricht in diesem Zusammenhang die größere Verbreitung und klarere Abläufe.

Weitere Artikel zu den Themen Softwareentwicklung, Digitalisierung, Internet of Things und Industrie 4.0 finden Sie hier.

Leserumfrage: Wie fandet ihr uns heute?

2016-07-11-1468249306-1333267-umfrage.jpg

Hier geht es zur Umfrage.

Lesenswert:

Ihr habt auch ein spannendes Thema?
Die Huffington Post ist eine Debattenplattform für alle Perspektiven. Wenn ihr die Diskussion zu politischen oder gesellschaftlichen Themen vorantreiben wollt, schickt eure Idee an unser Blogteam unter blog@huffingtonpost.de.