El prefactoring, abreviatura de "preparatory refactoring", es una práctica de ingeniería de software que consiste en reorganizar el código existente antes de implementar una nueva funcionalidad, con el fin de que esta encaje de forma natural en la estructura del proyecto. En lugar de forzar el cambio sobre una base poco adecuada o aplazar la limpieza del código como tarea secundaria, el equipo refactoriza primero y añade la característica después.
La técnica, divulgada en una entrega de la serie Tech on the Toilet del equipo de Testing de Google, se apoya en la máxima atribuida a Kent Beck: "primero haz que el cambio sea fácil; luego, haz el cambio fácil". Aplicarla, según se describe, reporta cuatro ventajas concretas: facilita la implementación de nuevas funcionalidades, agiliza las revisiones de código al permitir evaluar por separado el refactor y la feature, reduce la aparición de errores al aislar las limpiezas de la lógica funcional y permite deshacer los cambios con mayor seguridad, ya que cada modificación es pequeña y está acotada.
El artículo también señala que el prefactoring puede aplicarse a cambios que ya están en revisión: si un revisor sugiere una limpieza relacionada, conviene extraerla a un cambio base independiente para mantener el cambio principal centrado en la funcionalidad. Eso sí, no toda limpieza requiere ser prefactoring: si la refactorización no bloquea la feature, puede entregarse en un cambio posterior; si es muy pequeña, puede ir dentro del mismo cambio. La propuesta encaja con flujos de trabajo basados en revisiones de código pequeñas, frecuentes y reversibles, habituales en equipos de ingeniería de software de gran tamaño.
