headline bullet Software-Entwicklung

Ein Softwareprojekt verläuft umso erfolgreicher, je besser der Dienstleister den Kunden versteht. Das gilt auch umgekehrt. Deshalb möchten wir Ihnen einen Einblick vermitteln, nach welchen methodischen Grundsätzen wir Software entwickeln.

Entwicklungsmethodik

Wir entwickeln in aller Regel nach dem Paradigma des Extreme Programmings. Ziel dieser Methode aus dem Agile Software Development ist Risikominimierung durch Aufteilung grösserer Entwicklungsvorhaben in kleine Iterationen. Jede Iteration beinhaltet den gesamten Software-Produktionszyklus (Analyse, Design, Coding, Test und Produktivstellung). Dies entlastet und verschlankt die vorgelagerte Spezifikation, weil nicht jedes Detail vor dem Projektstart geklärt werden muss.

Bei Extreme Programming werden insbesondere Use-Cases und Wireframes während des Projektablaufs kontinuierlich verfeinert und gemeinsam besprochen. Die sich wiederholende Projektphasen gliedern das Gesamtprojekt in überschaubare Teilschritte mit definierten inhaltlichen und zeitlichen Zielen.

Während des Projekts steht der Entwicklungsstand kontinuierlich unter einer gesonderten, passwortgeschützten URL zur Verfügung. Da Teilfunktionalität direkt nach Fertigstellung integriert wird, ist ein kontinuierlicher Feedback-Zyklus möglich. Bugs und Änderungswünsche werden fortlaufend in einem Bugtracker nachgeführt. Die Validierung der Ergebnisse mit Blick auf die Abnahme kann so bereits frühzeitig erfolgen, oder sogar in die laufende Entwicklung integriert werden.

Qualitätsmanagement

Die folgenden beiden Massnahmen zur Qualitätssicherung sind integraler Bestandteil der Projektmethodik:

  • SVN- oder GIT-gestütztes Releasemanagement
  • Formalisiertes Testkonzept in vier Stufen

Alle Veränderungen am Code

1. werden zunächst durch den verantwortlichen Entwickler auf seinem lokalen System vorgenommen. Sind sie dort funktional,

2. werden sie in ein zentrales Entwicklungssystem („Experimental“) eingespielt. Der Entwickler demonstriert dem Projektmanager dort die Funktionsfähigkeit. Nach Freigabe durch den Projektmanager bzw. Kunden

3. werden sie in ein zentrales Testsystem („Testing“) überspielt. Dies geschieht einmal wöchentlich. Das Testing wird zu diesem Zweck vorher auf den exakten Zustand des Produktivsystems zurückgesetzt. Im Testing wird der Code unter realen Bedingungen abschliessend getestet, um danach

4. ins Produktivsystem überspielt zu werden („Merge“).
Die Realisierung der userseitigen Templates folgt grundsätzlich gemäss Level A der W3C-Richtlinien. Als Browser können sowohl für das Backend als auch das Frontend eingesetzt werden: MS Internet Explorer ab Version 6.0, Mozilla Firefox und Safari. Soweit AJAX zum Einsatz kommt, setzt dies die Aktivierung von JavaScript voraus. Cross-Browser-Tests sind Bestandteil des vorgenannten Testkonzepts

Testphase

Wenn wir für Sie entwickeln, wird in aller Regel der wesentliche Teil der Leistungen nicht vor Ort erbracht. Gleichwohl empfiehlt sich gerade zu Beginn der Testphase eine enge Kooperation mit Kunden und späteren Nutzern. YMC bietet an, in dieser Phase mit einem technischen Team Spezifikationen, Feedback-Zyklen, Bugfixes und Change-Requests vor Ort zu erledigen. In derselben Zeit sollten alle relevanten Mitarbeiter auf Kundenseite zumindest zeitweise für Feedback zur Verfügung stehen. Die Vor-Ort-Phase wird durch eine Präsentation des Projektstands eingeleitet und durch die Vorstellung und Diskussion des zwischenzeitlich gesammelten Feedbacks abgeschlossen.

Die Erstellung des Testkonzepts und der Testspezifikation sollten wir gemeinsam erarbeiten. Insbesondere bei der vorgängig notwendigen Definition von Use-Cases kommt es auf spezifische Zielgruppenkenntnis an, welche Sie in das Projektteam einbringen.

Projektabnahme und -abschluss

Die Validierung durch den Kunden ist die finale Testphase vor der Abnahme. Durch das iterative Entwicklungsvorgehen sind allenfalls kleine Nachbesserungen zu erwarten, die in einer Mängelliste dokumentiert werden. Die Kategorisierung der Mängel in unwesentliche und wesentliche sowie Terminierung zur Behebung erfolgt in einem Meeting.