Frage

Nach meiner Erfahrung Software, die gut mit den Geschäftsprozessen ausgerichtet ist, ist leichter zu ändern, wenn das Geschäft Veränderungsprozesse. Welche Art von Architektur ist am besten geeignet für diesen Ansatz?

War es hilfreich?

Lösung

Gute Frage ... Aber zuerst ... SOA? Das ist ein großer Buzzword wird aber oft falsch verstanden, vor allem wegen des Mangels an einem „echten“ Definition. Teufel! auch Martin Fowler bezieht sich jetzt auf sie als „ServiceOrientedAmbiguity“ und die Menschen zu vermeiden, fördert es bis überhaupt zu bringen.

Es gibt wirklich keine " eine " " am besten " Antwort. Die Anforderungen an die IT von Unternehmen platziert sein können; und in der Regel sind; Recht unterschiedlich. Diese Anforderungen werden häufig durch externe Treiber wie Kunden beeinflusst, Partner, Markttrends, Gesetzgebung, Behörden, usw. In vielen Fällen sind diese Treiber-Architektur diktieren, oder zumindest Kompromiss oder beschränken Sie Ihre Fähigkeit, voll acheive, was Sie fühlen könnte ein „besser sein " die Architektur. Das kann auch Sound glib, aber das ist nicht meine Absicht. Die Vorstellung, dass es so etwas wie eine „beste“ Architektur führt viele weiterhin große Mengen an Energie (und Geld) in seinem Streben zu verschwenden. Obwohl es nicht beabsichtigt sein kann, werden diese Perspektiven oft von Menschen unterstützt, die Proxies für einen einzigen Anbieter / Gemeinschaft geworden sind, oder Sie einen Prozess als ein Produkt verkaufen.

Mit allem, was gesagt ... von einer Software-Engineering-Perspektive, die alten Lehren weiterhin die zuverlässigste Mittel bleiben, um sicherzustellen, dass Sie Geschäftsanforderungen erfüllen können. Zum Beispiel:

  • Seperate Ihre Bedenken
  • Layer Ihre Architektur
  • Entwurf mit Flexibilität im Verstand
  • Testschichten isoliert und sie dann zusammen testen
  • Beschäftigen Continuous Integration Praktiken Regression sichtbar früher machen
  • Make Anforderungen und Spezifikationen Ihre primäre Treiber
  • Invest in Werkzeugbau, investieren in Ihre Entwickler
  • Etc ...

Hinweis gibt es keine Erwähnung von einer architektonischen Muster, Technologie oder Sprache ... Das ist, weil diese nicht wirklich die Fahrer, obwohl sie die Enabler sein können und werden eine Vielzahl von Faktoren gegeben ändern. Lassen Sie mich auf einen Punkt berühren. „Geschäftsprozesse“ und Software-Engineering-Prozesse haben sehr unterschiedliche Interessen, Perspektive, etc ... so oder Gruppe Erzwingen den gleiche Funktion wie die anderen nur völliges Versagen führen. Das ist nicht zu sagen, dass sie wie Daten nicht teilen Verpflichtungen sollten, funktionelle Leistungen usw. Diese Gruppen müssen unterschiedlich sein, ihre Arbeit effektiv zu erledigen, aber sicher müssen Wege finden, um diese Dinge zu kommunizieren, die eine gemeinsame Vision erfordern. Dies ist, wo eine beliebige Anzahl von Design und Lifecycle-Management-Prozesse helfen können. (Bsp. DDD, MSF, SCRUM, CMMI, etc ...).

Ich wollte diese konstruktiv sein ... hoffe, es hilft.

Andere Tipps

Glib Antwort: eine Unternehmensarchitektur.

Welche Art von Antwort suchen Sie wirklich? Nach meiner Erfahrung hat jedes Unternehmen individuelle Bedürfnisse, vor allem wenn es um die Richtungen sie entwickeln wollen kommt. Änderbarkeit nur eine der wünschenswerten Eigenschaften ist, um Ressourcen mit Kostenkontrolle im Wettbewerb, Markteinführungszeit, Effizienz, Sicherheit, Benutzerfreundlichkeit und die Rest der Herde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top