Entwicklungsprozess | DevOps

Entwicklungsprozess | DevOps

Montag, 06.03.2017 11:02 Jörg Fechner

Wie hat man früher, teilweise auch heute noch, die Entwicklung von Software betrieben?

Was kann man heute machen?

Der Entwicklungsprozess - late of the 90s

Wie hat man früher, teilweise auch heute noch, die Entwicklung von Software betrieben?

Die Übermittlung wurde durch Telefonat, Mail, Brief oder Fax betrieben.

Eine Abstimmung mit dem Kunden war schwer und nie zeitnah. Häufig kam ein Tabellen-Tool mit einem Ampelsystem zum Einsatz. Diese Tabelle musste hin und her geschickt und von den "Projektleitern" gepflegt werden.

Im klassischen Ansatz wird ein Lasten- und Pflichtenheft erstellt, welches als Grundlage für das Projekt und schließlich für die Entwicklung dient. Wie sieht der klassische Prozess aus?

  • im günstigsten Fall sollen alle Anforderungen im Vornhinein beschrieben werden
  • Abtauchen in die Entwicklungsphase
  • Auftauchen für die Präsentation des Produktes
  • Frustration bei dem Kunden und Lieferanten, weil die Erwartungen nicht erfüllt sind

Und jetzt?

Der Prozess hat sich nicht geändert, nur seine Werkzeuge und Methoden.

Es ist völlig egal welches Bug-Tracking-Tool man benutzt. Hauptsache man benutzt eines!

Welche Alternative gibt es?

Wir, die e-ins Software GmbH, nehmen den Kunden direkt mit ins Boot. Zusammen werden wir die Anforderungen definieren und beschreiben.

Hierfür stellt die e-ins eine Anforderungsverwaltung zu Verfügung (YouTrack). Hier können Aufwandschätzung, bereits erfasste Stunden, die Anforderungsbeschreibung, Rückfragen und Status abgefragt werden.

Beispiel:

  1. Kunde möchte bei den Partnern eine Auswahlbox mit akademischen Titeln haben
  2. Kunde erfasst dies in YouTrack
  3. e-ins analysiert und bewertet die Aufgabe
  4. die Aufgabe wird zur Entwicklung freigegeben
  5. Entwickler nimmt sich die Aufgabe und legt los
  6. Ersteller der Aufgabe (Kunde) bekommt E-Mail über den Beginn
  7. falls es Rückfragen gibt, werden diese als Kommentar in YouTrack eingestellt und der Kunde bekommt eine Mail
  8. die Antwort wird eingestellt und der Entwickler bekommt eine Mail
  9. Entwickler schließt seine Arbeit ab
  10. der CodeBuild-Server lässt automatisierte Tests laufen. Sollte etwas nicht stimmen, bekommt der Entwickler eine Mail
  11. der Kunde kann alle Informationen auch am Ticket einsehen
  12. abends kann dann ein Release erzeugt werden und auf einem vorher definierten Test-Server eingespielt werden
  13. am nächsten Tag steht die gewünschte Funktion für den Kunden zum Test bereit und kann diese, nach erfolgtem Test, abnehmen

Tools

Wir nutzen bei unserer Entwicklung Produkte der Firma JetBrains. Das sind PhpStorm, YouTrack und Upsource.

Diese Tools greifen ineinander und unser Team hat immer eine ordentliche Einsicht in den aktuellen Entwicklungsstand. Diese Sicht stellen wir auch unseren Kunden zu Verfügung.

Weitere Pluspunkte:

  • Kommunikation hauptsächlich über YouTrack
  • alternativlos
    • für Planung und Realisierung
    • Qualitätskontrolle
  • Grundlage der Stundenerfassung / Rechnung

TDD und Continuous Integration

Wenn man das jetzt noch verfeinert, ergeben sich weitere Möglichkeiten der Entwicklung. Auf dem CI-Server laufen die Prüfung der Sourcen und die automatisierten Test (Unit-Test) ab.

  • Source Code
    • Überprüfung auf syntaktische Fehler
    • Überprüfung auf Verstoß gegen die Programmierrichtlinien
  • Validierung durch automatische Tests
  • Rückmeldung an Entwickler bzw. YouTrack

Danach wird automatisch der Build-Prozess angestoßen und das Ergebnis auf einem Test-Server zu Verfügung gestellt. Somit erhält der Kunde immer eine aktuelle, lauffähige Version des Produktes.

Hier das ganze in einer Übersicht

vorheriger Eintrag nächster Eintrag