Como posible pasante, ¿cómo evalúo qué tan fácil sería para mí mejorar las prácticas de un equipo?

Me ofrecieron una pasantía de desarrollo de software de verano en un equipo muy unido de cuatro personas. Se ve bien, excepto por algunas prácticas de desarrollo muy preocupantes. Éstas incluyen:

  1. ¡Sin control de versiones!
  2. ¡Sin documentación ni comentarios!
  3. ¡Sin rastreador de errores!

El equipo dijo que esto "funcionó para ellos". Y, para ser justos, parecían productivos y su software parecía funcional. Pregunté amablemente si estarían dispuestos a adoptar a Git. El gerente pareció estar de acuerdo con la idea, pero las reacciones de los desarrolladores fueron más neutrales. (Y hablar es barato, de todos modos).

Estoy dispuesto a retirarme de la oferta si estas prácticas resultan inquebrantables. Por otro lado, podría intentarlo y encargarme de presentarle al equipo mejores prácticas, si eso parece factible. Pero todo eso depende de mi evaluación completamente inexperta de su maleabilidad. Entonces:

Incluso antes de que me contraten, ¿cómo calculo mejor qué tan receptivo será un equipo a mis intentos de cambiar sus hábitos? ¿Es apropiado simplemente preguntar directamente? Si es así, ¿hay alguna forma de formular la pregunta para alentar respuestas más honestas, realistas y reflexivas?

esta podría ser una lectura interesante: joelonsoftware.com/2001/12/25/…
Buen artículo, @todos. Pero tenga en cuenta que una pasantía no dura mucho tiempo y tiene una connotación de inexperiencia aún más fuerte que solo ser un "gruñido". Podría ser necesaria una estrategia más agresiva, deliberada y explícita. (Sospecho.)
No estaba tratando de afirmar que esto era la verdad absoluta, solo que parecía relacionado con su situación y un uso valioso de su tiempo. Si tuviera una mejor idea de cómo manejar su situación, habría escrito una respuesta... lamentablemente no soy un experto en el tema...
@gnat Eso (y la pregunta de que es un engaño ) son útiles y están relacionados, pero preguntan cómo impulsar el cambio cuando ya estás contratado. Estoy preguntando cómo verificar que el cambio sea posible, antes de ser contratado.
¿Cuánto durará la pasantía?
Esta no es la pregunta que hiciste, así que la ofrezco como un comentario. Realmente recomiendo buscar una pasantía diferente. Una pasantía realmente debe enfatizar su educación continua, no que le enseñe a su patrocinador. La falta de control de versiones es una bandera roja gigante. Es posible que hayan improvisado un sistema que funcione para ellos, pero no es probable que sea un proceso que pueda aprovechar en ningún otro lugar. En futuras entrevistas, cuando hables sobre esta pasantía, es posible que te pregunten "¿Qué metodología de control de versiones usaste?". Al menos van a arquear una ceja si dices "¡Ninguno!".
@CharlesE.Grant Buen punto. Pero, si pudiera hablar en esas entrevistas futuras sobre cómo presenté, o intenté presentar, un equipo existente a las mejores prácticas modernas... eso se vería bien, ¿verdad? Tal vez eso merece su propia pregunta.
@Maxpm es una compensación de riesgo-recompensa. Si puede decirle a un entrevistador que introdujo con éxito el control de versiones y otras prácticas estándar de desarrollo de software en una organización, eso sería realmente impresionante. Por otro lado, si todo lo que puede decir es "Bueno, traté de que usaran el control de versiones, pero fueron tercos y no me escucharon", bueno, eso no impresionará a nadie, e incluso podrían volverse escéptico sobre el valor de la pasantía, ya que aparentemente estaba en una organización que estaba muy alejada de la práctica actual.
@Maxpm Intenta ser realista. Cabezas más sabias que tú te están diciendo que lo más probable es que no puedas cambiar su cultura. Imagina lo que vas a decir en una entrevista de trabajo en la que hablas de cómo hiciste una pasantía sin aprender las prácticas modernas de desarrollo de software. Porque ese es el escenario más probable.
Si la configuración de la empresa es tan mala y estás solicitando una pasantía, buscaría otra empresa. Si se conocen sus prácticas, se verá mal en su currículum. Y afrontémoslo, si están tan jodidos, es poco probable que aprendas mucho allí. Una pasantía no es un momento en el que intenta mejorar las cosas, es un momento en el que intenta mejorar su propio conocimiento.

Respuestas (3)

Incluso antes de que me contraten, ¿cómo calculo mejor qué tan receptivo será un equipo a mis intentos de cambiar sus hábitos? ¿Es apropiado simplemente preguntar directamente? Si es así, ¿hay alguna forma de formular la pregunta para alentar respuestas más honestas, realistas y reflexivas?

La respuesta corta es que no hay realmente una manera de hacer esto que sea ni siquiera medio confiable. La mejor manera de evaluar esto es a través de la experiencia, que no tiene (y por qué está haciendo esta pregunta en primer lugar), pero eso no significa que no haya nada que pueda hacer:

NO

Pregunta sin rodeos: corres el riesgo de ponerlos a la defensiva (con la crítica implícita de sus prácticas laborales actuales) y parecer arrogante. Incluso si no es así como lo toman y dicen todas las cosas correctas como usted dice "hablar es barato", decir todas las cosas correctas incluso si están respaldadas por las mejores intenciones no significa que las acciones seguirán.

HACER

Pregúnteles cuáles creen que son sus problemas actuales en su proceso de desarrollo: si enumeran algo que se puede resolver implementando git o cualquiera de las otras prácticas que le gustaría implementar, puede usarlo como una sugerencia. De ninguna manera es una certeza que seguirán adelante con esto, pero es un indicador tan bueno como el que obtendrá.

Como regla general, es una mala práctica comercial cambiar los procesos sin tener una idea bastante clara de qué tipo de mejoras se obtendrán. Cambiar los procesos casi siempre resulta en una caída a corto plazo en la productividad, incluso si todo el trabajo de implementación lo realizó usted mismo, habrá un período de ajuste para el equipo titular que está acostumbrado a trabajar de la manera en que lo hace en este momento, esto significa pasarán tiempo acostumbrándose al nuevo proceso (tiempo que de otro modo habrían dedicado a ser "productivos"), cualquier proceso nuevo también probablemente resultará en un aumento en la tasa de error a corto plazo porque las personas que no están familiarizadas con un es más probable que el proceso se equivoque y entonces se pierde más tiempo mientras se corrige el error.

Otra buena regla general en los negocios (y créanme, no estoy tratando de sonar duro cuando digo esto) es que, por lo general, no hará cambios significativos en sus procesos comerciales simplemente siguiendo el consejo de pasantes sin experiencia, por lo que diría que Si va a tener alguna esperanza de conseguir que se lleve a cabo alguno de estos cambios, necesitará el apoyo de uno o más miembros del equipo de desarrollo existente y, para ser sincero, no parece que lo tenga. Si uno o más miembros del equipo existente respondieron a su pregunta de git con algo como

Dios, sí... implementar git sería genial, ¡me haría la vida mucho más fácil!

entonces eso habría sido alentador porque si el gerente vale su salario antes de implementar alguna de sus propuestas, consultará con su equipo existente para ver si este pasante que apenas conocen tiene alguna idea de lo que están hablando y menos que Es probable que una respuesta entusiasta mate esa idea allí mismo.

Trabaje de la forma en que desea trabajar, siempre que no afecte negativamente a la productividad de su equipo. Por supuesto, haga esto con el permiso del líder del equipo.

Hacerlo de esta manera significa que no está imponiendo agresivamente prácticas de trabajo en el equipo y depende de ellos ver lo que está haciendo e incorporar cualquier punto bueno que vean (o descartarlos como mejor les parezca).

Tenga en cuenta que el código bien escrito no necesariamente necesita comentarios por todas partes (no sé cómo es este código, por lo que esto podría ser subjetivo). Cree su propia documentación y envíela con su trabajo. Para un rastreador de errores, solo usaría una hoja de cálculo para comenzar y alentaría a las personas a mirarla para realizar un seguimiento de su progreso en los errores. Las personas pueden comprar y agregar errores a la hoja de cálculo si los guía (pero no fuerce el problema).

A nadie le gusta que un chico nuevo sea insistente, pero es bueno ver demostraciones de buenas prácticas, y son más fáciles de adoptar si se demuestra que ayudan a su propia productividad.

Este es un buen consejo, pero no quiero terminar como la única persona que sigue buenas prácticas. Mi pregunta es cómo saber si ese será el caso antes de aceptar la oferta.
No estoy seguro de que pueda imponer mejores prácticas de trabajo como condición para unirse al equipo. Esto suena como lo que estás tratando de hacer aquí. Podría ser mejor unirse y luego trabajar desde adentro. Es posible que tengas que absorber algunas malas prácticas a corto plazo, pero como pasante será bueno tener una experiencia real tanto de las malas como de las buenas.
@Maxpm Parte de su función como pasante es experimentar cómo es el mundo real, lo que incluye aprender a hacer un buen trabajo en las condiciones menos que ideales del mundo real. Eso no significa que no pueda dar que pensar a las personas con las que trabaja, pero no es razonable esperar que vaya a caminar allí y mover montañas a menos que le hayan dicho específicamente que eso es lo que están haciendo. estas esperando . Si no cree que el puesto es adecuado para usted tal como existe, no lo tome.

Es 2018 y no están utilizando ningún sistema de control de código fuente. Es posible que mi memoria no se remonte lo suficiente, pero usé el control de código fuente (SCCS en ese momento) en 1996. Están 22 años atrás. Lamento decir esto, pero no tienes la más mínima posibilidad de cambiar lo que están haciendo.

Estaba usando SCCS para el control de versiones en i984 y fue escrito mucho antes. Tienen al menos 34 años de retraso.
En 1984 creaba un disquete con el código fuente una vez a la semana y los guardaba todos :-( Cajas llenas de disquetes. Podrías llamarlo control de código fuente.