Question

Dans mon expérience, le logiciel qui est bien aligné avec les processus d'affaires sont plus faciles à changer lorsque l'entreprise les processus changent. Quel type d'architecture est le mieux adapté à cette approche?

Était-ce utile?

La solution

Bonne question ... Mais d'abord ... SOA? C'est un grand mot à la mode, mais est souvent mal compris, en grande partie en raison de l'absence d'une définition « réelle ». Zut! même Martin Fowler se réfère maintenant comme « ServiceOrientedAmbiguity » et encourage les gens à éviter le porter du tout.

Il n'y a vraiment pas de " un " " meilleur " réponse. Les exigences imposées par les entreprises IT peuvent être; et sont généralement; assez varié. Ces demandes sont souvent influencées par des facteurs externes tels que les clients, les partenaires, les tendances du marché, la législation, la réglementation, etc. Dans de nombreux cas, ces pilotes dictent l'architecture, ou au moins compromis ou contraignent votre capacité à Acheive pleinement ce que vous sentez peut-être un « meilleur " architecture. Cela peut également son glib, mais ce n'est pas mon intention. L'idée qu'il existe une telle chose comme une architecture « best » a conduit beaucoup à continuer à perdre d'énormes quantités d'énergie (et d'argent) dans sa poursuite. Bien qu'il ne soit pas intentionnel, ces perspectives sont souvent soutenues par des gens qui sont devenus mandataires pour un seul fournisseur / communauté, ou êtes-vous un processus de vente en tant que produit.

Avec tout ce que dit ... du point de vue de l'ingénierie logicielle, les anciens principes demeurent les moyens les plus fiables pour vous assurer pouvez répondre aux demandes des entreprises. Par exemple,

  • Séparez vos préoccupations
  • Calque votre architecture
  • Conception avec flexibilité à l'esprit
  • couches de test dans l'isolement, puis les tester ensemble
  • Pratiques d'intégration Employ continue de faire une régression visible plus tôt
  • exigences et spécifications vos principaux moteurs
  • Investir dans l'outillage, investir dans vos développeurs
  • Etc ...

Notez qu'il n'y a aucune mention d'une architecture modèle, la technologie ou la langue ... c'est parce que ce ne sont pas vraiment les pilotes, bien qu'ils puissent être les facilitateurs et vont changer, compte tenu de divers facteurs. Permettez-moi d'un point de plus. « processus métier » et les processus d'ingénierie logicielle ont des préoccupations très différentes, la perspective, etc ... Obliger les deux groupes pour le même résultat que l'autre ne conduira à un échec total. Cela ne veut pas dire qu'ils ne doivent pas les engagements d'actions telles que les dates, les produits livrables fonctionnels, etc. Ces groupes doivent être différentes pour faire leur travail efficacement, mais certainement besoin de trouver des moyens de communiquer ces choses qui nécessitent une vision commune. C'est là un certain nombre de processus de conception et de gestion du cycle de vie peut vous aider. (Ex. DDD, MSF, SCRUM, CMMI, etc ...).

Je voulais dire que ce soit constructif ... espérons que cela aide.

Autres conseils

Glib réponse: une architecture d'entreprise.

Quel genre de réponse que vous cherchez vraiment? Dans mon expérience, chaque entreprise a des besoins uniques, en particulier en ce qui concerne les orientations qu'ils veulent évoluer. Modifiabilité est juste l'une des qualités souhaitables, en concurrence pour les ressources avec le contrôle des coûts, le temps sur le marché, l'efficacité, la sécurité, la facilité d'utilisation et la le reste du troupeau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top