Je travaille pour une organisation qui est à peu près une start-up au sein d'une grande entreprise. L'équipe a plusieurs ingénieurs de base de données et quelques ingénieurs logiciels (dans le champ Mining de données). Nous grandissons à un rythme rapide, ce qui met la nécessité d'avoir une stratégie d'architecture globale ou une feuille de route technologique (ou une boussole) pour les prochaines années. En tant qu'ingénieur de logiciel, la tâche a été attribuée à la mise hors tension des réunions bimensuelles pour diriger cette discussion. Donc, ma question est de savoir comment vous lancez votre rôle en tant qu'architecte? Comment commencez-vous une discussion d'architecture à l'échelle de l'organisation? J'ai commencé à lire le livre "97 choses que chaque architecte logiciel devrait savoir", mais j'aimerais entendre davantage de vos expériences. Ainsi, en tant qu'architecte, comment avez-vous commencé? P>
meilleures salutations, p>
5 Réponses :
Je n'ai pas personnellement eu cette expérience, mais voici quelques indices: P>
Ceci est moins d'expérience et plus de la pensée pratique. Tout d'abord, il est difficile de définir une architecture logicielle - une excellente référence au démarrage est toujours ' Les modèles de conception ont expliqué 'comme cela prend une approche non logicielle pour comprendre l'architecture. P>
Commencez à regarder des problèmes de base spécifiques d'architecture tels que p>
L'architecture ne consiste pas à éliminer la complexité plutôt qu'il s'agit de la gérer. Donc, commencez par comprendre les problèmes qui comprennent la complexité dans le contexte de votre projet P>
Ne commencez pas à parler de l'architecture avant de savoir ce que vous commencez. Ne commencez pas une discussion sur l'architecture jusqu'à ce que tout le monde ne le fait aussi. P>
bonne réponse, beaucoup mieux que mine =) +1
Concentrez-vous sur les exigences non fonctionnelles, et de là, essayez de choisir un modèle architectural. Une analyse de qualité logicielle sera utile. Je voudrais ensuite embellir sur le modèle et le décrire à l'équipe, sur la base des niveaux de granularité, ils sont intéressés. P>
Votre question est difficile parce qu'elle touche de nombreux domaines: processus, leadership et conception logicielle (ou architecture). Je vais supposer que vous avez déjà un processus standard, mais si vous n'essayez pas, essayez l'un des processus agiles. Je parlerai de leadership et de l'architecture logicielle. P>
À peu près, toute architecture peut être obligée de répondre à vos besoins. Par exemple, vous pouvez utiliser ROR pour construire un thermostat. Mais vous aurez un moment plus facile lorsque votre architecture est bonne ajustée pour les exigences. Parfois, vous aurez des exigences, telles que la latence d'interface utilisateur faible, qui peut être aidée par un choix d'architecture sage, comme utiliser Ajax. Donc, le début de votre projet est une occasion de penser à ces choses et de les faire correctement. (Et cela ne signifie pas que vous montez à la montagne, pensez difficile, puis dictez vos réponses à l'équipe - ici encore une fois, je favorise la collaboration). p>
N'ayez pas peur de penser à l'architecture à l'avance, surtout de la manière dont il peut vous aider à éviter les difficultés, mais n'essayez pas de décider à l'avance. Vous aurez des problèmes si une partie de votre équipe a commencé à utiliser Ruby sur Rails, tandis qu'une autre partie a commencé à utiliser EJB - ainsi de prendre des décisions techniques, celles qui sont forcées sur vous et celles qui répondront à vos plus grands risques. p>
Une dernière chose: Les discussions anticipées de l'architecture sont une bénédiction et une malédiction. Ils sont une bénédiction en ce sens qu'ils obtiennent des idées tôt et vous permettent de choisir Je recommande le chapitre 12 de Architecture de logiciels appliqués A > Pour guider votre question. La liste des rubriques donne une bonne idée de ses conseils: créer une vision, l'architecte en tant que consultant technique clé, l'architecte prend des décisions, les entraîneurs d'architecte, les coordonnées des architectes, les outils d'architecte, les avocats de l'architecte. 97 choses Réserver que vous mentionnez est plus un Collection de perles de sagesse plutôt qu'un guide cohérent de l'architecture. P>
George Fairbanks, auteur de juste assez d'architecture logicielle p>