Je participerai dans un projet où toute la conception du logiciel est faite par une équipe locale et ces conceptions sont envoyées à une équipe offshore pour le codage.
C'est la première fois que je suis confronté à un projet avec ces caractéristiques et pour moi, il se sent un peu impair: les gestionnaires s'attendent à ce que nous fabriquons des documents de conception très détaillés, il n'ya donc aucun espace pour l'erreur pour l'équipe offshore; De mon point de vue, ils nous font de la codage en papier pendant que nous pouvons le faire dans une IDE.
Donc, ma question est que cette approche est bonne, ou prouvée non? Quelles sont les principales considérations que notre processus logiciel doit avoir à réussir dans notre projet?
C'est ce qu'on appelle grand design à l'avant, aka cascade. Ce n'est pas largement considéré comme une méthodologie très réussie. Mais je l'ai vu travailler et quand cela fonctionne, cela fonctionne très bien. C'est très cher de faire raison.
C'est aussi ce que vos employeurs vous ont demandé de faire.
Les équipes offshore ne fonctionnent pas comme les équipes à terre. Vous devez être très très précis sur ce que vous voulez, sinon vous n'obtiendrez pas ce que vous voulez.
Le dernier projet J'ai été le concepteur de logiciels. Tout le développement était offshore. Nous avons réussi. Donc, ce processus peut fonctionner.
J'ai produit beaucoup de documentation, mais ce n'est en aucun cas complet et pas à pas d'instructions étape par étape ni détaillé aux noms de classe, les noms de fonction, etc. Par exemple, j'ai produit des diagrammes de séquence, de l'étui d'utilisation, des flux de travail, du système et de l'intégration. Diragrams, ainsi qu'une documentation de conception plus détaillée selon les besoins.
Cela dépend vraiment de combien vous faites confiance au développement offshore. Je fais confiance à mon équipe offshore pour devenir des développeurs compétents. Cela dit, j'ai fourni une direction générale mais leur a donné une marge de manœuvre à mettre en œuvre laquelle l'équipe offshore a trouvé agréablement satisfaisante. Dans le passé, ils étaient plus micro-gérés. Dans certaines situations, je les guiderais en utilisant les modèles de conception au besoin. J'ai également régulièrement effectué des examens et des analyses de code sur le code qu'ils ont écrites et vous conseilleraient de refactoriser ou de nettoyer les efforts. De plus, étant donné qu'une partie de l'équipe avait des accidents avec des véhicules de loisirs, j'ai fini par coder certaines des histoires lors de la mise en œuvre, car nous avons fini par être courte sur certaines ressources.
De plus, je pense que ce processus ne réussit vraiment que la force de votre (s) responsable technique sur le projet et la communication entre les entreprises, les concepteurs, les prospects et les développeurs. Nous avons passé beaucoup de temps à faire face à chaque fonctionnalité et à une histoire et nous nous sommes assurés que les dirigeants/ressources offshore étaient bien versé à quelles étaient les exigences. S'ils ne posent pas de questions lors de l'examen de la fonctionnalité/de l'histoire, attendez-vous à des problèmes. Le travail n'a également pas été considéré comme complet avant qu'il y ait une signature commerciale. Cela a donc rendu tout le monde responsable car tout a été suivi dans un outil qui gère le développement agile.
Comme l'une des autres réponses a déjà fait allusion, le processus de développement comprenait des normes de dénomination (règles de Restomes intégrées), la couverture de cas de test (elle utilisait TDD, moqueur, etc.), donc s'il y a un bon processus de codage et une bonne procédure en place, il augmentera vos chances pour un projet réussi.
Je pense que dans une certaine mesure, nous travaillons tous comme ça. Quelqu'un quelque chose conçoit quelque chose et nous codons quelque chose qui fait partie de ou travaille avec le système. Les exemples sont des applications de construction basées sur un cadre, telles que des applications non-jeu sur des appareils mobiles. Beaucoup de décision de l'interface utilisateur a été prise par l'équipe de conception des personnes qui ont construit le cadre. Ils contrôlaient tout d'apprendre à écrire une application pour vendre votre application. Si vous souhaitez regarder pourquoi ce modèle a réussi, il suffit de regarder la quantité de documentation et d'outils fournis par certains fournisseurs.
Un autre exemple est les applications Web avec beaucoup d'entre eux essayant d'implémenter =REST = style. Celui-ci ne dit pas vraiment comment implémenter quelque chose, bien que des spécifications sur la manière d'utiliser HTTP. Quoi qu'il en soit, sont des spécifications et des principes directeurs à suivre. Si vous voyez le nombre de discussions sur REST Mise en œuvre sur Stackexchange ou en milieu de travail, c'est comme s'il y avait un architecte qui dit aux gens de mettre en œuvre quelque chose de quelque manière que ce soit. C'est toujours un Succèsful modèle, je pense, avec tant de gens qui suivent le style.
De ces deux exemples, vous pouvez voir comment les conceptions sont propagées, certaines comme spécifications de papier, d'autres viennent avec des livres, des outils et des exemples. Vous pouvez voir comment les gens demandent (en volume), en essayant de comprendre le droit de comprendre différents degrés en fonction des normes/designs qu'ils essaient de suivre. Aller à Stackoverflow et regarder;)
Si vous me donnez votre spécification, je vais demander. Si vous me donnez un test de l'unité, je vais coder et tester.