¿Qué se puede hacer cuando "predicar con el ejemplo" no funciona? [cerrado]

40

He estado trabajando para una gran empresa (más de 8000 empleados) durante casi 2 años y me contrataron justo después de que terminé mi curso de estudio.

Todo el mundo aquí tiene que lidiar diariamente con el código heredado que a menudo está muy mal diseñado y lleno de piruetas. Al principio, mantuve un perfil bajo, tratando de no criticar demasiado las cosas. Pero la situación, tal como está, se ha vuelto muy difícil de manejar y parece que nadie está dispuesto a mejorar / reemplazar las herramientas que utilizamos.

Para ser más explícitos tenemos:

  • Una herramienta de control de origen obsoleta (Visual SourceSafe)
  • Makefiles antiguos simples que solo admiten la reconstrucción completa
  • .def archivos que deben mantenerse manualmente y por separado para todas las arquitecturas existentes
  • los encabezados monolíticos archivos y proyectos con muy pocos archivos diferentes (pero cada uno tiene alrededor de 3000 líneas de código, que a veces se ocupa de tareas muy diferentes)
  • no se usan los "nuevos" recursos de idiomas (el pozo std::string no es tan nuevo, pero nadie lo utiliza excepto yo)

Decidí, hace unos meses, hacer algo al respecto, diseñando un nuevo entorno de compilación. Podría conseguir que las compilaciones incrementales funcionen de manera confiable, tiempos de compilación más rápidos, proyectos mejor estructurados, generación automática de archivos .def . Incluso creé un puente de / a Git a / desde Visual SourceSafe.

Mostré mis logros a varios colegas y a nuestro jefe, pero fue como si a nadie le importara. Eran todos como: "Bueno ... la gente está acostumbrada a hacerlo de esa manera ahora. ¿Por qué cambiaríamos las cosas?"

Los cambios que sugerí se diseñaron para que pudiéramos tener una transición suave del sistema antiguo al nuevo. Cada mejora podría aplicarse por separado y de forma segura.

Incluso intenté involucrar a algunos de mis compañeros de trabajo en los cambios. Pero hasta ahora, no hay éxito.

¿Ya te has enfrentado a una situación similar? ¿Qué se puede hacer cuando "predicar con el ejemplo" no funciona?

    
pregunta ereOn 27.01.2012 - 09:40

9 respuestas

46

Apunte a la cabeza : "Liderar con el ejemplo" debería tener en mente una mejora, pero debería estar orientada a personas que no están en la tecnología. Tal vez haya invertido demasiado tiempo en mejorar la tecnología, pero no lo suficiente en lo que está pasando en sus cabezas. Piense en los factores determinantes de por qué hay oposición para cosas nuevas. En muchos casos solo temen algún riesgo. Identifique esos riesgos y encuentre argumentos en contra de ellos.

Coge la carne fresca : es más fácil ganarse a los empleados que quieren cambiar las cosas. Los notas inmediatamente cuando los ves.

Evita la carne podrida : Algunos nunca simpatizarán con tus ideas. Déjalos a un lado.

Crecer a una masa crítica : encuentre personas que simpaticen con sus ideas. Gana el sobre uno por uno. En algún momento, si se alcanza una masa crítica, más y más personas seguirán su ejemplo voluntariamente.

Vocabulario de administración : los administradores no están interesados en mejores diseños. Su lenguaje es el dinero y el tiempo. Deje en claro cuántas horas de hombre se pierden por errores. Deje en claro que los clientes insatisfechos que encuentran errores no son rentables. Demuestre cuánto más rápido puede implementar una nueva característica. Necesitas elegir otro vocabulario para gerentes.

Todo se trata de procesos : las mejores tecnologías no hacen que los mejores programadores y programas. Si tiene buenos procesos en ejecución, incluso las tecnologías obsoletas conducen a buenos resultados. Piensa en el esfuerzo y se pierde el tiempo. Tal vez no sea la tecnología, pero algo en los procesos está yendo muy mal. En la mayoría de los casos es una falta de comunicación.

Buscar una nueva empresa : ya has hecho mucho. Aún puedes intentar mejorar las cosas, pero también depende de ti decidir cuánto tiempo quieres intentarlo y cuánta energía quieres invertir. Tenga en cuenta: incluso si no puede lograr muchas mejoras, aprenderá mucho de sus esfuerzos. En algún momento necesitas seguir adelante.

    
respondido por el Theo Lenndorff 27.01.2012 - 10:36
30

¿Alguna vez te has parado a considerar que podrías estar equivocado?

Entonces, lees algunos diseños y libros de patrones en la escuela y estás marginado de lo que parecen prácticas comparativamente anticuadas donde trabajas. Sin duda, probablemente sean mejores ideas y los nuevos proyectos deberían comenzar teniendo esto en mente, pero parece que estás en un nivel completamente diferente.

Los desarrolladores de pastores son como tratar de apilar gatos, ellos tienen una mente propia y una forma preferida de hacer las cosas, ya sea correcta o no. Me cuesta mucho hacer cumplir las mejores prácticas y administrar un equipo de 2 desarrolladores, pero usted trabaja para una compañía que tiene 8000.

Ese es un número asombrosamente enorme. Incluso un simple cambio en el proceso que establece que todos los desarrolladores deben programar reuniones y el tiempo fuera de la oficina en el calendario público se convierte en una política enormemente compleja y difícil de implementar en todos los ámbitos. También requeriría un impulso significativo de la administración para asegurarse de que la política sea aceptada y adoptada en todos los ámbitos.

Puede que no lo piense, pero algo tan simple como pasar de monolítico a múltiples archivos de encabezado, o mover el control de versión de SourceSafe a Git requiere un enorme esfuerzo e inversión por parte de todos los involucrados. Requeriría:

  • Soporte de gestión significativo

  • aceptación en toda la empresa

  • Inversión de las horas de reunión para todos los desarrolladores para informarles de las nuevas iniciativas (las reuniones cuestan horas de trabajo, las horas de trabajo cuestan dinero)

  • la capacitación debe planificarse y establecerse para garantizar que incluso los desarrolladores más estúpidos sepan lo que están haciendo

  • Incluso suponiendo una hora de capacitación, a través de 8000 desarrolladores x € 50 / h = € 400000 costo de la capacitación. Esto es más dinero de lo que mi único equipo de desarrollo de software obtiene presupuestado en un año completo para salario, software y hardware. Esa es una inversión excepcional que está proponiendo.

Pero está diciendo: "Piense en todo el tiempo que podría ahorrarse a través de aumentos de productividad". Con razón, pero una inversión significativa es un riesgo importante, por lo que es mejor que esté absolutamente seguro de que tiene razón al respecto antes de firmarlo. Si ninguno de los hombres mayores te respalda, no puedo justificar el gasto. En última instancia, podemos ser ineficientes, pero somos coherentes y con 8000 desarrolladores en toda la empresa, la consistencia es lo más importante.

Para hacer esto, necesita la firma de varias personas de nivel superior, y necesita encontrar de manera precisa y objetiva una manera de medir el tiempo perdido del desarrollador para la ineficiencia. Ese tiempo equivale a dólares y solo dólares y la política te ayudará a ganar esta batalla.

    
respondido por el maple_shaft 27.01.2012 - 13:40
7

Para mí, lo que describiste no me suena como "predicar con el ejemplo", parece que hiciste una propuesta y fuiste rechazado. Para liderar con el ejemplo, debe mostrar a las personas que su camino es mejor. De los problemas que mencionaste, veo tres que puedes comenzar a usar tus propios cambios.

  

Makefiles antiguos simples que solo son compatibles con la reconstrucción completa.

Crea tus propios makefiles localmente y muestra cuánto más eficientemente puedes trabajar con ellos.

  

Los encabezados monolíticos archivos y proyectos con muy pocos archivos diferentes (pero cada uno tiene alrededor de 3000 líneas de código, que a veces se ocupa de tareas muy diferentes)

O bien rompa los existentes cuando los toca (sin romper la compilación) o introduzca archivos de encabezado más pequeños cuando escriba un nuevo código. Cuando las personas comiencen a trabajar con ellos, se darán cuenta de que no necesitan la duplicación.

  

no se utilizan los "nuevos" recursos de idiomas (bueno, std :: string no es tan nuevo, pero nadie, excepto yo, lo usa)

Continúe introduciendo nuevas facilidades de idioma cada vez que toque el código antiguo o introduzca un nuevo código. Asegúrate de que estás simplificando las cosas. No se desanime de este. La mayoría de nosotros somos perezosos. Si vemos que una nueva función de idioma facilita las cosas, la adoptaremos.

Después de unos meses, si otros desarrolladores comienzan a adoptar sus mejoras, puede acercarse a su jefe de nuevo sobre cambios más radicales, como actualizar su sistema de control de código fuente. Sin embargo, debe asegurarse de que los otros desarrolladores vean el beneficio o nunca lo lograrán. Una forma de abordarlo podría ser sugerir probar Git en un proyecto pequeño en el que solo unos pocos desarrolladores están activos. De esa manera puede promoverlo como una evaluación, no como una transición a gran escala hacia un sistema desconocido.

Finalmente, si después de varios meses de intentarlo, nadie parece estar interesado en mejorar cómo se hacen las cosas en su empresa, debe considerar realmente si es una buena opción para usted.

    
respondido por el Bill the Lizard 27.01.2012 - 14:06
5

Además de Lionel Barret (que en su mayoría estoy de acuerdo), considere también la posible motivación para la resistencia.

  • Evalúe el costo del proceso actual
  • Evalúe el costo del proceso, ya que será como el suyo

Pero también:

  • Evaluar el costo del cambio en el término de
    • Dinero para gastar para configurar el nuevo entorno para cualquier persona
    • Es hora de gastar para entrenar a todos para que estén acostumbrados al nuevo modo (puede ser fácil para usted, pero no tan fácil para las personas que no están conscientes de lo que está haciendo)
    • Tiempo transcurrido requerido para administrar el cambio de una manera no disruptiva.

Tengo un sospechoso: ¿Cuántas personas hay en tu compañía que te gusten en términos de edad y cultura (yo hombres "escuela" y "tipo de escuela")? ¿Cuántas personas como usted se espera que sean contratadas en los próximos dos o tres años y cuántas se retirarán o cambiarán su papel en la organización?

Mi sospechoso es que estás en una posición con poca fuerza para cambiar la empresa. En esa situación, la compañía lo cambiará o lo "expulsará" (en el sentido de que se convertirá en su propio deseo de desaparecer), si no es capaz de esperar más tiempo.

Pero puede que la compañía esté evaluando que los costos adicionales que le dije se pueden ahorrar para permitir que el proceso de cambio se produzca de manera espontánea a la espera de que ocurra el reemplazo natural de las personas. Estás justo al comienzo de un proceso que no puedes ver porque no hay nada (todavía) detrás de ti.

    
respondido por el Emilio Garavaglia 27.01.2012 - 10:34
3

En este punto, solo puedo agregar una referencia al artículo de Joel Cómo hacer las cosas cuando solo eres un gruñido . Las secciones incluyen:

  

Estrategia 1 Solo hazlo

     

La estrategia 2 aprovecha el poder del marketing viral

     

Estrategia 3 Crea un bolsillo de excelencia

     

Estrategia 4 Neutraliza a los Bozos

     

Estrategia 5: Alejarse de las interrupciones

     

Estrategia 6 Conviértete en inestimable

Resumiría el artículo como "El cambio debe comenzar contigo".

    
respondido por el Joshua Drake 27.01.2012 - 17:04
1

Lamentablemente, las personas se atascan en una rutina y desarrollan la mentalidad de que 'funciona, todo el mundo lo usa bien, ¿por qué cambiarlo?' Y se pone furioso.

Lo ha hecho de la manera correcta, no solo por quejarse sino también por desarrollar una solución viable como un reemplazo, ahora solo necesita comprar.

Muestre su gestor de línea directa (o líder técnico). Si no les interesa, ¿tienes a alguien a cargo del control de cambios o la innovación?

Sin embargo, potencialmente, tus ideas y tu trabajo podrían ignorarse y la situación se mantendrá tal como está.

    
respondido por el Amy 27.01.2012 - 10:03
1

Debe declarar su caso de manera que su jefe esté de su lado. Por cierto, este tipo de cambio lo propone un director técnico o gerente de proyecto, por lo que deberá comprometerse con el proyecto. (Como ruta alternativa, puede proponer una auditoría técnica, es probable que un forastero diga lo mismo que usted, pero tendrá más peso).

Hasta ahora, él no ve la necesidad de cambiar, parece que los cosméticos le cambian a él: es costoso sin beneficios obvios, excepto para satisfacer la fantasía de un desarrollador. Sólo dos cosas le importan: el flujo de dinero y un equipo estable. La tecnología es una caja negra, si funciona, es suficiente.

Primero dinero, necesitas demostrar que la configuración actual le está costando dinero. ¿Cuánto le ahorraría el costo / hora de un dev y cuántas horas de compilación más rápidas? Haz las matematicas. Además, recopile artículos o testimonios sobre los riesgos del código actual y muéstrele números de miedo: "debido a SourceSafe / Bad Coding Practices, nuestra compañía perdió $ XXXK".

En segundo lugar, el equipo, su jefe puede estar atascado con viejos programadores gruñones que no quieren cambiar su forma de ser. Si se establece el primer punto, también debe proponer una solución a este problema. Cuantos son ustedes ? Podría ser interesante subrayar que será difícil reemplazar a alguien porque la tubería de codificación actual es bizantina. Necesitas proponer un plan para actualizar al equipo. Conozca las mejores prácticas de la industria y compruebe que siguen las nuevas reglas.

Finalmente, debe proponer un plan para cambiar el código base, dividido en pequeños proyectos, con hitos y asignación de recursos. De hecho, se está vendiendo a sí mismo como gerente de proyecto y los cambios son obligatorios para tener un canal de código sólido.

    
respondido por el Lionel Barret 27.01.2012 - 10:09
1

¿Trabaja en una organización que cree que hacer las cosas bien, la eficiencia y la innovación conducen al éxito y la rentabilidad? ¿O que la búsqueda de ingresos y la concentración en mantener las ventas son los inquilinos del éxito?

Las empresas que se comportan como usted está describiendo están arraigadas tecnológicamente. En un mercado competitivo, no podrían competir con una empresa que se centrara en los individuos y la innovación.

Si eres la persona que dices que eres, entonces trabaja en algún lugar que honre y recompense tu espíritu. Eventualmente, después de años de establecerse, comenzarás a comprometerte por la misma filosofía que tus superiores abrazan. Trabaje en otro lugar (probablemente una organización más pequeña) que valore el trabajo duro, la inspiración, la creatividad y el progreso.

Si no se arriesga y hace esto pronto, eventualmente se conformará y no podrá continuar alimentando su curiosidad y creatividad porque se opone filosóficamente en su grupo de pares actual.

La excelencia es una actitud y una visión del mundo.

Solo debes saber que esta experiencia te dio la idea de saber qué evitar, mantener tu buen ojo para la complacencia y el proteccionismo para que puedas detectarlo pronto.

En su próxima entrevista, haga preguntas como "¿Qué tipo de innovaciones provienen de sus empleados", "¿Cuáles son algunos cambios que provienen de la creatividad individual?", "¿Qué talentos individuales puedo aportar a este equipo?", "¿Qué impulsa? ¿El éxito de sus organizaciones? "," ¿Cómo está su organización abrazando continuamente la innovación tecnológica? "... Las respuestas a estas preguntas son extremadamente reveladoras. Muchas organizaciones no tienen una visión, o aquellas que crearon la visión se han ido, y la organización es dirigida por contadores. Si está entrevistando al Director de Tecnología, pregúntele si considera que la organización es una empresa de tecnología.

    
respondido por el Ben DeMott 27.01.2012 - 20:33
-1

Si no te gusta el entorno en el que trabajas, te estás haciendo un flaco servicio. Necesitas estar rodeado de personas que tengan intereses y objetivos similares a los que tienes profesionalmente. Sé que a veces es más fácil decirlo que hacerlo, pero la sensación de mirar hacia atrás varios años y sentir que ha perdido el tiempo es peor que el temor a correr un riesgo.

Como alternativa, si desea desarrollarse en un sistema o en un entorno que utilice tecnología y / o metodologías específicas, le sugiero que busque un proyecto fuera del trabajo en el que pueda contribuir. Como mínimo, la variedad de trabajo en ambos sistemas satisfará la necesidad de algo diferente mientras encuentra su lugar.

Me parece que eres un pez fuera del agua. ¡Ve a buscar tu cuerpo de océano y nada!

    
respondido por el wavedrop 27.01.2012 - 20:57

Lea otras preguntas en las etiquetas