Cómo alentar la adopción del control de versiones

21

Recientemente comencé a trabajar en un equipo donde no hay control de versiones. La mayoría de los miembros del equipo no están acostumbrados a ningún tipo de control de versiones. He estado usando mercurial en privado para seguir mi trabajo. Me gustaría animar a otros a adoptarlo, y al menos comenzar a versionar su código a medida que desarrollan cambios. ¿Alguien puede darme consejos sobre cómo puedo alentar la adopción de un control de versión distribuido como mercurial? Cualquier consejo sobre cómo ganar personas incluyendo gerentes para DVCS sería muy apreciado.

Hombre Wa kileleshwa
fuente
44
Añadiría una respuesta, pero no puedo. Estoy sin palabras (o más bien, sin tipo). Han pasado casi 40 años desde que apareció SCCS por primera vez. ¿Todavía hay organizaciones por ahí que no usan el control de versiones para nada más que los proyectos más simples? (Hoy en día es el otro extremo; algunas personas tienen su directorio personal como un repositorio git.)
David Hammen
11
No lo animes; exígelo.
Steven Evers
1
La compañía con la que estoy ahora consulta con compañías mucho más grandes que nosotros y todavía tengo que encontrarme con una que esté usando el control de fuente ... Después de pensar en esa declaración, de repente puedo ver por qué necesitaban a alguien más para solucionar su problema. Lo primero que hacemos generalmente es exigir que lo configuren para que podamos usarlo para integrar y administrar sus cambios y los nuestros. Como dijo @SnOrfus, exíjalo. También puede apuntar a toda la documentación que lo ha señalado como una mejor práctica.
Joshua Dale
77
Estoy con SnOrfus. Aquí hay algunas buenas respuestas, pero en última instancia, si no obtiene una reacción positiva de inmediato , es hora de irse. Al igual que David Hammen, no tengo palabras de que en 2011 cualquier desarrollador se encuentre en una situación en la que deba lidiar con un problema como este. La falta de control de versiones es una disfunción que simplemente no es aceptable.
Carson63000
2
Escabullirse en una noche y eliminar sus discos duros. No lo siento. Lapso temporal de profesionalidad allí.
DJClayworth

Respuestas:

7

Debe presentar un caso para el uso del control de versiones, y primero tratar de venderlo a sus compañeros de trabajo, y si eso falla, subir la cadena para proyectar el liderazgo y más.

Para los demás ingenieros de software, su caso debe centrarse en cómo ahorra tiempo y dolores de cabeza a largo plazo. Encuentre tiempos de su propio pasado o historias publicadas (blogs, artículos en revistas, libros blancos) sobre cómo el uso del control de versiones le facilita la vida. Si te has quemado por no tener control de versiones, hazlo personal. Si sus colegas desarrolladores han estado en la misma situación, deberían ver la luz y cómo estas herramientas pueden ayudarlos.

Esta es tu mejor apuesta. Aunque no puedo encontrar las fuentes en este momento, he leído (en un par de lugares) que los cambios más efectivos para procesar provienen de los desarrolladores, que tienen que lidiar con los cambios. Si puede lograr que los desarrolladores se unan, logrará dos cosas. Primero, ya tiene la aceptación de las personas que se verán afectadas por el cambio de proceso. En segundo lugar, hay un grupo de personas para convencer a la gerencia de que este es un esfuerzo que vale la pena y mejorará el producto y el proyecto.

Sin embargo, si no puede obtener el apoyo del equipo de desarrollo y aún siente una gran confianza en la implementación del control de versiones, puede pasar a la administración. Pero se vuelve más riesgoso si va solo, ya que no solo tiene que preocuparse por vender la mejora, sino también por la reacción de sus colegas.

Para la gestión de proyectos, programas y organizaciones, el caso debe ser cómo implementar el control de versiones puede ahorrarle tiempo y dinero a la organización. A las personas de este nivel les importa cuánto cuesta el proyecto, dónde se encuentra en comparación con las estimaciones, etc. Busque libros blancos, libros, artículos y otros documentos y publicaciones profesionales que expliquen cómo la implementación del control de versiones ha ahorrado tiempo y dinero a otras organizaciones a largo plazo. También puede introducir una perspectiva de calidad aquí, si su organización está interesada en la calidad del software.

Mencionó específicamente que desea utilizar un sistema de control de versiones distribuido. No lo fuerces por la garganta del equipo u organización. Preséntales el control de versiones y sus opciones. Aunque personalmente puede preferir usar un DVCS (como Mercurial), puede que no sea la mejor opción para su equipo y organización. El uso de una herramienta que no está bien ajustada solo empeorará las cosas con la paliza.

Además, tenga en cuenta los riesgos de introducir el proceso tarde . Aunque el uso del control de versiones es una práctica recomendada comúnmente aceptada, podría ser demasiado tarde para introducirlo de manera efectiva en el proyecto actual sin un gran riesgo para la finalización del proyecto. En cambio, recomendaría centrarse en mejorar el status quo para futuros proyectos y equipos.

Además, este es un enfoque general que puede seguir para llevar a cabo cualquier proceso o mejora tecnológica.

Thomas Owens
fuente
5

La primera pregunta es: ¿qué hacen actualmente? Seguramente, cada desarrollador no tiene el código fuente pegado en su propia caja que cambia a voluntad. Una vez que tenga el proceso que siguen actualmente, puede sugerir algunas herramientas que mejoren este proceso; por lo general, un SCM es ideal para ayudarlos con esto, en lugar de hacer que sigan un proceso diferente.

El punto principal aquí es, si tienen una forma de trabajo pseudo-SCM, tal vez almacenando la versión actual en un servidor en algún lugar, entonces debe determinar si un DVCS o un CVS es más apropiado, no intente venderlos Mercurial si SVN se ajusta mejor.

gbjbaanb
fuente
3

La forma más rápida es convencer a la gerencia de que es necesario.

Haz algunos cálculos:

Costo del software de control de versiones - gratis.
Costo del hardware para soportar el repositorio: un servidor.
Costo de implementar software: un par de días de trabajo para un equipo pequeño, aumentando para equipos más grandes.

Costo de no implementar el control de versiones:

El mejor de los casos: los días perdidos debido a que faltan las ediciones, se sobrescriben los cambios, etc., errores recurrentes, etc.
En el peor de los casos, por muchos años de esfuerzo que su equipo haya dedicado hasta ahora.

Esta última cifra es el peor de los casos en el que pierde todo su trabajo debido a una falla del servidor, etc., pero incluso los escenarios del "mejor caso" deberían informarles por qué es necesario. El costo de los errores recurrentes podría ser mayor, ya que podría conducir a la pérdida de clientes.

El equipo de desarrollo también debe comprender estos costos y dado que la mayoría (si no todos) el software de control de versiones se integra a la perfección con los IDE en estos días, ni siquiera notarán que está allí la mayor parte del tiempo.

ChrisF
fuente
El costo del software de control de versiones no es gratuito. El software en sí puede ser gratuito (dependiendo de su selección), pero en una organización que no tiene nada, necesita capacitación para los ingenieros, es posible que necesite hardware para que residan los repositorios, y si la organización lo implementa a todos, Un aumento en la financiación de TI para soportar los nuevos requisitos de hardware y software. Sin mencionar el alto riesgo de implementar el proceso tarde en un proyecto.
Thomas Owens
@Thomas - de ahí mi línea sobre el costo de implementarlo (lo que probablemente sea una subestimación)
ChrisF
La edición lo hace mucho mejor.
Thomas Owens
1

La administración generalmente se preocupa más por ahorrar dinero. ¡Enfatice cómo el control de versiones puede beneficiar financieramente al equipo y obtendrá su atención de inmediato!

rrazd
fuente
La administración lo hace, pero siempre es más fácil llamar la atención de la administración si tienes un grupo de personas que dicen algo, en lugar de un individuo.
Thomas Owens
@Thomas, de hecho, más voces crean más ruido y, por lo tanto, es más probable que
llamen la
1

Hay un aspecto que otras personas aquí no han mencionado que creo que tienes en tu esquina, estás hablando del control de versiones distribuidas , por su propia naturaleza, puedes colarte en una práctica de facto, un desarrollador a la vez Con un control de versión más completo, como el que usamos en mi oficina (MS Visual SourceSafe), le sería difícil acercarse al tipo en el cubo frente al mío y venderlo, uno por uno, según los méritos de control de versiones. Sin embargo, con (cualquier) DVCS, puede decir "hey, intente esto y vea si le gusta. Le mostraré las cuerdas y con gusto responderé cualquier pregunta, lo guiaré, bla bla paja". De esa manera, no necesita un "proceso" desde arriba, puede construir un mandato de base, una persona a la vez.

Nate
fuente
0

Sobre la base de la respuesta de gbjbaanb.

La clave aquí es que debe adaptar el proceso de control de versiones a cualquier proceso existente y mostrar cómo ahorra el esfuerzo del resto del equipo.

Personalmente, también estoy a favor de Mercurial, pero no necesariamente quiero imponerlo a personas que no están acostumbradas al control de versiones porque es un poco más difícil de comprender que un sistema de control de versiones de bloqueo basado en un servidor antiguo. Dicho esto, si se trata de un verdadero sitio de greenfields, podría ser mejor ir por completo, saltear los años 80 y 90 e ir con Mercurial. También miraría algunas de las cosas del ciclo de vida del software de terceros creadas en torno a Mercurial: estoy seguro de que hay una, pero su nombre se me escapa;)

Supongo que trabajas para una empresa pequeña y que eres relativamente nuevo en el equipo, por lo que podría ser difícil de vender, especialmente si el resto del equipo está atrincherado y tiene la confianza de la administración. Podría ser mejor dejar que llenen algo mal y luego acudir al rescate. Eso no significa sabotaje, solo espera lo inevitable.

mcottle
fuente
Gracias por todas sus respuestas, ¿puede esta pregunta hacerse una pregunta comunitaria? Los poderes fácticos me permiten dar una breve charla / demostración de 15 minutos sobre cómo lo he estado usando. Un obstáculo es quién lo usa. ¿Es algún shareware / bloatware fuera de internet? Me gustaría calmar los temores señalando algunas empresas bien conocidas que están usando / apoyando Mercurial (cualquier DCVS) comercialmente. ¿Alguien podría ayudarme a citar algunas compañías que hacen uso de Hg? U otro producto bien conocido que lo use. Existe una resistencia (escándalo oculto) al código abierto, algunos gerentes parecen sospechar del software por el que no pagan.
Hombre Wa kileleshwa