:Bei absoluter Design / Architekturfreiheit macht es Sinn, vor der Implementierung alternative Architekturen zu erarbeiten und deren Vor- und Nachteile- zu diskutieren. Vielleicht kann ich ArchiteturSpikes? dazu sagen. Als Ergebnis habe ich dann eine geeignete Architektur in den Händen, bei XP gibt's hier bereits ausführ- und test-barer Code. |
:Bei absoluter Design / Architekturfreiheit macht es Sinn, vor der Implementierung alternative Architekturen zu erarbeiten und deren Vor- und Nachteile- zu diskutieren. Vielleicht kann ich ArchitekturSpikes? dazu sagen. Als Ergebnis habe ich dann eine geeignete Architektur in den Händen, bei XP gibt's hier bereits ausführ- und test-barer Code. |
::::Ich stimm Dir da zu, allerdings ist eine einfache und orthogonale Schnittstelle für mich eine selbstverständliche Vorraussetzung. Allerdings kann hinter einer schönen Schnittstelle auch völliger Murks implementiert sein (ich hab gerade so ein Fall, Refactoring auf einem Pascal-Ein Modul-15 Methoden-10T Zeilen-Moloch, da fange ich mit den Schnittstellen an ...) -- mj |
::::Jain, einerseits hast du recht, andererseits nicht. Ich weiss nicht, ob du die OpenSource Diskusionen mitverfolgt hast, aber ein Ergebniss war, dass man mit der Ressource Tester und freiwillige Nutzer sorgsam umgehen muss. Der Deal ist, ich biete Funktionalität und Stabilität der Anwenderkreis bietet Feedback und evtl Mitarbeit. So verhält es sich meiner Erfahrung nach auch im kommerziellen Umfeld, nur kann ich mir mit Geld in gewissem Mass Aufmerksamkeit kaufen. Desshalb ist es eine Gratwanderung wieviel solche Änderungen ich machen kann, ohne den Goodwill der Nutzer zu verlieren. ::::Das Ergebniss dieser Gratwanderung ist übrigens der Grund wesshalb ich von grüne Wiese Frameworks nichts halte. Frameworks sollten nach meinem Dafürhalten aus dem täglichen Gebrauch extrahiert / refactored werden, nur dann ist der Code schon oft eingesetzt und getestet worden, bevor er in einem Framework fixiert wird. -- mj |
::::Wo liefert XP eine starke Entkopplung vom Design ? Ich dachte das Design passiert natlos beim Entwickeln ?? ::::Ich entkopple das Design und setze zur Implementierung natürlich XP ein (wenn irgend möglich). Wenn die Schnittstelle wackelt haben die Benutzer mehr Arbeit und ich muss mir Ihren Goodwill dabei irgendwie erhalten -- das sind die Kosten (nicht immer nur Geld aber umrechenbar ?). |
::::Ja, aber dann müsste ich dich danach umbringen :-)) ::::Im Ernst, das ist ein Bauchgefühl, das ich aber begründen kann. ::::Wenn ein Framework extern genutzt wird ist das kein XP-Projekt mehr. Die Hersteller und Benutzer eines Frameworks sitzen und entwickeln getrennt. Ein Refactoring beim Framework (beim Hersteller) kann nicht mehr alle Codeinstanzen (beim Benutzer) mit umfassen. Infolgedessen sind verschiedene Frameworkversionen im Einsatz und müssen seperat gewartet werden (Wartung um den Goodwill zu erhalten ...). Die Kommunikation ist nicht mehr so einfach und findet meist in Schriftform statt, so können schneller Missverständnisse passieren. Das sind so die Nachteile die mir jetzt auf Anhieb einfallen. ::::Meine ganze Argumentation ziehlt auf extern genutzte Frameworks. Für interne Frameworks hast eher du recht, aber auch zwischen internen Abteilungen gibt es immer noch den Goodwill-Faktor :-) -- mj |
:Das Ergebnis ist eine reifere Architekur und eine klare Abschätzung wo die Risiken stecken. Im nächsten Schritt werden dann die Risiken mit Spikes (sowas kommt aber auch schon während der Architektur vor, um pessimistische Tester zu überzeugen) eliminiert (theoretisch zumindest). |
:Das Ergebnis ist eine reifere Architekur und eine klare Abschätzung wo die Risiken stecken. Im nächsten Schritt werden dann die Risiken mit Spikes (sowas kommt aber auch schon während der Architektur vor, um pessimistische Tester zu überzeugen) eliminiert (so die Theorie). |
Kannst Du etwas genauer ausführen, in welcher Form und in welchem Umfang Du das tust? Wir befinden uns nämlich teilweise in der Situation, eine API für unsere Kunden zur Verfügung stellen zu müssen und bin mir noch nicht ganz schlüssig, wie damit umzugehen ist. Bin für jeden Hinweis dankbar... :-) -- ip