Von der Vorbereitung des Projekts bis hin zu Produktivsetzung und Roll-Out der Software sichern, steuern und überwachen wir die Qualität in jedem einzelnen Schritt des Entwicklungszyklus.
Planung: Ermittlung des Bedarfs in der Foundation Phase
Das wichtigste Ziel jedes Softwareprojekts ist, dass es die Kundenerwartungen erfüllt. Deshalb starten wir jedes komplexe Entwicklungsprojekt bei Cegeka mit einer Foundation Phase. Im Rahmen einer Reihe von Workshops gewinnen wir hier ein gutes Verständnis für die Business Driver und definieren den Projektumfang – von den funktionalen sowie nicht funktionalen Anforderungen bis hin zu den technischen Anforderungen.
Erfahren Sie, warum das Wissen um die Business Driver wesentlich für erfolgreiche Software ist
Enge Zusammenarbeit und Feedback sind in dieser Phase entscheidend. Wir bitten unsere Kunden während des Assessments kontinuierlich um ihr Feedback. Dieses nutzen wir, um unseren Vorschlag zu verfeinern oder anzupassen, bevor wir in die nächste Phase übergehen. Das Ergebnis: das Vertrauen des Kundenteams, eine solide Basis für die Festlegung des Budgets und ein Leitfaden, an dem sich unser Team bei der Entwicklung der Lösung orientieren kann.
Von der Vorbereitung des Projekts bis hin zu Produktivsetzung und Roll-Out der Software sichern, steuern und überwachen wir die Qualität in jedem einzelnen Schritt des Entwicklungszyklus.
Softwareentwicklung: die Stärke von Continuous Testing
Nach dem Start der eigentlichen Implementierungsphase arbeiten unsere Softwareentwickler Hand in Hand mit dem Projektleiter und dem Kundenteam zusammen, um die Qualität der Lösung zu gewährleisten. Testen ist hierbei unerlässlich, da es uns hilft:
- Dafür zu sorgen, dass die entwickelte Software ihren funktionalen Zweck erfüllt: Um sicherzustellen, dass die Software den Anforderungen des Kunden entspricht, testen wir von Beginn an. Kontinuierliches und automatisiertes Testen ermöglicht es uns, Fehler oder Abweichungen vom Scope zu erkennen, ehe sie zum Problem werden. Und tritt doch ein Problem auf, werden wir sofort benachrichtigt. Unsere Kunden sind eng in diesen Prozess eingebunden: Sie können unsere Tests jederzeit validieren.
- Wartbarkeit zu gewährleisten: Große, komplexe Anwendungen sind zeitaufwändig und dementsprechend teuer. Daher gehen wir in Bezug auf Wartbarkeit und Zukunftssicherheit der Software keine Kompromisse ein. Mit Test-driven Development (TDD) stellen wir sicher, dass das System einfach zu warten ist. Zudem überwachen wir die Wartbarkeit mit Werkzeugen wie statischen Analysetools und wenden einen strukturierten Prozess zur Prüfung der Open-Source-Software an, die in unseren Entwicklungsprojekten zum Einsatz kommt.
Sie möchten mehr über die Wartbarkeit unserer Software erfahren?
Lesen Sie mehr über die Software, die wir für Ventouris entwickelt haben und die auch nach 15 Jahren noch zukunftssicher ist - Nicht funktionale Anforderungen zu überwachen: Neben der Wartbarkeit sind auch weitere nicht funktionale Anforderungen wie Performance, Skalierbarkeit, Verfügbarkeit, Sicherheit etc. entscheidend für die Qualität einer Software. Im Rahmen der Foundation Phase legen wir fest, auf welche nicht funktionalen Anforderungen wir uns fokussieren sollen. Anschließend erstellen wir Tests, um zu prüfen, ob das System diese Eigenschaften aufweist und sich wie gewünscht verhält.
Kontinuierliche, automatisierte Tests
Das Testen ist die zentrale Methode zur Messung aller Aspekte von Softwarequalität. Wir konzentrieren uns zunehmend auf kontinuierliche, automatisierte Tests, weil sie helfen, Fehler bereits in den frühesten Entwicklungsstadien aufzudecken. Der Aufbau und die Pflege einer automatisierten Testsuite sind zwar aufwändig, sparen auf Dauer aber viel Zeit.
Exzellente Software Delivery
Die Qualität von Software hängt von zwei Faktoren ab: umfangreiche Tests und eine exzellente Delivery. Die Entwickler der Cegeka Digital Factory wenden Design- und Kodierungsstandards konsequent an. Sie sorgen für eine klare Softwarearchitektur, schreiben sauberen Code, nutzen praxisnahe Entwicklungsmethoden und setzen Domain-driven Design (DDD) ein, wann immer es sinnvoll ist. Damit sich jeder Entwickler strikt an unsere Software Engineering Best Practices hält und qualitativ hochwertige Software erstellt, investieren wir viel in Schulungen.
Domain-driven Design
Bei Domain-driven Design geht es um mehr als Technologie oder Methodik. Es ist vielmehr ein Ansatz für die Umsetzung komplexer Software, der die Implementierung mit einem sich entwickelnden Modell der Domäne, d.h. dem fachlichen Anwendungsbereich der Software, verbindet. Hierbei wird eine einheitliche Terminologie angewandt, die das Entwicklungsteam und der Kunde/die Nutzer miteinander teilen. Das ist ein wichtiger Aspekt, da es zu diversen Problemen führen kann, wenn die in der Software verwendeten Begriffe nicht genau mit denen des Business übereinstimmen. Durch die Bereitstellung einer methodischen und terminologischen Struktur für Designentscheidungen beschleunigt Domain-driven Design Softwareprojekte in komplexen Domänen.
Prinzipien der agilen Softwareentwicklung: iterativ und inkrementell
Um Qualität in den Prozess zu integrieren, entwickeln wir in kleinen Schritten mit kurzen Iterationen.
- Iterativ: stoppen, evaluieren, weitermachen
Unsere Entwickler arbeiten in zweiwöchigen Sprints, d.h. alle zwei Wochen steht eine neue Version der Anwendung zum Testen bereit. Dank dieser Vorgehensweise können wir einfach und schnell Änderungen am Code vornehmen, wo immer sie benötigt werden – ohne den Zeitplan und das Budget zu stark zu beeinträchtigen. In regelmäßigen Abständen treffen wir uns mit dem Kundenteam, um die Prioritäten festzulegen, falls nötig, indem wir die finanzielle Auswirkung einer zusätzlichen Funktion oder eines gemeldeten Fehlers mit den Kosten für deren Entwicklung oder Behebung vergleichen. - Inkrementell: Klein anfangen und nach und nach verbessern
Softwareentwicklung beginnt immer mit einem funktionierenden „Skelett“ ('Walking Skeleton'): ein Basisdesign mit allen Funktionen, jedoch ohne Extras. Mit der Zeit verbessert unser Software-Team das Design dann in kleinen Schritten.
Kommunizieren und Feedback geben – darum geht es
Feedback und Kommunikation sind absolut entscheidend für den Erfolg eines Softwareentwicklungsprojekts. Wir arbeiten eng mit dem Kunden zusammen und geben uns kontinuierlich gegenseitig Feedback. Dieses Feedback hilft die Qualität des Codes erheblich zu verbessern, da die Entwickler die Software täglich prüfen und anpassen können. Im Ergebnis wird die Anwendung alle funktionalen und nicht funktionalen Anforderungen erfüllen und ist für viele, viele Jahre zukunftssicher.
Feedback und Kommunikation sind absolut entscheidend für den Erfolg eines Softwareentwicklungsprojekts. Wir arbeiten eng mit dem Kunden zusammen und geben uns kontinuierlich gegenseitig Feedback.
Lernen Sie unsere Cegeka Digital Factory kennen
Wenn es um die Entwicklung qualitativ hochwertiger Software geht, sind natürlich unsere Mitarbeiter mindestens ebenso wichtig wie unsere Methodik und Herangehensweise. Mit einer Kultur des kontinuierlichen Lernens stellen wir sicher, dass jeder im Team unsere Softwaredesign-Prinzipien anwendet und mit der neuesten Technologie Schritt hält. Machen Sie sich selbst ein Bild von unserer Digital Factory und erfahren Sie mehr darüber, wie unsere Teams arbeiten und Softwareentwicklungsprojekte erfolgreich umsetzen.