Methoden sind Werkzeuge, keine Religion
Wir wählen Vorgehen und Werkzeuge nach Aufgabe, Risiko und Projektumfeld.
Entscheidend ist nicht, einem bestimmten Methodenmodell möglichst vollständig
zu folgen, sondern die für das Projekt geeigneten Elemente konsequent und
nachvollziehbar einzusetzen.

Analyse und Modellbildung
Komplexe Aufgaben beginnen für uns mit dem Verständnis des Systems:
Anforderungen, Randbedingungen, Abhängigkeiten, Zustände und Annahmen werden
sichtbar gemacht. Wo es sinnvoll ist, messen und modellieren wir, statt nur
zu vermuten.

Architektur und Design
Strukturierung komplexer Systeme, Schnittstellen- und Datenflussanalyse,
Abstraktionsbildung, Entwurfsmuster, objektorientierte Analyse und Design,
UML sowie die Bewertung nichtfunktionaler Anforderungen.

Fehleranalyse und Root Cause Analysis
Reproduzierbare Testfälle, schrittweise Eingrenzung über System- und
Abstraktionsgrenzen hinweg, Analyse von Logs und Zuständen sowie Überprüfung
von Hypothesen durch Messung und gezielte Experimente.

Systemintegration und Migration
Schrittweise Modernisierung und Integration heterogener Systeme,
Schnittstellenkonzeption, Koexistenz von Alt- und Neusystemen,
Migrationsplanung, Rückfallstrategien und kontrollierte Inbetriebnahme.

Qualitätssicherung
Konstruktive und analytische Qualitätssicherung, Reviews, automatisierte
Tests, Regressionstests, Versionsverwaltung, reproduzierbare Builds sowie
Beobachtbarkeit und Diagnosefähigkeit im späteren Betrieb.

Projektvorgehen
Je nach Kontext arbeiten wir klassisch, iterativ oder agil. Wir haben Erfahrung
mit Wasserfallmodellen, Scrum, testgetriebener Entwicklung und Mischformen.
Wichtiger als das Etikett sind klare Verantwortlichkeiten, kurze
Rückkopplungsschleifen und überprüfbare Ergebnisse.

Technologieauswahl
Neue Technologien werden anhand ihres Nutzens für die konkrete Aufgabe bewertet.
Neben Funktionalität betrachten wir dabei insbesondere Komplexität,
Betriebsfähigkeit, Sicherheitsmodell, Abhängigkeiten und langfristige
Beherrschbarkeit.