Agile Software-(schnell)-Entwicklung im Solution Atelier

24.02.2024 | Quentin

Für viele mag die Verbindung von Technical Excellence und agiler Methodik nicht immer trivial sein. Deshalb versuche ich heute aus Sicht eines Software-Engineers zusammenzufassen, wie wir im Solution Atelier von avega arbeiten und uns technisch aufstellen, um agile Software-Entwicklung zu fördern und um für unsere Kunden das bestmögliche Ergebnis liefern zu können.

CI/CD

Continuous Integration und Continuous Delivery sind für uns selbstverständlich. Jedes neue Projekt wird mit einer CI/CD-Pipeline aufgebaut. Darin werden automatisierte Tests ausgeführt, was uns die nötige Sicherheit gibt, um die Applikation schnell weiterzuentwickeln und dabei die nötige Qualität sicherzustellen. Das Deployment ist darin ebenfalls enthalten. Am liebsten direkt bis in Produktion, auf Wunsch unserer Kunden aber auch gerne nach einer Freigabe in einer Entwicklungs- oder Teststufe. So finden neue Features schnell Eingang in die Code-Basis der Applikation und es wird durch die automatische Integration sichergestellt, dass diese nicht nur im Vakuum funktionieren, sondern auch zusammen mit anderen Features und in der gewünschten Zielumgebung.

Schnelle Feedbackzyklen

Die Nutzung von Cloud-Infrastruktur und Infrastructure-as-Code ermöglicht es uns, unsere Infrastruktur schnell für das Deployment über unsere CI/CD-Pipelines bereitzustellen. Durch regelmäßige Releases können wir unseren Kunden rasch funktionsfähige Applikationen präsentieren und ihnen somit die Möglichkeit geben, früh im Entwicklungsprozess Feedback zu geben. Wir können so über Fachlichkeit anstatt über Technik reden, was uns wiederum hilft, die Bedürfnisse unserer Kunden besser zu verstehen und ihnen die Software zu liefern, die sie tatsächlich brauchen. Dies kostengünstig und effizient. Wir sind davon überzeugt, dass die Transparenz über den Entwicklungsfortschritt und die Möglichkeit, die unsere Kunden dadurch erhalten, Änderungswünsche einzubringen, dazu führt, dass sie mehr für ihr Geld erhalten, als durch möglichst genaue Aufwandschätzungen (die so oft doch daneben liegen). Zusätzlich wird so auch das Risiko minimiert, Geld für Features auszugeben, die niemand braucht oder nicht wie gewünscht umgesetzt werden.

Embrace Change

Schnelles Entwickeln heisst für uns nicht technische Schulden ansammeln. Modulare Software (-Architektur), das Vermeiden von unnötiger Komplexität, lose Kopplung und leicht zu verstehender Code sind uns besonders wichtig. Nur so können wir sicherstellen, dass wir auch längerfristig auf Änderungswünsche unserer Kunden eingehen können. Denn diese Aspekte der Softwareentwicklung machen unsere Applikationen anpassungsfähig und erweiterbar. Das lässt uns Änderungen begrüssen, anstatt sie zu fürchten.

Reflect and Adjust

Wir machen im Solution Atelier von avega viel, um agile Software-Entwicklung nahe am Kunden zu ermöglichen. Aber noch viel wichtiger: Wir geben uns mit dem aktuellen Zustand nicht zufrieden und wissen, dass wir an verschiedenen Stellen noch besser werden können. Ganz im Sinne des agilen Grundgedankens “reflect and adjust” versuchen wir, aus unseren Projekten zu lernen, um uns stetig zu verbessern. Dies, indem wir unsere CI/CD-Pipelines optimieren, unsere Software immer effektiver mit Unittests abdecken oder interne Tools bauen und die Gelegenheit nutzen, um neue Plattformen auszuprobieren.

Vielfältiges Team

Wir sind ein kleines, aber sehr vielfältiges Team. Dieser Blog-Eintrag bezieht sich auf die technischen Aspekte der Software-Entwicklung. Da sind wir mit einem Entwicklungsteam, welches ein grosse Leidenschaft für die Software-Entwicklung und besonderes Know-How in bestimmten Spezialgebieten mitbringt, gut aufgestellt. Wir interessieren uns aber für die Spezialgebiete der anderen im Team und teilen gerne unser Wissen. Wir unterstützen mit unserem Team unsere Kunden auch bei der Business Analyse und im UX-Design. Überzeuge dich selbst, zum Beispiel mit dem Blog von Andy und Gabri: User Experience beim Projekt “Agenda 2030 für nachhaltige Entwicklung”.