Hay dos resultados que desea refactorizar. Desea formar un equipo para mantener un ritmo sostenible y desea cero defectos en la producción.
La refabricación se lleva a cabo en el código y en la compilación de prueba de la unidad durante el desarrollo controlado por prueba (TDD). La refactorización puede ser pequeña y completa en una pieza de código necesaria para terminar una tarjeta de historia. O bien, la refacturación puede ser grande y se requiere una tarjeta de historia técnica para abordar la deuda técnica. La tarjeta de historia se puede colocar en la cartera de pedidos del producto y priorizar con el socio comercial.
Además, a medida que escribe pruebas unitarias como lo hace con TDD, continuará refactorizando la prueba a medida que se desarrolla el código.
Recuerde, de manera ágil, las prácticas de administración, tal como se definen en SCRUM, le brindarán colaboración y le asegurarán que comprende las necesidades del socio comercial y que el código que desarrolló cumple con las necesidades del negocio. Sin embargo, sin las prácticas de ingeniería adecuadas (según lo define Extreme Programming) su proyecto perderá un ritmo sostenible. Muchos proyectos ágiles que no empleaban prácticas de ingeniería necesitaban ser rescatados. Por otro lado, un equipo disciplinado y empleado tanto en la gestión como en la práctica ágil de ingeniería pudo sostener la entrega de forma indefinida.
Por lo tanto, si su código es liberado con muchos defectos o su equipo pierde velocidad, refactorización y otras prácticas de ingeniería (TDD, paring, pruebas automatizadas, diseño evolutivo simple, etc.), no se están empleando correctamente.
Mientras lo hace, ¿podría definir el "buen diseño" objetivamente, también? Ayudaría si hubiera un puntaje objetivo para "elegante", "sensible" y "coherente". –
Agregué subjetivo a mi lista de etiquetas. – sal
Acabo de completar mi respuesta y agregué otros criterios para medir el valor de la refactorización – VonC