Comment faire un build (java) comme « CM-indépendant » possible? (CM = Configuration Manager)

StackOverflow https://stackoverflow.com/questions/486668

Question

J'ai pensé à faire l'un des projets builds je gère, comme « indépendant » de moi (CM) que je peux peut-être. Par cela, je ne veux pas dire que l'automatisation via des scripts / outils - bien qu'il comprend certainement. Ceci est un sujet de projet de chaos et ainsi l'automatisation « totale » ne serait pas réaliste.

Voici ce que je vise:

Tout le monde devrait être en mesure de faire la construction (avec une automatisation et un peu de documentation / directives) - par exemple -. CM un débutant, ou même un développeur sans expérience de CM

Mes premières pensées vont à y parvenir par:

  1. Clouer le processus de demande de construction (via les formulaires de construction qui capture tous les détails nécessaires à la construction de sorte que rien ne tombe dans les mailles du filet juste parce que son dans la tête de quelqu'un)

  2. Simplifier les étapes de construction afin qu'ils puissent être capturés dans une documentation simple, comme une séquence de commandes - un singe formé doit être capable de fonctionner avec la construction (bien .. pas hurling insultes, mais - vous avez l'idée :-))

  3. En utilisant ce que les problèmes potentiels sont pris à l'avance et aussi aider à fournir de meilleures alertes en cas de défaillance / problèmes.

    de caractéristiques à fond (lire ANT, SVN) l'outil
  4. Avoir la liberté de tomber malade ou de prendre les vacances occasionnelles sans le chef de projet obtenir des attaques de panique chaque fois que je mentionne un couple de hors de jours. :-)

Je serais heureux d'avoir des pensées et des idées pour me aider dans ce sens. Merci à tous!

Était-ce utile?

La solution

Urbancode , nous appelons cela le "Bob le bricoleur" anti-modèle. Les bonnes nouvelles sont que Bob (vous) veut sortir de la boucle. Quand le type de construction ne peut pas aller en vacances ou malade, sans parties du processus de broyage à l'arrêt, il y a vraiment un problème inacceptable. Si je suis un homme de paris, que vous commencez le processus de simplification du processus à des niveaux « de singe formés », vous vous demanderez pourquoi vous passez votre temps à faire ce genre de choses par cœur quand vous êtes intelligent et pourrait en fait ajouterez valeur quelque part.

Les symptômes du syndrome "Bob le bricoleur" dans notre livre:

  1. Toutes les demandes de compilations ou d'un certain construit le type, passer par une équipe ou un petit.
  2. réponse à ces demandes est lent à construire fâcheusement pour les développeurs. Si l'équipe de construction est au déjeuner, ils attendent des heures.
  3. Bob, ou l'équipe de Bobs, consacrent un pourcentage important de leur temps à faire les tâches apprises par cœur.
  4. BOBs rentrer à la maison pour la journée, aller déjeuner, aller en vacances, ou se font obstacle malade la capacité de l'équipe à faire avancer les choses.

Nous disons notre AnthillPro clients de pousser tous ce genre de choses dans leur automatisation. Avoir deux types de construction qui utilisent des machines différentes, les différents numéros de build, etc ne devrait pas être un problème.

La première étape consiste à niveler par le bas du processus. Conduire aussi bien la complexité comme possible afin que vous puissiez descendre au processus de « singe formé ». Une fois que vous avez quelque chose qui approche, en remplaçant le singe avec un ordinateur est assez facile.

Je donnerais des conseils plus précis, mais je ne pense pas que nous vous avez dit où vient, autre que le chaos la complexité. Parfois, dans cette situation, vous devez attaquer les pratiques chaotiques et mauvaises. Est-ce que vous faites builds sont « Cette ligne de base dans le code source et les deux fichiers et ces trois fichiers? » Ce serait difficile et probablement besoin d'un CMER dans la boucle. Trouver un moyen d'interdire. Remplacement de cela avec « Créer une branche, et apporter des modifications spécifiques à cette branche » rend la construction de la construction par ce singe faisables.

Vous devriez être en mesure de faire valoir pour les changements à risque élevé. Même si vous êtes bon, vous avez des mauvais jours et que vous voulez prendre l'erreur humaine de l'équation, autant que possible. En même temps, si vous filmez pour une réponse plus rapide aux développeurs et self-service (qui veulent sans doute le développement et la gestion) certaines choses devront être faites automateable / monkeyable.

Avoir de meilleures formes peuvent être bonnes dans l'intervalle, et l'utilisation de vos outils est bien toujours bon mais j'attaquer assez agressivement le problème « singe formé ». Tout ce qui ne peut pas être fait par un singe formé (ou un ordinateur) devrait être un candidat pour quitter le processus. Une fois que vous avez vers le bas à l'état « singe formé », obtenir votre automatisation de construction en place donc ni vous ni les développeurs ont besoin d'être des singes. Cela change votre rôle de « Bob le bricoleur » à « Bob le système Build propriétaire ».

Autres conseils

  

Simplifier les étapes de construction afin qu'ils puissent être capturés dans une documentation simple, comme une séquence de commandes - un singe formé doit être capable de fonctionner avec la construction (bien .. pas hurling insultes, mais - vous avez l'idée :-) )

Si cela est possible qu'il devrait être possible d'exécuter la construction en une seule étape via un script (mayy ce soit une fourmi, bash, Maven ou tout autre script). Cela devrait être l'objectif, donc en gros tout le monde peut faire la construction.

Le but de développer un processus de construction devrait être ceci:

  1. Commencez avec un répertoire vide partout (tabula rasa, si vous voulez)
  2. Assurez-vous un des outils très petits d'outils de base est intalled (pour moi qui est généralement Java + Maven + client de ligne de commande SVN)
  3. Consultez à de votre SVN / CVS /...
  4. Lancer une seule commande (et cela signifie quelque chose qui n'a pas 25 paramètres)
  5. Attendez (peut-être un certain temps)
  6. Demandez à votre build complet

Si vous ne pouvez pas faire cela, alors votre processus de construction est toujours pas assez bon.

Si vous pensez que vous ne pouvez pas l'atteindre, puis décrire en détail les actions que vous devez faire, en plus de cette liste ne sont pas possible de le faire par une machine complète-turation.

En général, il n'y a pas un tel point. Il est seulement les outils manquants / savoir-faire / motivation. Moi, personnellement, découvert qu'il est plus facile de le faire, que de décrire pourquoi il ne peut se faire.

Bonne chance.

scroll top