software_and_testing_softwareentwicklung_logo
software_and-testing_softwareentwicklung_logo

Softwareentwicklung

Der Anfang

Am Anfang der Softwareentwicklung stehen die Anforderungen an das Endprodukt, damit eine klare Zielvorstellung existiert. Die Anforderungen müssen im Requirement Engineering von der Produktanforderung in technische Spezifikationen transferiert werden. Es ist wichtig diesen Prozess wiederholt in iterativen Schritten abzugleichen, sodass die Ausrichtung der Stakeholder immer wieder das Bild der Entwickler korrigieren damit eine optimale Softwareentwicklung statt findet. Das Ziel ist die gemeinsame Entwickung des richtigen Produktes für den Kunden.

Agile Methodik

Planung

Eine iterative Anpassung und Ausrichtung gelingt am besten mit einer agilen Arbeitsmethode zur Fokussierung und Transparenz des Fortschrittes. Eine Planung der Aufgaben sollte in drei Kategorien erfolgen

Komponenten

Dies sind Einheiten, welche nicht determiniert sind und bis zum Ende der Entwicklung bestehen bleiben. Bei der Definition ist der Fokus auf eine langfristige Ausrichtung essentiell.

Epics

Ein Epic besteht aus mehreren Stories über einen längeren Zeitraum, dies kann zum Beispiel ein Feature für ein Produkt sein, welches sich nicht innerhalb eines Implementierungszeitraumes (Sprint) umsetzen lässt.

Stories

Innerhalb eines Sprints lassen sich in der Regel mehrere Stories umsetzen, sodass ein oder mehrere Teammitglieder diese umsetzen.

Entwicklung Methoden

TDD

Die Test Driven Development Methode eignet sich für eine hohe Testabdeckung von Beginn der Softwareentwicklung an. Dabei wird der Testcode parallel zum Softwarecode geschrieben. Der Fokus liegt darauf das von Anfang an jede Zeile Code durch einen Test abgedeckt ist.

BDD

Die Behavior Driven Development Methode ist ein Konzept mit dem Aspekte das die Anforderung schon der eigentliche Test und Spezifikation ist. Dabei wird ein Benutzer-nahes Szenario beschrieben, in der Akzeptanzkriterien mittels given,when und then beschrieben werden. Dabei ist es möglich das der selbst der Produkteigner Tests schreiben kann.

Teamaufstellung

Ein Team sollte alle Beteiligten, die ein Produkt entwickeln wollen, miteinbeziehen. Als minimales Setup ist sind ein kundenorientierter Planer, mehrere Implementierer und Tester für eine optimale Softwareentwicklung vorzusehen. Damit das Produktrisiko minimalisiert wird, ist eine kontinuierliche und entwicklungsbegleitende Testung des Produktes notwendig - ein adäquates Softwaretesting ist maßgeblich für den Erfolg.

Standpunkt

In der heutigen Welt der Software sollte man die Adaptierbarkeit für unterschiedliche Operationssystem im Auge behalten. Um eine leichte Übertragbarkeit zwischen verschiedenen Betriebssystemen zu gewährleisten, sollte auf eine Browser-fähige Applikation gesetzt werden. Durch diesen Ansatz können modernste Technologien zum Bauen und Deployen von Software genutzt (zum Beispiel Docker) und damit kann eine moderne Softwareentwicklung angewendet werden.