¿Inspirar a un compañero de trabajo a adoptar mejores prácticas de codificación?

24

En la pregunta Manejo de mi anticuado compañero de trabajo , varias personas discutieron estrategias para tratar con compañeros de trabajo que no están dispuestos a integrar su flujo de trabajo con el del equipo.

Me gustaría, si es posible, aprender algunas estrategias para "enseñar" a un compañero de trabajo que simplemente ignora las técnicas y herramientas modernas, y posiblemente un poco apático.

Comencé a trabajar con un programador que hasta hace poco había estado trabajando en un relativo aislamiento, en una parte diferente de la empresa. Tiene un amplio conocimiento del dominio y, lo más importante, ha demostrado buenas habilidades para resolver problemas , algo que muchos candidatos parecen carecer.

Sin embargo, el código real (C #) que he visto es un retroceso a los días VB6. Estructura de procedimiento, notación húngara, variables globales (abuso de static), sin interfaces, sin pruebas, no uso de genéricos, lanzamiento System.Exception... se entiende la idea.

Este programador es bastante mayor que yo y, al menos por primera impresión, no busca activamente un cambio positivo. No voy a decir que es resistente al cambio, porque creo que es en gran medida una cuestión de cómo se aborda el tema , y quiero estar preparado.

Los programadores tienden a ser personas obstinadas, y es muy probable que entrar con las armas encendidas e instituir revisiones de códigos de desgarre y políticas estrictamente aplicadas no produzca el resultado final que quiero. Si se tratara de un nuevo empleado, un programador junior, no lo pensaría dos veces antes de tomar una postura de "mentor", pero soy extremadamente cauteloso de tratar a un empleado experimentado como un novato despistado (lo cual no es así, simplemente no lo ha hecho mantuvo el ritmo con ciertos avances en el campo).

¿Cómo podría aumentar el estándar de calidad de código de este desarrollador a la manera de Dale Carnegie, a través de persuasión suave e incentivos no materiales? ¿Cuál sería la mejor estrategia para efectuar cambios sutiles y graduales, sin crear una situación de confrontación?

¿Han estado otras personas, especialmente los desarrolladores principales, antes en este tipo de situación? ¿Qué estrategias fueron exitosas para estimular el interés y crear una dinámica de grupo positiva? ¿Qué estrategias no tuvieron éxito y sería mejor evitarlas?


Aclaraciones:

Realmente siento que varias personas están respondiendo en base a sentimientos personales sin leer realmente todos los detalles de la pregunta. Tenga en cuenta lo siguiente, que debería haber estado implícito, pero ahora estoy haciendo explícito:

  • Este compañero de trabajo es solo mi "mayor" en virtud de la edad. Nunca dije que su título, esfera de influencia o años en la organización superaran los míos, y de hecho, ninguna de esas cosas es cierta. Es un programador de LOB que ha sido absorbido por la tienda principal de desarrollo. Eso es.

  • No soy un nuevo empleado, programador junior u otro idiota ingenuo con grandes planes para transformar la empresa de la noche a la mañana. Básicamente estoy a cargo del proceso de software, pero como muchos de los que han trabajado como "leads" sabrán, las responsabilidades no siempre se correlacionan con precisión con el organigrama.

  • Estoy no pedir a la gente cómo conseguir mi manera, contra viento y agua . Podría hacerlo si quisiera, con el resultado neto de que esta persona se resentiría y / o renunciaría. Intente comprender que estoy buscando un método social y cooperativo para impulsar el cambio.

  • La mención de "... variables globales ... sin pruebas ... arrojando System.Exception" tenía la intención de demostrar que los problemas no son solo superficiales o estéticos . Las prácticas que pueden funcionar para aplicaciones CRUD relativamente pequeñas no necesariamente funcionan para aplicaciones de grandes empresas, y de hecho, ninguno de los códigos hasta ahora ha pasado las pruebas de integración.

Por favor, trate de tomar la pregunta al pie de la letra, acepte que realmente sé de lo que estoy hablando y responda la pregunta que realmente hice o continúe.

PD: Mi más sincero agradecimiento a aquellos que ofrecieron consejos constructivos en lugar de discutir con la premisa. Voy a dejar esto abierto por un tiempo más, ya que espero escuchar más sobre las experiencias del mundo real.

Aaronaught
fuente
99
He estado en esta situación y nunca la vi realmente resuelta con éxito. Muchas personas como usted describió dejaron de pensar en programar hace años; en este punto, solo están interesados ​​en soluciones para su dominio comercial. No me voy a unir a los vagones en este sitio que condenan a esas personas; de hecho creo que son la sal de la tierra. Si están trabajando en su código, debe presionar para que al menos se cumplan sus convenciones. No me ha resultado difícil vender que las personas deberían seguir las convenciones existentes si contribuyen a un proyecto.
Jeremy
1
¿Qué dijo tu jefe cuando le planteaste esta preocupación?
2
@Aaronaught, ya que su código funciona, este no es un problema técnico sino político, y probablemente uno que deba imponerse desde arriba si desea cambiar algo. En otras palabras de tu jefe. ¡Tengan buenos argumentos listos!
2
@Thor: ¿Entonces crees que es absolutamente imposible que su estilo sea simplemente producto de bajas expectativas, ninguna revisión por pares y una vida ocupada que no se presta bien al aprendizaje independiente durante el tiempo personal? No preocuparse no es un rasgo de personalidad cableado, es un producto del entorno y se puede cambiar. No saber es aún más fácil de cambiar, pero aún debe abordarse con cierto nivel de diplomacia.
Aaronaught
1
@Aaronaught, o has fallado miserablemente en ser una inspiración (que no se puede descartar) o él no quiere inspirarse. ¿Consideraría codificar sus pruebas unitarias en Lisp o Haskell si un colega más joven le dijera que esto es mucho más inteligente que lo que hace ahora?

Respuestas:

10

El punto de partida es conocer a tu audiencia . Parece que ya entiendes esto porque sabes la diferencia entre ser mentor de un compañero de trabajo junior e influir en un compañero de trabajo senior.

Aún necesita descubrir qué motivará a este individuo en particular. Lo que funciona en un viejo geezer (como yo), podría no funcionar para su viejo geezer.

Si le gusta guiar / enseñar a otros, puede abordar un problema haciendo preguntas como "¿por qué lo hace de esta manera?" Eso puede iniciar un diálogo donde puede pedirle que evalúe enfoques más nuevos y que dé su opinión.

Si eso no funciona, podría señalar errores que pueden evitarse utilizando las prácticas o estilos que le gustaría que adoptara. Esto requiere mucho más trabajo porque tiene que encontrar los errores y mostrar cómo ayudarían los comportamientos que desea fomentar.

Si parece dispuesto a ayudar a otros, puede apelar a su deseo de ayudar a los novatos . Explique que "los niños de hoy" no están acostumbrados a ver su estilo de codificación y es más probable que rompan su código debido a eso.

A veces es posible que tengas que enfrentarte a él y forzar el problema. Debes elegir estas batallas con cuidado. Asegúrese de comenzar con un tema en el que sepa que puede demostrarle que tiene una mejor manera.

jimreed
fuente
Estas parecen algunas buenas estrategias generales. Debo tener claro que esto solo tiene VB6, no COBOL. Tal vez 5-7 años atrás, no 20-30 años. Entonces no es un geezer / dinosaurio.
Aaronaught
1
No preguntaría "¿Por qué lo haces de esta manera?" Eso podría tener un efecto adverso: ponerlo a la defensiva de inmediato. Puede ser que el compañero de trabajo simplemente no lo sepa y usted no quiera que se sienta ignorante. En cambio, pregunte "¿ha considerado este método?"
Resumen de
@IAbstract Si le gusta enseñar, no se pondrá a la defensiva, disfrutará de la oportunidad de enseñar. El tono y la actitud harán una gran diferencia. Si parece que podría agregar fácilmente "Idiota" al final de la pregunta, ¿no lo está haciendo bien? :-) En mi experiencia, la mayoría de las personas están dispuestas a responder preguntas sinceras.
jimreed 01 de
@IAbstract: Estoy bastante seguro de que si le preguntara algo como "¿ha considerado la inyección de dependencia aquí?" la respuesta sería "¿eh?" Por supuesto, existe la posibilidad de que me sorprenda gratamente, pero creo que Jim tiene razón, es mejor comenzar la conversación preguntando "¿qué te hizo decidir usar un Fooobjeto de alcance global aquí?" No preveo que se interprete como un ataque; Soy yo tratando de entender el diseño existente.
Aaronaught
@Aaronaught: bastante justo;) Si bien la reacción a DI puede ser "¿eh?", Podría provocar una conversación interesante como, "bueno, he oído hablar de eso, pero ..." ... mi preocupación es principalmente el tono (como señala jimreed) Ciertamente, como dice jimreed, tienes que elegir tus batallas, a veces significa llevar un palo grande, a veces significa jugar juntos en la caja de arena.
Resumen de
4

Creo que tienes la actitud correcta. Solo asegúrate de decir todas las cosas buenas que ya has dicho: excelentes habilidades para resolver problemas, comprensión del negocio, etc., y solo pídele un poco de su tiempo para mostrarle los estándares actuales del grupo usar y darle la oportunidad de hacer algunas preguntas sobre ellos.

Cuando se reúnan, tráiganle un café o algo, y hágale saber que trabajar de acuerdo con los estándares lo beneficiará al hacer que sea más fácil para él respaldar su código existente y también facilitar que alguien pueda ayudarlo si él queda cubierto en el trabajo (una gran ventaja para alguien que ha estado trabajando de forma aislada), etc.

Asegúrese de que esté comprometido y obtenga buenas explicaciones de por qué hace las cosas que hace y no se concentre en por qué no debe hacer las cosas que estaba haciendo, traiga a otras personas si es necesario y haga que se lo expliquen. Póngase a disposición después si tiene alguna pregunta y seguimiento con algunos lugares a los que puede referirse para obtener ejemplos de sus estándares.

Si no está interesado después de eso, puede referirse a la primera pregunta que vinculó.

DKnight
fuente
4

Realmente es el trabajo de su gerente

  1. Tenga en cuenta que la empresa debe tener un estándar de codificación. Toda empresa algo profesional tiene esto, sin importar el tamaño de la empresa.
  2. Haga que todos se sienten juntos y comiencen a elaborar un estándar. De esa manera, todos pueden expresar su opinión, y entonces estarán más motivados para seguir el estándar.

Si su gerente no se da cuenta de esto por su cuenta, no está calificado para su trabajo. Y si es así, debe darles algunos empujones por encima de los dos anteriores. Las ventajas de tener un estándar de codificación son muchas, realmente no hay argumentos en contra de tener uno. (Si algunos programadores sienten que son "artistas" y no deberían estar restringidos por los límites de la profesionalidad, deberían conseguir un trabajo haciendo bellas artes).

El estándar de codificación en sí mismo debe centrarse ante todo en prohibir la práctica peligrosa y las funciones peligrosas de la biblioteca. Trabaje hacia un subconjunto más seguro y puro del idioma que está utilizando. Mantenga el estándar de codificación libre de "estilo de codificación", porque el estilo de codificación es mucho más difícil de acordar y no es tan importante. Es bastante clásico que una empresa decida hacer un estándar de codificación e inmediatamente se quede estancado en una acalorada discusión sin sentido sobre dónde colocar las llaves {}.

Como referencia, consulte cómo se escriben los estándares MISRA-C / C ++ y CERT C / C ++ / Java.


fuente
Esto es suponer (incorrecto) que trabajo para un editor de software con una estructura vertical. Menos del 10% de los desarrolladores trabajar para los editores de software y es no necesariamente la responsabilidad de un gerente ejecutivo o en el medio de microgestión de los desarrolladores.
Aaronaught
2
@Aaronaught Bueno, esa es la verdadera fuente de tu problema. Si no está en un equipo con un estándar de codificación y al menos un programador veterano para dirigir y guiar a los demás, es una mala organización. Todos codificarán al azar, creyendo que son "artistas", con resultados mediocres, inestables e imposibles de mantener, y sin aprender a mejorar.
2

En primer lugar, debe aclarar POR QUÉ desea cambiar la forma de trabajar de esta persona. Si es solo por razones estéticas, creo que debería reconsiderarlo, porque esta persona ha demostrado que su forma de trabajar realmente funciona.

Sin embargo, si hay una razón técnica para ello, entonces debería considerar acercarse a dicha persona con algo como:

Tengo una sugerencia sobre cómo puede ahorrarle tedioso tiempo y dinero a la empresa. ¿Estás interesado?

Tenga en cuenta que esto debería ser frutas bajas porque probablemente requerirán cambiar los hábitos existentes que siempre requieren un esfuerzo adicional.

Incluso si tiene miles de millones de sugerencias, simplemente elija una o dos y demuestre que será un cambio a mejor.

O esto funcionará, y se le preguntará si tiene más sugerencias, o no, y el daño se limita a una o dos sugerencias.

Tenga en cuenta que es muy importante que se convierta en un éxito y que lo haga rápidamente.

También debes tener cuidado. Puede haber muy buenas razones para hacer las cosas de la manera en que se hacen, pero que eres demasiado nuevo para haber visto por qué. Por lo tanto, sea respetuoso con su anciano y pregunte antes de asumir que su sugerencia es mejor. Puedes aprender una o dos cosas.

Aaronaught
fuente
Gracias por la respuesta constructiva, aunque creo que podría haberlo hecho sin el primer párrafo.
Aaronaught
@aaronaught, lo siento, pero en realidad es bastante importante.
No, realmente no es importante. Está respondiendo una pregunta completamente diferente y ya proporcioné varios comentarios aclaratorios y ediciones para indicar que no es relevante. La incapacidad de los usuarios en este sitio (y principalmente solo este sitio) para separar la cuestión de "¿Debería" de "¿Cómo?" Es activamente perjudicial para la calidad general y la coherencia del discurso aquí. Su advertencia es válida, pero irrelevante y ligeramente ofensiva. Incluso hay una meta pregunta muy votada sobre este tema exacto.
Aaronaught
1
@aaronaught, la única razón por la que declaras querer cambiar el estilo de codificación de esta persona es porque es diferente del resto del equipo, y luego dejas su estilo implícitamente afirmando que el tuyo es mejor. De ahí mi comentario. Si no puede aceptar su estilo de codificación actual en su base de código, tenga una reunión personal con él y dígale esto, y que está dispuesto a hacer un gran esfuerzo para ayudarlo a aprender cómo necesita que sea su código.
1
@Aaronaught, para alguien que podría haber prescindido del primer párrafo, su elección de redacción es sorprendentemente ofensiva. ¿Crees que llamar a los demás patéticos es un ejemplo a seguir?
1

Me gustaría desalentarlo severamente para que no se enfrente a él, ya que esto podría empeorar la situación muy rápidamente. Me doy cuenta de que se mencionó como un último tipo de medida, pero en mi experiencia, en este punto, el desarrollador funcionalmente ha dejado de participar.

Forzar el problema podría convertir al individuo en un enemigo donde está luchando con cada una de tus acciones. Eso realmente tendría un impacto negativo en el equipo y no termina hasta que alguien renuncie o sea despedido.

Si esta persona realmente tiene el conocimiento de dominio que necesita / desea, haga que documente ese conocimiento.

Ken Brittain
fuente
1
-1 La pregunta ya indica que el OP no tiene intención de abordar esto de manera confrontativa. Lea atentamente la pregunta del OP y responda esa pregunta específica , en lugar de discutir el tema en general.
HedgeMage 01 de
1

Comenzando por decírselo suavemente: no sé cuán experimentado y cuán versado estás en dar retroalimentación. Bien podría saber, emplear o incluso haber rechazado lo siguiente, pero aquí va de todos modos. Hay algunas pautas para dar retroalimentación cuando desea cambiar el comportamiento de alguien. La estructura de conversación que he pensado y que todavía trato de emplear en situaciones en las que quiero dar retroalimentación (porque funcionan) son las siguientes:

  1. Describe el comportamiento que ves. Esto tiene que ser un comportamiento concreto. Ejemplo: "Veo que está utilizando muchas variables estáticas en su código"
  2. Describa cómo eso lo impacta a usted / a su equipo. Ejemplo: "Me resulta difícil mantener dicho código"
  3. Ofrecer una solución razonable . (las posibles soluciones se mencionan en otras respuestas, y me ocuparé de algunas más adelante en esta respuesta).
  4. Dale la oportunidad de discutir la solución. Pregúntele qué piensa sobre la solución. Tome su respuesta al pie de la letra. Le has dado tu opinión, y él es libre de aceptarla o no. *

Se puede encontrar un recurso rápido sobre comentarios, por ejemplo, en http://managementhelp.org/communicationsskills/feedback.htm (aunque hay una gran cantidad de este tipo de cosas en la web)

Ahora, en la parte de la solución, por lo que estoy leyendo en su respuesta, deduzco que es bastante inteligente y tiene la mentalidad correcta, pero solo está detrás de las buenas prácticas modernas. Esos requieren tiempo y esfuerzo para dominar, aparte del aprendizaje real sobre ellos en primer lugar, por lo que tendrá que brindarle la oportunidad de hacerlo. Eso probablemente significa reunir recursos de aprendizaje (web, revistas, libros, lo que sea) como punto de partida, y proporcionarle tiempo libre para estudiarlos. Me imagino dándole todos los viernes por la tarde para ampliar sus horizontes sobre el estilo de programación, donde puede hacer lo que crea para alcanzar esos objetivos. Las personas quieren heredarse de forma heredada. Proporcione los materiales y el tiempo, y harán un buen uso de ellos.

Posiblemente lo más importante, no espere cambios de la noche a la mañana. Él ha hecho las cosas a su manera durante mucho tiempo, y probablemente se ha vuelto bastante bueno en eso. Tomará algún tiempo volverse tan bueno en una nueva forma de hacer las cosas, y por un tiempo, probablemente no verá mucho valor en nuevas formas, porque al principio, no hay ninguna. Su viejo estilo probablemente será más efectivo por un tiempo.

* Nota: lo divertido de las conversaciones es que son muy difíciles de modelar. Tienen vida propia, por lo que, aunque se ve bien en el papel, tiende a enturbiarse un poco.

Martijn
fuente
0

Explique cómo quiere que se hagan las cosas y muéstrele cómo funciona con el diseño y las elecciones arquitectónicas que ha realizado para el proyecto al comienzo del proyecto en el que lo hará trabajar. Siéntese uno a uno (y en privado) y explique los problemas que ha visto en su codificación anterior y por qué son un problema para este proyecto. Pregúntele qué necesita para mejorar, pero deje en claro que no mejorar no es una opción.

Luego use la revisión de código como una herramienta para que ajuste sus métodos de trabajo. Planifique un buen tiempo para el primero y realmente hable sobre por qué prefiere esto sobre eso y permítale explicar su razonamiento. Asegúrese de escucharlo realmente, las personas son más sensibles al cambio cuando sienten que sus preocupaciones han sido atendidas. Espere en su planificación (pero no le diga eso) que tenga que volver a trabajar en la primera tarea y no la acepte hasta que cumpla con los estándares de su equipo. Una vez que sepa lo que esperas y que no lo dejes pasar por el interés del tiempo, probablemente se acercará a tu forma de trabajar. Pero es posible que tenga que usar la revisión de código como una herramienta educativa para varias iteraciones. No tiene que ser desagradable al no aceptar el trabajo hasta que cumpla con sus estándares, pero debe ser firme y constante. Don'

HLGEM
fuente
-1

La pregunta de $ 64,000 es si está entregando sus proyectos a tiempo y cumpliendo con los requisitos de funcionalidad. Si es así, lo está haciendo bien. No existe un objetivo correcto o incorrecto en el desarrollo de software. En definitiva se trata de resolver problemas. Y si los problemas se resuelven a satisfacción del cliente / cliente, entonces, por definición , el desarrollo de software se realiza correctamente.

Por supuesto, se convierte en un tema completamente diferente si sus proyectos no se están completando. En ese punto, sus supervisores deben hacer cambios, tal vez con su aporte. Pero solo porque esté violando su sentido personal de la estética del código o la sabiduría convencional de hoy en día no significa que lo que está haciendo está "mal". Usted no es el árbitro de la definición de "buen código". Él podría, después de todo, tener una baja opinión de su código.

Entonces ... a menos que haya realmente un problema con su trabajo (que usted no ha indicado), no haga nada. Parte de ser un desarrollador exitoso es aprender a fusionar su código con los estilos de otros desarrolladores.

Después de todo, podría venir aquí y publicar una pregunta similar sobre cómo tratar con un desarrollador menos experimentado que está más preocupado por mantenerse al día con las modas que por terminar los proyectos. Se trata de perspectiva.

Gran maestro B
fuente
2
Por esta razón, señalé que él proviene de una parte diferente de la empresa. No tuvo problemas para cumplir con sus requisitos, pero sus requisitos no son nuestros requisitos. Específicamente, sus requisitos no fueron mucho más avanzados que CRUD. Y sí, hay es un problema con el código; puede funcionar bien de forma aislada pero no pasará las pruebas de integración, rendimiento o confiabilidad. No creo en metodologías estrictas como XP o TDD o lo que sea, pero esto no es una cuestión de estética o sabiduría convencional, es una cuestión de requisitos de mantenimiento.
Aaronaught
3
También estoy rechazando esto no por las razones anteriores, sino porque estás haciendo varias suposiciones injustificadas. (a) no tengo menos experiencia, (b) ninguna de las cosas de las que hablo se llama justificadamente "modas", y (c) esta es la suposición más descaradamente ridícula: no es el desarrollador más productivo en el equipo, y ciertamente no es más productivo que yo.
Aaronaught
Si realmente hay un problema con lo que él produce, entonces, como dije , es un problema para su supervisor o para quien sea su supervisor mutuo. Pero no ha demostrado que haya un problema con lo que le entrega al cliente / cliente, solo que no le gusta lo que le entrega a usted. Cuál es mi punto, él no está escribiendo software para ti. Así que antes de ir causando revuelo, me aseguraré de que no sea menos prescindible que tú.
GrandmasterB
En cuanto a las modas pasa un rato en la industria y te darás cuenta de que sí, las mejores prácticas de hoy son las malas prácticas del estilo VB6 de mañana. En cuanto a downvoting, seguro, siéntete libre. Solo estoy respondiendo a la pregunta publicada. No puedo responder a los detalles que no proporcionó.
GrandmasterB
1
No conozco tu currículum ni sé tu currículum de compañeros de trabajo. Solo sé lo que pones en la pregunta. Si era información importante, debería haberla incluido. Y en función de sus respuestas a otras respuestas, puede considerar que dejó un poco fuera, lo que requiere una gran cantidad de suposiciones por parte de los que responden. Pero si desea una respuesta, suponiendo que no sea su supervisor, es el problema de su supervisor o de su supervisor mutuo preocuparse por cómo no causar revuelo. Simplemente rechace el código que está causando un problema en las pruebas e informe cuál es el problema a su compañero de trabajo.
GrandmasterB
-1

Como desarrollador junior que habla con un desarrollador senior, es demasiado arriesgado que intentes acercarte a él con mejores ideas que las suyas.

La mejor manera de lidiar con esto es tratar de convencer a su jefe de una mejor práctica, y ver si hará un decreto de que todo el código debe seguir estándares específicos y hacerse cumplir a esos estándares a través de revisiones de código de pares.

Una parte considerable de las personas son (incluso si están en un nivel subconsciente) vengativas, egoístas y defensivas, incluso si no son completamente conscientes de sus propios motivos subconscientes, se ofenden si intenta cambiarlos o implica que están equivocados. de todas formas.

La Cadena de Comando es la forma más segura de hacerlo porque TIENE que escuchar a su jefe, y tampoco le tiene que gustar. Deje que el jefe sea el malo, para eso está allí.

Si no puede vender al jefe o si él es el jefe, entonces trate con sus errores, pero lidere con el ejemplo en SU ​​código.

maple_shaft
fuente
1
Esto responde una pregunta completamente diferente de la que hice. (a) No soy un desarrollador junior, (b) mi jefe ya me delega la mayoría de las decisiones importantes de diseño y código, (c) no se sabe que su código tenga errores, solo que no está bien estructurado para la POO de C # / paradigma mixto funcional, y (d) la esencia de mi pregunta era cómo abordar el tema de tal manera que no se ofendan.
Aaronaught
1
@Aaronaught, a) "Este programador es bastante mayor que yo" Asumí por esta declaración que usted es su "junior". b) Suena como su líder tecnológico, entonces debería haber puesto esa información en su pregunta, cambia las cosas considerablemente. c) Si no sigue las mejores prácticas y su código no tiene errores, ¿cuál es el problema? ¿Por qué acercarse a él por algo? No arregles lo que no está roto. d) Nuevamente, no se acerque a él si no está causando errores con un código de baja calidad. El verdadero problema es que no tienes estándares de codificación y desarrollo que todos deben cumplir.
maple_shaft
Pensé que estaba claramente implícito en mi referencia a (no) "entrar con armas encendidas e instituir revisiones de códigos y políticas estrictamente estrictas": ¿por qué mencionaría eso si fuera un joven? ? ¿Y quién dijo que no tenemos estándares? Nunca antes había trabajado con nuestro equipo y estoy tratando de presentar los estándares sin ser un imbécil al respecto .
Aaronaught
-1 No contestó la pregunta formulada.
HedgeMage 01 de
-1

No puedes

No puede inspirar a las personas a hacer cosas de las que no son conscientes en el desarrollo de software. Hablo por experiencia, ya que he tratado de hacer esto a menudo en mi carrera, y cada vez que el resultado final es que mi propio estado disminuye a los ojos de la empresa; Incluso me despidieron o renuncié por la frustración después de que no pasó nada, simplemente por tratar de mejorar la cultura de desarrollo que me rodea a las prácticas modernas.

Si su compañero de trabajo no era ignorante, podría mostrárselo. Sin embargo, dado que lo son, no hay nada que pueda hacer, ya que no son capaces o no se preocupan lo suficiente por el software como artesanía para esforzarse por adoptar mejores prácticas de codificación. Lo más probable es que si lo intentas, lo ignorarán o perderán el tiempo sin comprender realmente, lo que por lo que parece es lo que ya están haciendo ("Desarrollo de prueba y error", es decir, simplemente pirateando el código hasta que se detengan los errores) .

Wayne Molina
fuente
44
Agradezco la respuesta, sin embargo, me resulta difícil de creer, principalmente porque era exactamente este tipo de programador de "solo hazlo" hace varios años. Nadie me lo mostró, tuve que descubrirlo todo por mí mismo, pero estoy seguro de que un líder lo suficientemente persuasivo (si hubiera existido) habría podido efectuar el mismo cambio. El hecho de que algunas personas aprendan todo esto independientemente no significa necesariamente que todos los demás sean una causa perdida.
Aaronaught
2
Eso es cierto, pero en mi experiencia si las personas se preocupan por mejorar, necesitan poca motivación para inspirarse porque el deseo ya está ahí; pueden necesitar un empujón o un consejo, pero entienden y quieren mejorar, solo necesitan orientación. Yo era de la misma manera; Aprendí malas formas de hacer las cosas y pensé "Tiene que haber una mejor manera" y comencé a investigar. Sin embargo, lo que he visto es que las personas que no mejoran o muestran un deseo de mejorar son causas perdidas porque no quieren mejorar. Dicho esto, la mejor de las suertes en demostrarme que estoy equivocado :)
Wayne Molina
1
Creo que ese es el tipo de declaraciones que deben justificarse. Ciertamente me interesaría escuchar (y estar más dispuesto a votar) algunas experiencias del mundo real, con respecto a lo que intentaste sin éxito (y por qué no tuvo éxito).
Aaronaught
1
Esto es cierto a veces, por ejemplo, " perro viejo, nuevos trucos ": intente explicar a alguien cómo las técnicas han aumentado la eficiencia de recuperación de datos en un 800% y el compañero de trabajo simplemente se encoge de hombros.
Resumen de
2
El punto es que puedes hacer eso y la gente te seguirá, pero necesitarás clasificarte más alto en la jerarquía. No puedes hacerlo como desarrollador simple en la mayoría de los equipos. Muchos colegas solo pueden tomar consejos no solicitados de alguien más alto en la jerarquía. Si estás en el mismo nivel, se sentirán heridos y atacados. Recuerde que se gana el respeto. Si los tratas bien y lo comunicas agradable y agradablemente, puede funcionar, si también estás en el mismo nivel.
Falcon