Je suis chef de projet dans mon entreprise. Je travaille avec quelques équipes de développeurs utilisant un système de contrôle de version standard bien connu appelé CVS. J'aimerais que l'intégration continue et les builds automatisés soient mis en œuvre pour aider à prévenir les problèmes de rupture de build et les mauvais déploiements se faufilant sur les serveurs de production.
Je suis sûr que je peux le configurer moi-même, mais je ne veux pas le faire moi-même pour deux raisons:
Je n'ai pas le temps pour ça. J'ai mes propres responsabilités, qui comprennent le marketing, la communication avec les autres parties prenantes avec les membres de l'équipe ne faisant pas partie du développement, la communication avec les clients et la planification de projet.
Plus important encore, je suis le chef de projet. Mon but est de fournir du leadership, pas de micro-gérer l'équipe de développement .
Quelles sont les choses que je peux faire pour trouver quelqu'un dans l'équipe de développement qui serait passionné par la mise en place de cela? Un développeur est-il la bonne personne pour cette tâche, étant donné que cela nécessite une connaissance de Java, Spring et Google App Engine? Quels sont quelques conseils pour aider à promouvoir le changement là où le changement est redouté?
Réponses:
Je chercherais d'abord quelques possibilités. Par exemple, Hudson est un serveur d'intégration continue plutôt populaire et extrêmement flexible. Vous pouvez envoyer un e-mail à votre équipe de développement avec quelque chose comme ceci:
Cette approche présente les avantages suivants:
Dans mon scénario simulé, a
Dave
été sélectionné car il a le moins dans son assiette et n'aurait probablement aucun problème à configurer un nouveau serveur. Selon la charge de travail, il seDave
peut que ce soit vous. C'est tellement subjectif que je le mentionne simplement. Vous ne pouvez pas toujours le dire,not my job to do that
surtout si vous êtes le seul à avoir le temps de le faire. Si tout le monde tire déjà avec le temps, sa perception de votre volonté d'aider devient plus importante. Jauger c'est une compétence que vous développez au fil du temps.Dans tous les cas, vous aurez soit un serveur CIS d'ici vendredi, soit des détails sur les raisons pour lesquelles cela n'est tout simplement pas possible sans un jeu de mains supplémentaire.
la source
not my job
carte pour me retirer du travail, mais parce qu'il est facile pour les chefs de projet de s'impliquer parfois trop dans ce que fait l'équipe de développement. En déléguant cela au développement, je leur donne le contrôle et règne. De plus, s'ils se chargent de la configuration, ils l'utiliseront plus probablement, alors que si je la configure, j'aurai une belle expérience d'apprentissage sur la façon de configurer l'intégration continue mais sans retour sur investissement et le coût d'opportunité de donner sur mes autres tâches. De plus, l'exemple d'e-mail est très utile :) +1Je vois que cela va de trois manières possibles:
Demandez à quelqu'un dans l'équipe de développement de faire une évaluation rapide des outils possibles et de lui faire concocter quelque chose rapidement. Si vos projets individuels ont des scripts de construction appropriés en place (c'est-à-dire que vous pouvez créer les projets en dehors de l'EDI), il devrait être assez rapide de les raccorder au CI.
Traitez l'infrastructure de construction comme un projet interne au sein de votre équipe et gérez-la en tant que telle. Un peu plus impliqué que le premier point, mais s'il est bien fait, vous obtiendrez un meilleur système. La diffusion des connaissances au sein de l'équipe réduira également le risque de sur-spécialisation mentionné ci-dessous. Vous bénéficiez également des avantages de l'examen par les pairs. Cependant, certains programmeurs peuvent percevoir cette tâche comme dégradante et, en tant que telle, ne pas y consacrer autant d'argent qu'ils le devraient.
Embauchez un développeur en tant que maître de la construction et demandez-lui de configurer tous les outils. Ensuite, continuez à l'utiliser pour améliorer le système, ajoutez des métriques, la génération automatisée de documents, les tests automatisés, etc. C'est plus coûteux, mais s'il est bien fait, les investissements dans cette personne seront très rapidement rentabilisés en augmentant l'efficacité de votre équipe de développement. Cette personne doit maîtriser les langages et les frameworks utilisés par votre équipe et avoir le désir de les coller dans un système. D'un autre côté (à partir des commentaires), cela peut ne pas être dans votre budget et la création d'un poste spécialisé pourrait conduire à une solution sous-documentée qui peut rendre les transitions difficiles.
Cela dit, avant de commencer quoi que ce soit, assurez-vous de ce que vous en voulez vraiment. Votre question manque un peu de détails pour vous orienter dans la bonne direction technique. Vous devez savoir quels gains vous souhaitez réaliser en utilisant de tels outils, vous avez besoin d'une vision générale du système souhaité. On peut faire un long chemin dans la création d'un environnement qui lie tout cela, mais sans plan directeur pour construire contre vous, vous pouvez également exécuter des cercles et rendre les choses plus compliquées que ce qu'elles sont déjà.
Un manager que j'avais dit un jour que les outils sont bons mais sans processus ils sont inutiles. Je souhaite seulement qu'il ait suivi ce qu'il a dit quand le moment serait venu de les mettre en place ...
Donc, si vous décidez d'embaucher quelqu'un, il y a des avantages certains à obtenir un programmeur plutôt que quelqu'un avec une formation plus ITish. Le point principal est que cette personne peut passer du temps et de l'énergie à créer le code de la colle et les plugins qui intégreront les différents systèmes ensemble dans un système cohérent.
J'espère que cela a aidé
la source
Si vous avez un rôle de leadership, il vous incombe d'identifier les composants / pratiques manquants et votre responsabilité de les voir correctement mis en œuvre. La tâche de mise en œuvre peut être déléguée ou non, mais en fin de compte, c'est la responsabilité des dirigeants.
La clé de l'acceptation est de comprendre, ou du moins de vous faire bénéficier du doute. Vous pouvez parler de ce que vous voulez faire et évoquer les coûts et les avantages. Si la discussion n'amène pas à la compréhension, vous pouvez compter sur leur confiance dans vos décisions, mais seulement si vous avez construit ce type de repoire.
Si votre délégation fait face à des contraintes de temps en matière d'expertise, évoquez-la lors d'un stand up ou d'une réunion d'équipe et demandez un volontaire. Si personne ne vient, attribuez-le simplement comme vous le feriez pour tout autre travail.
mise à jour:
Il existe une structure organisationnelle au sein de chaque entreprise. Un rôle de leadership est responsable des ressources à ce niveau. Ils ont également la responsabilité de signaler et de résoudre tout problème. Ils peuvent avoir besoin de ressources supplémentaires et / ou de suggestions à quel point vous remontez la chaîne. Si vous pouvez résoudre le problème, vous avez la possibilité de mettre en œuvre une solution vous-même ou de déléguer. Cela peut et doit impliquer directement les personnes concernées, idéalement en collaboration avec elles.
Je ne peux pas dire que le niveau de directeur et les postes supérieurs ne devraient jamais être directement responsables d'une personne ou d'un groupe particulier dans une entreprise. Cela dépend vraiment de la structure organisationnelle de l'entreprise. J'ai travaillé dans des start-ups où le CTO était directement responsable des développeurs et des testeurs. Dans une grande entreprise plus traditionnelle, la gestion à ce niveau n'aurait pas la visibilité ou la familiarité requises pour prendre les décisions appropriées à ces niveaux inférieurs.
la source
Je suis principalement développeur, et je l'installe quand je le peux (c'est-à-dire lorsque je ne suis pas expressément interdit de le faire). En général, comme je travaille dans des boutiques .NET, je choisis CruiseControl.NET car il est open source, fonctionne avec la plupart des principaux systèmes de contrôle de source et est relativement facile à utiliser. J'ai toujours voulu créer un orbe ambiant comme l'une des sorties, mais c'est généralement hors de mon contrôle.
Abordez-le lors d'une réunion pour voir d'abord si quelqu'un a le désir de le faire - tant que cela n'a pas d'impact sur les projets sur lesquels ils travaillent actuellement.
À ma place actuelle (l'un des laboratoires nationaux), nous l'avons installé juste pour faire les builds de manière cohérente afin que les gens qui veulent voir ce que nous faisons puissent obtenir une version exécutable à tout moment . Ils ne veulent pas de tests unitaires (l'impression du chef de projet est que l'effort que nous avons mis dans les tests unitaires aurait pu être mis dans le portage du projet vers .NET).
À ma place précédente, l'intention était de rendre les versions standard et cohérentes entre les produits. Beaucoup trop de produits ne pouvaient être construits que sur un ordinateur spécial (dans le cas d'un produit, impliquant un contrôle tiers avec DRM agressif qui avait depuis longtemps cessé ses activités, nous avons dû garder une machine en vie pendant environ 5 ans après la fin du développeur. parce que le sien était le seul à pouvoir construire ce produit commercialement remplacé maintenant). De plus, les installations ne pouvaient être effectuées que par une seule personne qui était matinale - donc si vous aviez besoin d'une version après environ 15 heures, vous attendiez jusqu'au lendemain.
Ça dépend. Si vous avez une personne QA qui est décente pour les scripts, demandez d'abord avant de les affecter.
Le configurer pour commencer n'est pas une tâche compliquée. La configuration ne devrait pas prendre plus de quelques jours (principalement dans un environnement d'entreprise, les tracas obtiennent un compte pour exécuter les choses avec toutes les autorisations requises) et démarrer.
la source
Essayez de le configurer dans une direction différente - en cas de problème dans l'environnement de production, il incombe à l'équipe de développement de le réparer et de le résoudre rapidement. Introduisez ensuite l'idée d'une construction nocturne simple qui se compile à partir du code le plus récent, du tampon de version, etc. S'il ne parvient pas à être construit, il ne sera pas promu.
Je pense que le script de construction devrait appartenir au développement. Lorsqu'ils modifient les dépendances ou apportent des modifications, ils sont les meilleurs pour savoir comment mettre à jour les scripts. Et dites-leur que si la direction du projet en est propriétaire, vous les convoquerez simplement en réunion chaque fois qu'il y aura un problème.
la source
Vous pourriez simplement dire lors de votre prochaine réunion, "OK, je pense que nous devrions le faire à cause de. Qui peut le mettre en œuvre" Je vous donne mieux que les chances que quelqu'un dise "Bien sûr que je le ferai". alors vous n'avez pas à vous battre à ce sujet.
la source