Cómo convencer a mis compañeros de trabajo de que hacer las cosas bien les ahorrará tiempo

11

Recientemente comencé en una nueva empresa, con un puñado de programadores. Es una empresa mediana, con alrededor de 70 empleados, pero TI solo tiene 9-10, y hay 3 "programadores" aparte de mí. Sin embargo, estos muchachos tienen una experiencia muy limitada y están haciendo muchas cosas terriblemente. Por ejemplo, uno de nuestros proyectos es un sitio web PHP. La mayoría del código se almacena en un controlador PHP de 20,000 líneas, con ~ 6000 líneas de JavaScript incrustadas en PHP.

Sigo haciendo pequeñas sugerencias aquí y allá, pero nadie ha estado escuchando, todos dicen que están demasiado ocupados para implementar mis sugerencias. La cuestión es que no deberían estar tan ocupados, y no lo estarían si las cosas se hicieran bien. Pasan la mayor parte de su tiempo arreglando cosas que se siguen rompiendo. Si cada proyecto se construye correctamente, podría hacerlo todo yo mismo.

¿Qué enfoque debo tomar para convencer a estos muchachos o al gerente de que las cosas deben cambiar y que cambiar las cosas ahorrará mucho tiempo? ¿Debo dejar de tratar de convencer a mis compañeros de trabajo e ir directamente al gerente, con una propuesta comercial sobre cómo la compañía ahorrará un montón de dinero si comienzan a hacer las cosas correctamente?

Brandon Wamboldt
fuente
2
Enséñeles cómo hacerlo bien. Pruébate a ti mismo siendo mejor que ellos. Cuando están atrapados, ofrecen ayuda.
Dave Hillier
18
" Si cada proyecto se construye correctamente, podría hacerlo todo yo mismo " . Tenga cuidado con declaraciones escandalosas, o al menos impopulares.
Greg Hewgill
1
¿En qué papel te contrataron? ¿Lo contrataron como alguien con autoridad en PHP o simplemente es otro desarrollador?
Tyanna
1
Pareces estar en posición de autoridad. Úsalo. Dígales que la calidad de su código no cumple con los estándares de la compañía y elabore un plan para mejorarla. Siéntese con ellos y descubra por qué están "demasiado ocupados" y priorice en consecuencia.
binarycleric
55
Tan ocupado luchando con los aligadores, no hay tiempo para drenar el pantano.
JeffO

Respuestas:

22

Descubrí que la causa principal del trabajo descuidado, fuera del programador que simplemente no se preocupa, es la falta de conocimiento. Desafortunadamente, en muchos entornos, la falta de conocimiento es menospreciada que discutida abiertamente.

Algunas técnicas que he usado con éxito para fomentar la discusión, el crecimiento y la emoción general sobre la programación son:

  • Sesiones semanales de tecnología de bolsos marrones (pídales que investiguen un tema y presente).
  • Sesiones diarias o semanales de tutoría individual entre miembros junior y senior.
  • Revisiones de código (con énfasis en el aprendizaje, no señalando errores).

El aprendizaje es contagioso. Cuando fomenta un entorno que fomenta el aprendizaje, no solo produce mejores desarrolladores, sino que muestra a otros en su equipo que son parte de algo más grande que una forma de obtener un cheque de pago.

jeuton
fuente
Sí, creo que las revisiones de código serían muy beneficiosas. Antes de que realmente pueda hacer las dos primeras cosas que enumeró, tengo que hacer que hagan reuniones semanales / diarias.
Brandon Wamboldt
Ahí es donde es posible que tenga que flexionar algunos músculos autorizados. Es difícil conseguir que los programadores estén ocupados para ver el valor de algo que los aleja de su tarea actual. La idea es, con el tiempo, promover un entorno que no se trate solo de hacer el trabajo.
jeuton
Y ellos (la mayoría) vendrán. Los que no lo son a menudo son aquellos en los que no necesariamente querría formar un equipo de todos modos (y en mi experiencia son los que no van a estar presentes a largo plazo).
jeuton
+1 para "Revisiones de código (con énfasis en el aprendizaje, sin señalar errores)"
Md Mahbubur Rahman
14

Al ver que fuiste contratado como el desarrollador de PHP Senior y que tu trabajo es arreglar las cosas, sugiero que es hora de que te esfuerces un poco.

Si estuviera en su lugar, haría una buena encuesta del código y vería los errores que ocurren una y otra vez. Bloquee el tiempo de reunión cada semana para repasar estas cosas con el equipo. No señale con el dedo ni nombre los nombres, solo muestre cómo hacer esa tarea correctamente.

A continuación, dado que ya ha visto la necesidad de arreglar, haga una lista. Si es rápido y fácil de hacer, hazlo. Si te hará la vida más fácil tenerlo hecho ... hazlo. Haga una lista de todas las cosas que deben hacerse y haga boletos para ellos y vea cuándo las personas tienen ciclos para hacerlos. Si alguien está arreglando un error en un área problemática, muéstrele cómo solucionarlo correctamente.

Si requiere un gran cambio, siéntese con el equipo y las partes interesadas y discuta las opciones.

Tenga una política de puertas abiertas donde pueda ayudar a las personas. Sé alguien que educa y no intimida. No, "tienes que hacerlo de esta manera" y más "sería mejor si se hiciera de esta manera". Explica las ventajas de hacerlo de la manera que sugieres y las desventajas de la forma en que se ha hecho. Las personas estarán más dispuestas a hacerlo de la manera correcta si sienten que han aprendido algo en lugar de que se les diga que su camino es incorrecto y que lo hagan de otra manera porque usted lo dice.

Tyanna
fuente
2

Perspectiva del problema por parte de la gerencia Si han aceptado el tiempo de desarrollo en relación con la cantidad de defectos, ¿por qué lo arriesgarían? Cuando los beneficios a largo plazo contradicen los objetivos a corto plazo, generalmente pierden. Les estás pidiendo que den un paso atrás. Pueden pensar que esto causará un largo retraso. Tienes que convencerlos de que no lo hará junto con los beneficios adicionales. Si no piensan que tienen un desastre, pídales que expliquen por qué se tarda tanto en introducir rápidamente nuevos errores con cada "corrección".

La calidad del código depende de muchas circunstancias y situaciones. Las ventas, el marketing y los gerentes le harán creer que cada fecha límite fallida significa que la compañía se perderá esa oportunidad para el inversor de capital de riesgo de mega millones. La realidad es que no quieren dar las malas noticias al 1% de sus clientes que realmente no necesitaban la función de todos modos. Estoy siendo extremo y generalmente cae en algún punto intermedio, por lo que los desarrolladores necesitan aprender qué es una emergencia real. Entonces es más fácil convencerlos de que se tomen el tiempo para hacerlo bien en lugar de necesitar tiempo para hacerlo nuevamente. Tienes que entender los riesgos.

Como una gran novela, el código no se escribe bien la primera vez, pero desafortunadamente todavía se publica con demasiada frecuencia. Comience con algo fundamental como establecer un estándar de codificación. Todos tienen uno, pero a muchos les gusta en su situación, no se han formalizado ni son muy estrictos. "Haz lo que quieras." Es un estándar muy fácil de mantener. El siguiente paso es determinar cómo va a mantener sus estándares.

Tienes una tarea importante por delante. Tal vez algunos grandes programadores hayan desarrollado sus habilidades y hábitos en la medida en que nunca tengan que comprometer la calidad de su código o endeudarse técnicamente, pero esperen y vean qué sucede cuando ese ángel inversionista promete que todos se enriquecerán.

JeffO
fuente
1

Siéntese y escriba el prototipo (o algún módulo si todo el proyecto es demasiado grande) que utiliza un diseño realmente bueno como mejor le parezca. Luego preséntelo / discútalo con el equipo. Puede ser más fácil convencer con el ejemplo.

En este proceso, también puede descubrir que algunas herramientas, bibliotecas, enfoques o similares no son tan buenos. Siempre evalúe primero y pídale a su equipo que lo use más tarde. Tenga cuidado con el marketing barato en torno a herramientas de calidad inferior.

h22
fuente