Posts mit dem Label Architektur werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Architektur werden angezeigt. Alle Posts anzeigen

Montag, 7. Januar 2013

Kommunikationsstruktur sticht Architektur

Wer definiert die Architektur?
CC M.C.Escher: "Relativiteit", Juli 1953
Quizfrage: Wer hat den größten Einfluss auf die Architektur einer Software?
  • Die Enterprisearchitekten, die organisationsweite und softwaresystemübergreifende Entscheidungen treffen (wie z.B. die Einführung von SOA im gesamten Unternehmen)?
  • Die Solutionsarchitekten, die die Architekturentscheidungen für applikationsübergreifende Softwaresysteme treffen (wie z.B. die Verwendung von Domain-Driven Design)?
  • Die Applikationsarchitekten, die die Architektur der einzelnen Applikationen definieren (wie z.B. die Verwendung von Hibernate für den Zugriff auf die DB)?
  • Die Entwickler, die die Architektur schlussendlich umsetzen - potentiell anders, als durch alle vorangegangenen Architekten definiert?
Falsch geraten. Gemäß des Gesetzes von Conway hat die Kommunikationsstruktur der die Software umsetzenden Organisation den größten Einfluss auf die Architektur der Software.

Freitag, 5. Oktober 2012

Java Architekten im Elfenbeinturm und Maulwurfshügel

Was sieht man von dort oben?
CC-BY-SA - peperoni -
Java Architekten nennen sich viele, doch werden sie auch wirklich ihrer Rolle gerecht? Die einen fühlen sich zuständig für die Definition der High-Level-Architektur sämtlicher Software, die in ihrem Unternehmen entwickelt wird. Sie nennen sich selbst "Enterprise Architekt", andere nennen sie "Theoretiker" und behaupten sie säßen im Elfenbeinturm. Andere wiederum definieren die detaillierte Architektur einzelner Applikationen, deren Schichten, Komponenten, interne und externe Schnittstellen sowie zu verwendende Frameworks. Sie nennen sich selbst "Systemarchitekt" oder "Applikationsarchitekt", andere nennen sie "kurzsichtig" und "technologiegeil" und behaupten, sie sehen die Aufgaben vor lauter Tools nicht.

Architekten laufen Gefahr abzuheben (die Architektur ausschließlich aus der 10.000 Meter = applikationsübergreifenden Perspektive zu betrachten) oder unterzutauchen (die Architektur ausschließlich aus der Maulwurfs = Framework Perspektive betrachten).

Nein liebe Enterprise Architekten, SOA, MDA, Cloud-Computing sind keine Architekturkonzepte die einfach so und überall funktionieren, und liebe Applikationsarchitekten, Spring, OSGi, JSF ... sind keine Architekturkonzepte und bringen in der Praxis oft mehr Nachteile als Vorteile. Dogfooding und ein bisschen mehr Reflexion über den tatsächlichen Nutzen ihrer Architekturentscheidungen würde vielen Architekten gut bekommen.

Freitag, 10. Februar 2012

Quality Gates bei Java Entwicklung

Quality Gates in der Softwareentwicklung
CC-BY-SA Wikipedia
Die einzige Maßnahme, die die Qualität einer Software sicherstellen kann ist die Einführung von Quality Gates. Alle anderen "Qualitätssicherungsmaßnahmen" wie Pair Programming, Tests, Metriken etc. können die Qualität aufzeigen oder auch verbessern, aber niemals sicherstellen.
"Quality Gates sind Punkte im Ablauf eines Entwicklungsprojekts, bei denen anhand von im Voraus eindeutig bestimmten Qualitätskriterien über die Freigabe des nächsten Projektschrittes entschieden wird." - Jochen Peter Sondermann: Interne Qualitätsanforderungen und Anforderungsbewertung in Handbuch Qualitätsmanagement
"Freigabe des nächsten Projektschrittes" - das ist in der Softwareentwicklung die entscheidende Herausforderung.

web analytics