Estado allí, visto eso, falló en eso. Hice algunos colegas gruñones en el camino.
Lo primero, las palabras “imponer” y “equipo” no se sientan bien juntas en una oración que involucra a programadores. Como aprendí de la manera difícil, es más como pastorear gatos.
En segundo lugar, su equipo le ha dado algunos excelentes consejos.
- ¿Qué metodología UML debo usar para crear una aplicación?
- ¿Qué herramienta es la más utilizada para la evaluación de seguridad?
- Ingeniería de software: si una función tiene controles / condicionales y no está claro para qué sirven, ¿cómo podemos mejorar este patrón?
- Métodos ágiles o planificación adecuada, ¿cuál es el equilibrio correcto?
- ¿Cómo encuentra un nuevo programador todas las API para el idioma que está aprendiendo?
- Es muy dificil . Sí lo es. Para la mayoría de las personas, tienes que pensar literalmente al revés sobre la programación. Escribir una prueba primero es raro. Luego, aprende que la programación de estilo de pila de llamadas de procedimiento no divide bien las pruebas. Por lo tanto, debe cambiar a un enfoque OOP más programado a interfaces. Debe hacerlo más fácil (consulte ‘refactorizar el código’ más adelante)
- No tenemos tiempo Tienes que hacer un poco. ¿Cómo lo harás? Entonces hacerlo. Sabes que ganarás mucho ahorrando tiempo de reparación de fallas
- Demasiado basado en la interfaz de usuario . Normalmente es el asesino de TDD. Si la lógica de presentación y la lógica de negocios están vinculadas en los campos de formulario de la interfaz de usuario, no tiene ninguna posibilidad de hacer que TDD funcione, hasta que lo refactorice.
Entonces, hablando como un fanático de TDD (principalmente), no te has preparado para el éxito. Todavía.
Estas son las cosas que puedes hacer:
- Aplique TDD usted mismo . Tienes que ser el cambio aquí. Puede que eso no sea suficiente, pero es vital hacerlo
- Haga un emparejamiento con un conejillo de indias dispuesto. La mejor manera de enseñar TDD en mi experiencia es que haga un poco de programación de pares. Tú escribes el examen. Haga que su colega escriba el código de producción para que pase. De esta manera, la carga de crear un diseño comprobable recae en usted, y su colega obtiene la satisfacción de hacer que algo funcione, simplemente escribiendo “código normal”
- Haz que se registre . Esta es la única forma relevante de ‘imponer’ algo. Respalde su salida. Consíguelo en Git. Luego los curiosos atípicos pueden leer en silencio lo que has hecho.
- Refactorice el código Para evitar los problemas causados por las interfaces de usuario, lea un ejemplo simple del “cuadro de diálogo humilde” (y el original: el cuadro de diálogo humilde – Documentos) y utilice el enfoque de “diálogo humilde” para dividir el código de la interfaz de usuario. puede obtener todo lo que no son controles puros bajo prueba unitaria. Enseña cómo hacer esto
- Los objetos de dominio son fáciles de probar . Realice nuevos diseños codificando primero objetos de dominio puro, luego escribiendo capas de adaptador en la base de datos, servicios web y UI. De esta manera, toda su lógica empresarial clave tiene cero dependencias en el mundo exterior, por lo que es fácil realizar pruebas unitarias.
- Prefiere menos pruebas unitarias para comenzar . Simplemente aliente al equipo a comenzar con una prueba. Si esa es la única con la que se registra la clase, está haciendo una transición. Puedes mejorar esto más adelante.
Te deseo lo mejor Este es un trabajo de gestión difícil. No estás presentando TDD; ¡Está cambiando la forma en que un equipo de personas existente piensa acerca de cómo funcionan!
Si todo lo demás falla, muchas otras compañías simplemente requieren TDD como un requisito de nivel de entrada. Sabes qué hacer en ese caso 🙂