Architektur muss nicht kompliziert sein

Die Architektur Ihres Systems ist ein wesentlicher Erfolgsfaktor für Qualität, Wartbarkeit und Erweiterbarkeit. Sie bestimmt die Strukturen und Prinzipien, nach denen das System erstellt wird.

Ich unterstütze Sie bei der Anwendungsarchitektur von neuen System genauso wie bei der Verbesserung von Bestandssystemen (Legacy Systems).

Verschiedene Architektur-Werkzeuge

Warum ist Architektur wichtig?

Flexibilität

Ihr System müss in der Lage sein sich flexibel an geänderte Anforderungen und neue Technologien anzupassen.

Wiederverwendbarkeit

Gute Architektur fördert die Wiederverwendung von Komponenten und erleichtert damit die Entwicklung und Wartbarkeit von Software.

Zusammenarbeit

Eine gut definierte Architektur fördert die Zusammenarbeit im Team und trägt dazu bei, ein gemeinsames Verständnis für das System zu schaffen.

Wartbarkeit

Wartbarkeit spielt eine wichtige Rolle, um eine langläbigkeit der Software zu gewährleisten.

Skalierbarkeit

Durch eine solide Softwarearchitektur kann Ihr Systeme flexibel skalieren und auf wachsende Anforderungen reagieren.

Performance

Durch den richtigen Entwurf kann die Leistungsfähigkeit Ihres Systems optimiert werden.

Cloud-Native-Architektur

Diagramm einer Cloud-Architektur

Cloud-Native-Architekturen werden von Beginn an für die Cloud entworfen. Sie nutzten Vorteile wie Kosteneffizienz, Flexibilität und Skalierbarkeit durch den Einsatz von PaaS- und IaaS-Diensten in der Cloud.

Ich kann Ihnen helfen, diese Vorteile zu nutzen, ohne in einen Vendor-Lock-In zu kommen oder den Datenschutz zu vernachlässigen.

Jahre Erfahrung

Entwicklern geholfen

Erfolgreiche Projekte

So helfe ich Ihnen

Architekturevaluierung

Im Zuge einer Architekturevaluierung wird mit Hilfe von bewerten Standards die Ist-Architektur auf bestimmte Qualitätsmerkmale untersucht. So können Abweichungen zur Soll-Architektur, potentielle Risiken, Schwächen und Verbesserungspotenziale gefunden.

Aus diesen Erkenntnissen leiten wir konkrete Aktionen ab, um die Verbesserungen auch in der Praxis umzusetzen und die Ist- und Soll-Architektur näher heranzuführen. Dabei sprechen wir auch über langfriste Maßnahmen, um die Qualität langfristig sicherzustellen.

Anforderungen und Modellierung

Anforderungen sind die Grundlagen jeder Software. Dabei spielen neben den funktionalen Anforderungen vor allem die Qualitätsanforderungen eine entscheidende Rolle für die Architektur.

Zur Ermittlung der Anforderungen verwende ich Techniken wie Stakeholder-Interviews, Brainstorming oder Anforderungsworkshops. Auch kollaborative Modellierungstechniken wie Event Storming, Context Mapping oder Business Model Canvas kommen der richtigen Situation zum Einsatz. 

Architekturentwicklung

Bei der Architekturentwicklung wird die konkrete Architektur anhand Ihrer Anforderungen erstellt. Es werden Strukturen festgelegt, das System anhand von fachlichen und technischen Zuständigkeiten zerlegt, Querschnittskonzepte definiert, Prinzipien festgelegt und Muster ausgewählt.

Dabei lege ich wert auf eine strukturierte Herleitung der Architekturentscheidungen. Dies gewährleistet Nachvollziehbarkeit, sowie Transparenz und erklärt wie eine Architektur entstanden ist.

Implementierung

Jede Architektur muss auch umgesetzt werden. Deshalb begleite ich Sie auch bei der Implementierung Ihres Systems und arbeite operativ in der Entwicklung mit. Das kann von der Umsetzung architekturkritischer Komponenten, bis hin zum Pair Programming für den Wissenstransfer gehen.

In meiner Berufslaufbahn habe ich viel Erfahrung mit C# im Kontext verschiedener .NET-Varianten sammeln können. Ebenso habe ich viele Jahre mit Sprachen wie JavaScript, Python und PHP gearbeitet.

Risikoanalyse

Durch Risikoanalyse können Sie Risiken frühzeitig finden und Gegenmaßnahmen entwickeln, bevor sie zum Problem werden. Die gefunden Risiken sind ebenso Einflussfaktoren für viele Architekturentscheidungen.

Grundlage ist hierbei die Risikoidentifikation, um überhaupt zu wissen, welche Risiken relevant sind. Ich wende dabei verschiedene Methoden zur Identifikation an, um einen möglichst breiten Blick zu erhalten. Gemeinsam erarbeiten wir Maßnahmen, wie wir diese Risiken in Einklang mit Ihren Geschäftszielen beseitigen können.

Schulungen

Am besten funktioniert Architektur, wenn sie von allen Beteiligten verstanden und in weiterer Folge umgesetzt wird. Dazu ist es aber wichtig, das entsprechende Fachwissen ins Team zu bekommen.

Die Methodenschulung Certified Professional for Software Architecture (CPSA) der iSAQB® ist dazu bestens geeignet. Mit Software Quality Labs Academy kann ich Ihnen das Foundation Level so wie ausgewählte Advanced Level-Module anbieten. Weiters kann ich Ihnen auch Schulen für Softwaretesting und Requirements Engineering anbieten.

Bereit für den ersten Schritt?

Sind Sie bereit, Ihre Softwarelösungen auf die nächste Ebene zu bringen? Kommen wir ins Gespräch und legen wir gemeinsam den Weg zum Erfolg für Ihre Software fest.

Ereignisgetriebene Architektur

Ereignisgetriebene Architektur

Ereignisse sind Zustandsänderungen einer Entität, die von einer Komponente erfasst und an andere Komponenten mittels einer Nachricht weitergeleitet werden kann. Die Zustellung der Nachricht übernimmt dabei ein Event Broker.

Eine Ereignisgetriebene Architektur erlaubte ein lose gekoppeltes System zu erzeugen, dass Skalierbarkeit und Veränderung unterstützt.

Domain-Driven-Design

Domain-Driven Design ist eine praxiserprobte Vorgehensweise, um komplexe Domänen durch enge Zusammenarbeit zwischen Fachexperten und Softwareentwicklern zu modellieren. Dabei bringt Domain-Driven Design viele Werkzeuge mit, um den strategischen und taktischen Entwurf eines System zu machen.

Die praktische Umsetzung Domain-Driven Design birgt einige Herausforderungen, die ich mit Ihnen gemeinsam angehen und meistern kann.

Context Map verschiedener Domänen

Ressourcen

Blogartikel

In meinem Blog finden Sie viele Artikel zur Softwarearchitektur.