Soy gerente de proyectos en mi empresa. Trabajo con algunos equipos de desarrolladores que utilizan un sistema de control de versiones estándar y conocido conocido como CVS. Me gustaría ver una integración continua y compilaciones automatizadas implementadas para ayudar a evitar problemas con la ruptura de la compilación y con las malas implementaciones que se escabullen en los servidores de producción.
Estoy seguro de que puedo configurar esto yo mismo, pero no quiero hacerlo por dos razones:
No tengo tiempo para eso. Tengo mis propias responsabilidades, que incluyen marketing, comunicación con otras partes interesadas con miembros del equipo que no forman parte del desarrollo, comunicación con los clientes y planificación del proyecto.
Lo más importante, soy el gerente del proyecto. Mi propósito es proporcionar liderazgo, no microgestionar el equipo de desarrollo .
¿Cuáles son algunas cosas que puedo hacer para encontrar a alguien en el equipo de desarrollo que se apasione por configurar esto? ¿Es un desarrollador la persona adecuada para esta tarea, considerando que requiere conocimiento de Java, Spring y Google App Engine? ¿Cuáles son algunos consejos para ayudar a promover el cambio donde se teme el cambio?
Respuestas:
Primero investigaría algunas posibilidades. Por ejemplo, Hudson es un servidor de integración continua bastante popular y es extremadamente flexible. Puede enviar un correo electrónico a su equipo de desarrollo con algo como esto:
Este enfoque tiene los siguientes beneficios:
En mi escenario simulado,
Dave
fue seleccionado porque tiene menos en su plato y probablemente no tendría problemas para configurar un nuevo servidor. Dependiendo de la carga de trabajo,Dave
podría ser usted. Eso es tan subjetivo que simplemente lo menciono. No siempre puedes decirnot my job to do that
especialmente si eres el único que tiene tiempo para hacerlo. Si todos ya se están recuperando con el tiempo, su percepción de su disposición a ayudar se vuelve más importante. La medición es una habilidad que desarrollas con el tiempo.En cualquier caso, tendrá un servidor CIS para el viernes o detalles sobre por qué eso no es posible sin un par de manos adicionales.
fuente
not my job
tarjeta para dejar de trabajar, pero porque es fácil para los gerentes de proyecto a veces involucrarse demasiado en lo que está haciendo el equipo de desarrollo. Al delegar esto al desarrollo, les doy el control y los reinados. Además, si se encargan de configurar esto, es más probable que lo usen, mientras que si lo configuro, obtendré una buena experiencia de aprendizaje sobre cómo configurar una integración continua pero sin ROI y el costo de oportunidad de dar arriba en mis otras tareas. Además, el correo electrónico de muestra es muy útil :) +1Veo que va de tres maneras posibles:
Pídale a alguien en el equipo de desarrollo que haga una evaluación rápida de las posibles herramientas y que haga algo rápidamente. Si sus proyectos individuales tienen secuencias de comandos de compilación adecuadas (es decir, puede compilar los proyectos fuera del IDE), entonces debería ser bastante rápido conectarlos al CI.
Trate la infraestructura de compilación como un proyecto interno dentro de su equipo y adminístrela como tal. Un poco más complicado que el primer punto, pero si se hace bien, obtendrá un mejor sistema. También difundir el conocimiento sobre el equipo reducirá el riesgo de sobre-especialización que se menciona a continuación. También obtiene los beneficios de la revisión por pares. Sin embargo, algunos programadores pueden percibir esta tarea como degradante y, como tal, no gastar tanto como deberían.
Contrata a un desarrollador como maestro de construcción y haz que configure todas las herramientas. Luego, continúe usándolo para mejorar el sistema, agregar métricas, generación automática de documentos, pruebas automatizadas, etc. Esto es más costoso, pero si se hace correctamente, las inversiones en esta persona se pagarán muy rápidamente al aumentar la eficiencia de su equipo de desarrollo. Esta persona debe ser competente con los lenguajes y marcos utilizados por su equipo y tener el deseo de pegarlos en un sistema. Por otro lado (de los comentarios) esto puede no estar dentro de su presupuesto y crear una posición especializada podría conducir a una solución insuficientemente documentada que puede dificultar las transiciones.
Dicho esto, antes de comenzar cualquier cosa, asegúrese de lo que realmente quiere. Su pregunta carece de detalles para orientarlo en la dirección técnica correcta. Necesita saber qué ganancias desea lograr al usar dichas herramientas, necesita una visión general del sistema deseado. Uno puede recorrer un largo camino en la creación de un entorno que lo vincule todo, pero sin un plan maestro para construir en contra de usted también puede correr círculos y hacer las cosas más complicadas de lo que ya son.
Un gerente que una vez había dicho que las herramientas son buenas pero sin un proceso son inútiles. Solo desearía que hubiera seguido lo que dijo cuando llegó el momento de poner esto en su lugar ...
Por lo tanto, si decide contratar a alguien, hay ventajas definitivas en contratar a un programador en lugar de alguien con una experiencia más profesional. El punto principal es que esta persona puede dedicar algo de tiempo y energía a crear el código de pegamento y los complementos que integrarán los diferentes sistemas en un sistema coherente.
Espero que esto haya ayudado
fuente
Si tiene un rol de liderazgo, es su trabajo identificar los componentes / prácticas faltantes y su responsabilidad de verlo implementado correctamente. La tarea de implementación se puede delegar o no, pero en última instancia es responsabilidad de los líderes.
La clave para la aceptación es comprender, o al menos darle el beneficio de la duda. Puede hablar sobre lo que quiere hacer y mencionar los costos y beneficios. Si la discusión no logra comprender, puede confiar en su confianza en sus decisiones, pero solo si ha acumulado ese tipo de repositorio.
Si su delegación no tiene limitaciones de tiempo, hágala saber durante una reunión de pie o de equipo y solicite un voluntario. Si no viene nadie, simplemente asígnelo como lo haría con cualquier otro trabajo.
actualizar:
Hay una estructura organizativa dentro de cada empresa. Un rol de liderazgo tiene la responsabilidad de los recursos a ese nivel. También tienen la responsabilidad de señalar y abordar cualquier problema. Es posible que necesiten recursos adicionales y / o sugerencias en el momento en que ascienda en la cadena. Si puede resolver el problema, tiene la opción de implementar una solución usted mismo o delegar. Esto puede y debe involucrar a las personas que afectará directamente, idealmente en colaboración con ellos.
No puedo decir que el nivel de director y los puestos superiores no deberían ser directamente responsables de una persona o grupo en particular en una empresa. Realmente depende de la estructura organizativa de las empresas. He trabajado en startups donde el CTO era directamente responsable de los desarrolladores y evaluadores. En una empresa más tradicional más grande, la administración en ese nivel no tendría la visibilidad o familiaridad requerida para tomar decisiones apropiadas en esos niveles inferiores.
fuente
Soy principalmente un desarrollador, y lo configuro cuando puedo (es decir, cuando no me lo prohíben expresamente). En general, dado que los lugares en los que trabajo son tiendas .NET, elijo CruiseControl.NET porque es de código abierto, funciona con la mayoría de los principales sistemas de control de fuente y es relativamente fácil de usar. Siempre he querido configurar un Orbe ambiental como una de las salidas, pero eso generalmente está fuera de mi control.
Explíquelo en una reunión para ver primero si alguien tiene el deseo de hacerlo, siempre que no afecte los proyectos en los que está trabajando actualmente.
En mi lugar actual (uno de los laboratorios nacionales), lo hemos configurado solo para hacer las compilaciones de manera coherente para que las personas que quieran ver lo que estamos haciendo puedan obtener una versión ejecutable en cualquier momento . No quieren pruebas unitarias (la impresión del gerente de proyecto es que el esfuerzo que pusimos en las pruebas unitarias podría haberse puesto en portar el proyecto a .NET).
En mi lugar anterior, la intención era hacer que las compilaciones fueran estándar y consistentes en todos los productos. Demasiados productos solo se pueden construir en una computadora especial (en el caso de un producto, que involucra un control de terceros con DRM agresivo que había cerrado hace mucho tiempo, tuvimos que mantener una máquina con vida durante aproximadamente 5 años después de que el desarrollador se retiró porque el suyo era el único que podía construir este producto comercialmente reemplazado ahora reemplazado). Además, las instalaciones solo podían ser realizadas por una persona que era una persona madrugadora, por lo que si necesitaba una construcción después de las 3 p.m., esperaría hasta el día siguiente.
Depende. Si tiene alguna persona de control de calidad que sea decente en la creación de secuencias de comandos, pregunte primero antes de asignarla.
Configurarlo para empezar no es una tarea complicada. La instalación no debería llevar más de un par de días (principalmente en un entorno corporativo, las molestias están obteniendo una cuenta para ejecutar las cosas con todos los permisos necesarios) y comenzar a funcionar.
fuente
Intenta configurarlo desde una dirección diferente: cuando hay un problema en el entorno de producción, pon la responsabilidad en el equipo de desarrollo para solucionarlo y solucionarlo rápidamente. Luego, presente la idea de una compilación nocturna simple que se compila a partir del último código, sello de versión, etc. Si no se compila, no se promocionará.
Creo que el script de compilación debería ser propiedad del desarrollo. Cuando modifican las dependencias o realizan cambios, son los mejores para saber cómo actualizar los scripts. Y dígales que si la administración del proyecto lo posee, simplemente los convocará a una reunión cuando haya un problema.
fuente
Podrías decir en tu próxima reunión: "OK, creo que deberíamos hacer esto debido a quién puede implementarlo". Te doy mejores probabilidades de que alguien diga "Claro que lo haré". entonces no tienes que pelear por eso.
fuente