C'est une question de logistique, pas une question technique.
Mon entreprise a sous-traité certains logiciels intégrés. Plus précisément, nous avons engagé un fournisseur pour développer un système intégré, car nous ne disposons pas des connaissances internes suffisantes pour le faire nous-mêmes (nous ne disposons que de développeurs d'applications de bureau).
Les sous-traitants ont donc terminé le logiciel et ils ont demandé s’ils pouvaient nous le livrer sur une machine virtuelle. La machine virtuelle est une machine Windows 8 contenant l'EDI CodeWarrior préconfiguré avec le code source sous forme de projet CodeWarrior. L'idée est que cela nous permettra d'apporter des modifications de code au sein de la machine virtuelle déjà configurée pour le développement ultérieur de ce projet.
Y a-t-il des inconvénients à le faire, par opposition à leur demander de nous expliquer comment configurer nos propres machines de développement pour apporter des modifications de code au projet? Le seul problème que je peux prévoir est le ralentissement de la machine virtuelle et le temps nécessaire pour reconstruire le projet lorsque nous apportons des modifications de code. Par contre, j'aime bien l'idée de créer un environnement de développement de système intégré préconfiguré pour ne pas avoir à ajouter un autre IDE sur la machine de développement de mon application de bureau.
Je ne peux pas vraiment penser à une bonne raison de ne pas accepter un produit livrable de machine virtuelle, mais je voulais simplement le faire fonctionner par cette communauté au cas où quelque chose me manquerait.
la source
Réponses:
Le problème que je vois est que la connaissance de la configuration et de la configuration de la machine virtuelle n’est pas interne, et si la configuration n’est pas triviale, vous ferez confiance à l’autre société lorsque le logiciel doit être configuré pour différentes versions de le système d'exploitation / bibliothèques / matériel / peu importe. Accepter la machine virtuelle est très bien pour être opérationnel plus rapidement, mais je voudrais insister sur la procédure à suivre pour configurer votre propre système pour une maintenance future.
la source
Je ne vois pas d'inconvénient majeur à cela, mais je dirais qu'accepter une VM avec le code source dessus devrait impliquer la même paranoïa que d'accepter une expédition d'une machine avec le logiciel et l'environnement de développement installé. Assurez-vous qu'il n'y a rien de mal installé sur la VM avant de la lancer dans un environnement ayant accès à votre réseau interne.
Si / quand vous avez la VM en marche, vous devriez être capable de plier le code source dans vos référentiels de code normaux, comme vous (probablement) l'auriez fait avec juste une archive de code source livrée.
la source
Je serais inquiet qu'il y ait quelque chose configuré dans la machine qui est non documenté, difficile à reproduire ou pas acceptable dans votre configuration standard.
Euh, mais je ne considère pas vraiment le développement effectué jusqu'à ce que le projet puisse être démontré pour construire à partir des machines de développement standard et déployé sur les serveurs / clients de base.
la source
Dans certains de mes projets, j'ai dû me battre pour que les logiciels soient livrés de cette façon. C'est un excellent format.
Assurez-vous:
Bénéfices supplémentaires:
Je dirais y aller.
la source
C'est vraiment le genre de chose qui aurait dû être réglée dans le contrat initial. Ils peuvent déjà aller au-dessus et au-delà. Je ne m'attendrais pas à recevoir des instructions de configuration sans payer un supplément, car cela demande plus de travail de leur part.
J'ai été dans une situation similaire à la vôtre avant. Notre environnement de développement est Windows / Cygwin et nous avons passé une semaine chez le fournisseur pour écrire du code d’interface avec nous. Ils utilisent principalement Linux, nous nous sommes donc organisés avec des machines virtuelles Linux pour la semaine où ils étaient ici. Cela a très bien fonctionné pendant leur séjour et nous n’avons eu que peu de difficultés à nous transférer sur Cygwin après leur départ.
Il me semble que vous sous-estimez vos propres capacités. Configurer un IDE n’est pas si difficile, même sans exemple de travail. Je serais plus préoccupé par la violation des contrats de licence Windows et CodeWarrior. Si vous possédez une licence appropriée, vous devriez pouvoir obtenir une assistance de Freescale pour tout problème d’installation.
la source
Comme FrustratedWithFormsDesigner l'a dit , vous devez savoir comment configurer la machine pour vous-même. Cependant, j'aimerais ajouter que vous pourriez éventuellement leur demander de fournir un script qui configure la machine pour vous, plutôt que la totalité d'une machine virtuelle. Si le script est suffisamment bien écrit, vous aurez une documentation exacte et à jour sur la configuration de la machine (en lisant le code source). Le script le fera pour vous, ce qui vous fera gagner du temps chaque fois que vous avez besoin d'un ordinateur. nouvelle machine.
Chocolatey est un outil que je teste pour aider à normaliser / automatiser la configuration d’une nouvelle machine Windows .
Vous pouvez potentiellement créer vos propres packages Chocolatey assez facilement, puis créer un script PowerShell qui installera et configurera pratiquement tout.
la source
Un environnement fonctionnant lentement ne devrait pas être un problème, il suffit de lui envoyer de la mémoire et du processeur. La surcharge de la VM moderne pour le type de bureau, comme la plupart des logiciels, est très petite, elle est économisée à de nombreuses reprises car elle n’a besoin d’aucune configuration lors du changement de matériel.
la source
J'aurais pensé que le contrat de développement stipulerait les livrables et les obligations de l'entrepreneur envers vous.
Au minimum, je demanderais une explication et une documentation de la manière dont la configuration fonctionne et de ce qui est vital au point que vous pouvez recréer le projet, le construire et le déployer vous-même.
Pour ce qui est d'avoir quelque chose de prêt, je pense que le VM est parfaitement acceptable.
Je voudrais certainement pousser pour la documentation si. Je n’en hésiterais pas car, à moins que vous ne compreniez parfaitement le fonctionnement de ce système, vous risqueriez de tomber dans un baril à l’avenir, en particulier si vous devez appuyer vous-même la demande.
la source
Même pour les systèmes embarqués développés en interne, il est important de disposer d’un document décrivant la procédure de configuration de l’environnement de compilation. Vous devez également archiver tous les fichiers binaires / installer les outils et les bibliothèques nécessaires à la configuration de l'environnement de construction.
la source
Je n'accepterais pas VM comme livrable de code car cela rend difficile la mise à jour. Vous devez avoir cette machine virtuelle comme une image en or pour effectuer le travail de développement. Cela rend plus difficile de faire des mods. Un développeur doit reformater ou obtenir une nouvelle machine, il doit installer une machine virtuelle et extraire la machine virtuelle.
Lorsque vous apportez des modifications, vous devez valider une nouvelle "copie d’or" de la machine virtuelle. Pourquoi voudriez-vous gérer un gros fichier binaire comme celui-ci dans le contrôle de code source? Il n'est pas possible de se différencier, et dans mon expérience d'essayer de contrôler le code source, une copie dorée de tout élément binaire ne se termine pas bien. À moins que vous ne puissiez contrôler strictement qui édite la copie d’or, vous obtiendrez des éléments non documentés dont personne ne sait rien.
Si un développeur souhaitait me livrer un logiciel sous cette forme, je trouverais un autre développeur. Cela me dit qu'ils ne sont pas assez professionnels pour écrire leurs dépendances ou tout au moins les documenter.
Je les aurais soit:
Créez un fichier texte qui sera archivé dans le contrôle de source avec le code. Il répertorie toutes les dépendances dont vous avez besoin pour que le projet soit opérationnel et qui ne font pas partie du référentiel de contrôle de code source (par exemple, CodeWarrior, quels que soient les outils de ligne de commande ou les autres applications externes dont vous dépendez).
Un script pour installer les dépendances. Puisque vous êtes sous Windows, il ne devrait pas être trop difficile de créer un script Chocolatey pour automatiser la configuration de l’environnement de développement. Toutes les dépendances que vous avez qui ne sont pas déjà des paquets chocolatés, vous pouvez les créer. Par exemple, vous pouvez installer des outils commerciaux lourds tels que Visual Studio et SQL Server via Chocolatey. Ces packages installent les versions d'évaluation complètes qui peuvent être déverrouillées en saisissant une clé de licence. Il est donc possible que la même chose soit faite avec CodeWarrior et toutes les autres dépendances dont vous disposez pour votre environnement de développement.
Peut-être que votre développeur est vraiment assez bon pour que vous souhaitiez toujours travailler avec lui / elle, mais n'est pas bon dans ce domaine d'automatisation. C'est bien aussi, si c'était le cas, je ferais moi-même la partie automatisation, en travaillant avec lui / elle pour identifier les dépendances et faire fonctionner le script, ou bien je chercherais un autre développeur doué pour l'automatisation. . Cela devrait être fait au début du projet. Une copie vierge et nue d'une machine virtuelle Win8 serait tout de même utile car vous pouvez l'utiliser pour tester votre script Chocolatey.
la source
Je ne pense pas que cela pose un problème, j'ai vu des systèmes de gestion de contenu s'installer en tant que machines virtuelles et, d'après ce que vous dites, les sous-traitants vous ont donné la possibilité de gérer et d'étendre l'application vous-même.
Cependant, comme d'autres afficheurs l'ont noté, je voudrais faire deux choses. Tout d'abord, assurez-vous que lorsque vous installez la machine virtuelle, placez-la sur une machine distincte de votre réseau. Vous ne voudriez pas télécharger un fichier EXE inconnu d’Internet et l’installer sur votre ordinateur.
Deuxièmement, si possible, conservez cette copie isolée comme référence pour définir la version interne. Je dis si possible parce que je ne connais pas les pressions commerciales que vous subissez. En fin de compte, ce sont les départements informatiques et les programmeurs de votre entreprise qui seront responsables de cette application. Donc, plus vous en savez, mieux c'est.
la source