Ya tienes buenas ideas
Las ideas que delineas en tu pregunta suenan excelentes. Es una gran sorpresa que no encuentres el éxito. Es 2012 y la revolución orientada a objetos ha pasado desde hace mucho tiempo del estado de la técnica al estado de la práctica. Parece que a menos que tenga muy poca rotación y muy poca contratación, le resultaría difícil no obtener varias docenas o incluso cien buenos programadores orientados a objetos sólidos.
¿Ágil u orientado a objetos?
Usted menciona algunas tecnologías ágiles como TDD y algunos conceptos más nuevos, por lo que no sea demasiado duro con las personas por no adoptar algo que todavía luchan activamente algunos equipos de gestión. Algunos afirman abrazar a Agile, pero cuando hablan de eso, significa lo que dicen que significa. La organización no se caracteriza por equipos que toman decisiones y se adaptan, sino por un fuerte control jerárquico de estilo contractual.
Pero volvamos a la orientación a objetos. No menciona el análisis o diseño orientado a objetos, y no estoy muy seguro de qué lenguaje de programación está dando paso a qué lenguaje de programación orientado a objetos. Sé que UML está teniendo problemas de popularidad entre muchos programadores orientados a objetos. Después de haber sido completamente entrenado en OOAD, creo que puede ser como aprender la cultura y la historia de un país cuyo idioma natural desea aprender. Por ejemplo, si quisiera aprender griego, podría aprender el alfabeto, el vocabulario y la gramática, pero si ignorara la rica historia y cultura, extrañaría mucho. En cualquier caso, si aprende todo sobre un lenguaje de programación orientado a objetos, pero nada sobre OOAD, creo que se ha perdido una oportunidad importante.
¿Problemas para superar?
Puente demasiado lejos? Si le pide a la gente que aprenda algo pequeño a la semana, en un año, entre las personas que participan, habrá muchos cambios. Si les pide que cambien todo lo que saben, será acogido con beneplácito por algunos, difícil para muchos e imposible para otros. Algunos cambios como el control de fuente están localizados. Tu transición de no hacerlo antes, tuviste un entrenamiento que no estaba estresando los límites de la memoria, alguien te guió a través de él la primera vez, y luego el día a día fue bastante fácil.
Otros cambios son generalizados. Por ejemplo, deshacerse de C y cambiar a Java requiere capacitación, configuración y grandes cambios en el día a día para adoptar un nuevo IDE, un nuevo compilador, un nuevo lenguaje, una nueva API, un nuevo modelo de implementación, etc. Este es el tipo de lo que ocurre con mayor frecuencia junto con un programa piloto o una reestructuración corporativa.
¿Liderando una revolución? Si las personas que actualmente realizan el trabajo tienen un historial de recompensas y la empresa no parece estar en peligro de fracasar, ¿cuál es su motivación para el cambio? Si pareces un extraño que quiere señalar la dirección y dejar que rindan cuentas por los resultados que no pueden predecir, puede parecer todo riesgo, no hay recompensa.
¿Poder de posición o liderazgo de ideas? Muchas organizaciones operan en función del poder de posición. Si le falta el apoyo visible de los gerentes, jefes de sección, directores y vicepresidentes, usted es simplemente un líder de ideas. Algunas personas están en la peligrosa posición de tener una idea y no poder entretener una segunda. Si puedes mostrarles en lugar de decirles, eso ayudará mucho a callar a los escépticos e interesar a los aliados talentosos.
¿Base de apoyo demasiado pequeña? Haz un triaje entre esas 250 personas y clasifícalas en tres categorías: listas para abrazar, dispuestas a aprender y no dispuestas a aprender. Tiene buenas razones para sentirse frustrado con algunas de las personas que no tienen interés en hacer un cambio. También podrías estar empujando una cuerda. Este es un esfuerzo perdido. Si tiene una idea de quién apoya el cambio, puede averiguar qué les interesa.
A diferencia de un triaje médico en el que la opción ética y práctica es ayudar al grupo intermedio que puede hacerlo con ayuda, usted puede invertir su energía y tiempo en función de su criterio y preferencia. Para su éxito, ¿por qué no cultivar el grupo que está listo para aceptar nuevas ideas? Pueden ser pocos al principio, pero como una bola de nieve, su visibilidad y credibilidad como defensor crecerán. Pronto la gente te preguntará cuándo será el próximo entrenamiento.
¿A largo plazo? Hasta que cultives un campeón para llevar las cosas detrás de ti, debes esperar invertir tiempo construyendo relaciones. Es posible que deba permanecer con los equipos que entrena durante más de un mes. Hasta que el equipo posea prácticas mejoradas para sí mismo, usted es solo un policía de tecnología o metodología. La tutoría es un proceso que puede llevar años. Hay muchas cosas que los desarrolladores no quieren hacer que crees que son importantes (creo que mencionaste específicamente las pruebas unitarias). Puede tomar un tiempo construir una visión compartida del valor que esto trae. Lo sé por experiencia porque una vez abogé por una herramienta de cobertura de código en una compañía de Fortune 500 que tenía una gran reputación de calidad, pero los gerentes y colegas por igual desconfiaban de comprometerse con ella.
¿Experto o de base? Mucho más rápido que la tutoría sería fomentar el apoyo de base que proviene de cada miembro del equipo. Comenzando con un equipo de diez especialistas en software, si tuviera la opción de tener a una persona trabajando en el proceso todo el tiempo o diez personas trabajando en el proceso el diez por ciento del tiempo, elegiría el segundo. El proceso de base permite a los defensores sentir el impacto del enfoque y adaptar el enfoque para resolver mejor los problemas del equipo que posee el trabajo.
¿Ves la línea de la libertad? Parte de la introducción de las "Mejores prácticas" es lograr que las personas renuncien a la libertad de hacer las cosas de una manera común. Renunciar a la discreción del programador será más agradable si busca oportunidades para dejar muchas opciones a los desarrolladores. Lo que eligen está delineado por lo que exige una partición que podemos llamar la línea de libertad. Puede ser necesario hacer divisiones similares y bien justificadas sobre prácticas organizacionales, regionales / específicas del sitio, de equipo y personales.