La descripción de la situación por parte de la OP es probablemente unilateral. Está bien.
Soy un desarrollador de envejecimiento (~54 yo) traído a una compañía no para gobernar, sino para proporcionar algo de experiencia. El personal de desarrollo era mucho más hábil, en el balance, que cualquier otro equipo con el que había trabajado anteriormente. Me enseñaron mucho, ¡especialmente sobre la humildad! Pero encontramos lugares donde su magia tecnológica no resolvía los problemas y en algunos casos los ocultaba, empeorándolos en última instancia. Aquí es donde realmente pude contribuir.
Tu protagonista suena severamente autocrático. Suena como si le hubieran dado un mandato del propietario. El dueño está descontento con el personal de desarrollo y ha traído a este tipo “duro y sin tonterías” para mejorar la velocidad de entrega.
Primero, mire a su personal. ¿Tienes debiluchos - desarrolladores que no “ven la Matriz”? Si es así, encuéntreles nuevos puestos dentro de la empresa o déles una buena referencia para un empleador que necesite sus habilidades únicas.
Odia los IDEs
Conozco algunos que sí. Me hace poner los ojos en blanco, pero al final no me importa. Si la gente produce usando vi
, entonces está bien. Me encantan mis IDEs.
No refactoriza el código, y no le importa el estilo (que es inconsistente en su propio código)
Bandera roja en la primera parte. ¿Es un copiador? También soy culpable de no preocuparme por el estilo, pero eso es porque utilizo mi IDE para hacer que mi código Python cumpla con PEP8 al instante. Pero él no usa un IDE…
Como nota al margen, el estilo fue previamente comprobado por una construcción nocturna, que comenzó a fallar desde la llegada de la nueva pista.
Rechaza la idea de una construcción nocturna, así como las pruebas automatizadas. Según él, “cualquier desarrollador profesional prueba su código de todos modos a mano, así que no hay razón para perder el tiempo escribiendo pruebas automatizadas”. La construcción nocturna también es una pérdida de tiempo, según él.
Esto también activa una bandera roja, pero por razones diferentes a las que podrías esperar. Antes de que este tipo fuera contratado, ¿cuántas veces le dijeron al dueño que no podía hacer X (dar una demostración, usar el sistema, etc.) porque la construcción nocturna fallaba? ¿Qué pasa si el propietario percibe que el problema es la construcción nocturna? ¿Qué crees que le diría al Plomo que hiciera?
Pero me preocupa la actitud del Plomo; las pruebas automatizadas son increíbles. Como antes, el jefe puede no entender el valor de las pruebas, pero seguramente sabe que el Y% de los cheques de pago del personal de desarrollo las pagan. Cuando llegué a mi actual empresa, la “mafia de la cobertura de pruebas al 100%” se había apoderado del personal de desarrollo y elevó los costos. Una manzana podrida más tarde y el personal de desarrollo ronroneaba de nuevo.
Él piensa que el control de versiones es mayormente inútil…
Esta es una bandera roja del más alto nivel. Está tan equivocado como es posible. Está siendo irresponsable con el dinero del dueño.
Exagera la importancia de la optimización del código.
En su día, la optimización del código podía hacer la diferencia. Ahora las máquinas son tan rápidas que es menos importante. En cambio, ahora tenemos que preocuparnos por el rendimiento de la base de datos y el rendimiento de la red. Pero su hábito de “optimización de código” es difícil de romper, créame. Tengo que hacer que no me preoptimice. Al menos su comportamiento en este caso no es destructivo, excepto por el tiempo que lleva. (¿Tiene números para su “mitad de su tiempo” o es una hipérbole? Si está criticando a su supervisor, no se puede permitir ninguna hipérbole. Debe ser patológicamente objetivo.)
Escribe todo el SQL a mano, y rechaza la idea de un ORM.
¡Culpable de los cargos! No entiendo el miedo de la gente a los SQL. No entiendo el enterrar el SQL, que es simple, bajo capas de ORM que se ofuscan. No puedo ayudarlo aquí :-D Pero por favor, vuelque todo su SQL en un lugar - no lo distribuya todo en su código.
y dos de los cinco desarrolladores nunca usaron SQL antes.
Eso es inaceptable. Estamos en el año 2016. Necesitan capacitarse.
Rechaza los frameworks y bibliotecas de terceros, considerando que es mucho más fácil escribir cosas desde cero.
No podría estar más equivocado. Dudo que su compañía sea tan especial que sus utilidades necesiten ser escritas en casa. Teníamos algunos desarrolladores que abrazaban herramientas de terceros - hasta que hacían algo de una manera que no le gustaba al desarrollador. Era una excusa para tirar la herramienta y escribir la suya propia. Esto sólo aumenta la carga de trabajo del equipo de desarrollo, ralentizándolos aún más. Este código inútil es caro de escribir, probar, depurar y mantener. Gastamos tanto dinero para -cero beneficios. Estos desarrolladores se han ido ahora.
Decidió abandonar todas las librerías y frameworks de JavaScript excepto jQuery, afirmando que cuando empezó a programar en JavaScript hace quince años, no había frameworks, y la vida era mucho más fácil.
Este no está tan claro. La razón es que la vida era mucho más fácil hace 15 años es que la pregunta de negocios era mucho más simple. De ahí es de donde viene el problema. La web se inventó como un sistema de lotes (rellenar un formulario, enviarlo, obtener una respuesta, repetir) y ahora estamos tratando de escribir aplicaciones web que se comportan como aplicaciones de escritorio. Su observación es correcta, las cosas son difíciles ahora. Pero no se da cuenta de por qué. La complejidad de la herramienta es en respuesta a una pregunta de negocios más complicada. Por lo tanto, toma malas decisiones.
Estamos usando AngularJS y parece ser decente. Como todas las herramientas poderosas, puede ser usado para el bien o para el mal.
Él piensa que los dispositivos móviles (incluyendo las tabletas) son sólo una exageración, por lo que no hay razón para perder un tiempo precioso para asegurar la compatibilidad del sitio con esos dispositivos y para hacer un diseño receptivo. El producto es una aplicación web pública que no se espera que se use mucho de los dispositivos móviles.
Se equivoca otra vez. No son exageraciones. Están aquí para quedarse porque son útiles. PERO el negocio no lo necesita. No desarrolles cosas que no necesitas. Es caro.
El diseño de respuesta, sin embargo, podría ser muy interesante tener para esta aplicación,…
¿Es tan interesante que pagaría por el desarrollo personalmente? Si es una buena idea, deberías poder vender la idea al propietario. Si no, no te gastes ni un céntimo en ello.
Pide al equipo que deje de usar internet (especialmente StackOverflow) y que confíe en sus cerebros, la documentación offline (¡ni siquiera sabía que Microsoft todavía vende CDs de MSDN!) y los libros.
Se equivoca. Internet es genial para esto. Si el personal de desarrollo está copiando y pegando desde Stackoverflow sin entender cómo funciona el código, entonces también se equivocan. ¿Hay tiempo para el entrenamiento y la mejora personal en el programa de desarrollo? Es difícil no copiar-pegar robóticamente cuando siempre estás bajo el arma.
Aunque tengo información limitada, hay muchos problemas aquí. Parece que el dueño no ha conseguido el código que está pagando tan rápido como espera. Suena como si hubiera escuchado muchas excusas sobre cosas que no le importan; está concentrado en el resultado. Si estoy en lo cierto, tiene una herida autoinfligida, y la ha reabierto más de una vez. Esta pista es la solución del propietario al problema que el personal de desarrollo ha planteado, y dada su limitada información, es comprensible.
También apostaría que usted está dirigiendo una tienda no agilizada y tiene una pobre definición de los requisitos que cambia a medida que sopla el viento. No hay una capa de aislamiento entre el personal de desarrollo y el propietario. Excepto por este plomo.
Ahora, ¿qué puedes hacer?
1) Entrenar al plomo en el uso de pruebas automatizadas y manejo de códigos. Puede llevar tiempo ganar credibilidad con él - el dueño probablemente le ha dicho que el personal es defectuoso. Vea si puede evitar que haga mandatos tan amplios como “borrar toda esa basura de pruebas inútiles y reutilizar el servidor SVN”. Esto le dará tiempo para mostrar valor.
2) Continuar usando el manejo de código a nivel personal. Al menos así podrás recuperarte de tus propios errores. No le digas que estás haciendo esto, aunque tampoco le mientas.
3) Continuar con las pruebas automatizadas (pruebas de unidad, si no hay nada más) a nivel personal. Como antes, no lo mencione aunque tampoco lo oculte.
4) Trabaje con el líder para determinar cuáles son los problemas reales percibidos. Tengan una mente abierta; apuesto a que hay problemas reales con el personal. Trabaje con el plomo para abordar los problemas, no los síntomas.
5) Discuta con el plomo varios temas de desarrollo, como los beneficios de la cascada y el ágil. Ninguno de los dos es perfecto. Hágale preguntas como: “¿Bajo qué circunstancias valdría la pena hacer pruebas automatizadas?” Si da una respuesta dudosa, pregúntele cómo empresas exitosas como Google han logrado prosperar a pesar de ello.
Para que vea que estoy a favor de contratar al Lead y ver dónde tiene la cabeza. Construir la confianza. Acordar los problemas frente a los síntomas. Esto no siempre es fácil, especialmente cuando sientes que es como Godzilla y está destrozando tu trabajo.
Hay una posibilidad de que no pueda comprometerse. Aplastará las pruebas automatizadas. El manejo de códigos es para gente descuidada. Mi camino o la autopista.
Si ha llegado a este punto, sin embargo, será hora de que se vaya. Trabajar en un taller sin herramientas, y me refiero a software y herramientas de ingeniería de software - no construye tu currículum. Comenzarás a pudrirte de la misma manera que se ha pudrido el plomo. En ese caso, sigue adelante.