Agile Software-Entwicklung
Iterativ zum Go-Live ...
Wir entwickeln die Software in regelmäßigen Feedback-Schleifen gemeinsam mit dem Kunden. Denn es ist eher die Regel als die Ausnahme, dass sich, sobald ein Prototyp vorliegt, Anforderungen verändern und entwickeln. Wir sehen den ursprünglichen Plan als gute Basis, ein Projekt zu starten, zeigen aber so früh wie möglich Zwischenstände und stimmen in Sprint-Meetings die weitere Entwicklung mit Ihnen ab. Durch automatisierte Software-Tests sichern wir zudem die Funktionalität ab, sodass bei kontinuierlicher Weiterentwicklung nach dem Release bestehende Funktionalitäten erhalten bleiben und weiterhin ein schnelles & agiles Vorankommen möglich ist.
Agile Prinzipien
Agile Prinzipien haben zum Ziel, eine möglichst Kunden- und User-zentrierte Softwareentwicklung zu kultivieren. Kerngedanke ist, dass der Entwickler nicht unabhängig vom Kunden "im stillen Kämmerlein" arbeitet und erst am Ende den Kunden zum Testen des Resultats einbezieht, sondern möglichst früh funktionsfähige Software-Versionen mit dem Kunden austauscht und aus den Feedback-Schleifen sowohl Kunde als auch Entwickler profitieren.
Docker & Containerization
Unsere komplette Entwicklung läuft auf Docker. Dabei werden komplette Software-Komponenten als virtuelles Image mit allen Abhängigkeiten verwendet, die ohne eine Konfiguration des Hostsystems auskommen.
Jedes Projekt wird als Komposition verschiedener Images wie z.B. Datenbanken, Message-Brokern und Applikationslogik gestartet - immer in der richtigen Version. Somit können ähnliche Setups wie in der Entwicklung später auf dem Produktiv-Server realisiert werden, was die Reproduzierbarkeit, Zuverlässigkeit und Skalierbarkeit erhöht und gleichzeitig den Wartungs- und Konfigurationsaufwand für Systemadministratoren reduziert.
Automatisiertes Testing
Wir sehen Software nicht als temporäres Projekt, sondern als Produkt, das gepflegt und erweitert wird. Um die zahlreichen und komplexer werdenden Funktionen auch noch bei einem Update einige Jahre nach dem Go-Live sicherzustellen, setzen wir automatisierte Softwaretests ein, die Features vor Release prüfen. Dies kann in Form von API-Tests, Komponenten- und Unit-Tests oder End-to-End-Tests, bei denen mit einem Browser oder Smartphone-Emulator Nutzerverhalten simuliert wird, realisiert werden.
Go-Live
Nach dem Go-Live ist vor dem Go-Live. Wir warten die eingesetzten Software-Komponenten regelmäßig und installieren Sicherheitsupdates. Häufig entstehen nach Go-Live weitere Wünsche und Anforderungen, die wir in einer separaten Dev-Version für Sie umsetzen. Durch die automatisierten Tests bleiben bereits implementierte Features erhalten und der Release-Zyklus wird verkürzt.