Rescate y refactorización
Los proyectos con problemas son parte normal de nuestro trabajo.
El desarrollador se fue a la mitad. La agencia dejó de contestar. La fecha de lanzamiento es real y el código no está listo. Tomamos proyectos web en esta situación y los sacamos adelante.
Señales de que lo necesita
Seguramente reconoce al menos una.
- Quien lo desarrolló ya no está y nadie más lo entiende.
- Cada cambio pequeño tarda días y descompone algo que no tenía nada que ver.
- Las publicaciones se hacen a mano y todos se ponen nerviosos.
- El framework o el CMS va varias versiones atrás y la actualización se sigue posponiendo.
- Pagó funciones que nunca se terminaron.
- No tiene acceso completo a su propio código, hosting o dominio.
Cómo tomamos un proyecto
Cuatro pasos. El primero es pequeño.
Accesos e inventario
Reunimos todo: repositorios, hosting, dominios, bases de datos, cuentas de servicios externos. Si falta algo, le ayudamos a recuperarlo. Muchas veces esta es la parte más urgente.
Revisión
Leemos el código y la configuración y ponemos por escrito lo que encontramos. Qué funciona, qué es frágil, qué es riesgoso y qué haría falta para corregirlo. En lenguaje claro y con prioridades.
Estabilización
Respaldos, un despliegue que funcione, monitoreo, y primero los errores y problemas de seguridad más peligrosos. El objetivo es un proyecto que se pueda modificar sin miedo.
Seguir adelante
Terminar las funciones pendientes, atender el resto de la lista o refactorizar donde valga la pena. El orden lo decide usted con nosotros, con base en la revisión.
Refactorización
¿Reescribir o refactorizar?
A veces reescribir todo es la decisión correcta. Pero muchas veces significa pasar un año construyendo lo que ya tiene, mientras el sistema actual sigue necesitando correcciones.
Refactorizar parece más lento y casi siempre termina antes. Mejoramos el código sin sacarlo de operación, un área a la vez, y el sitio sigue funcionando todo el tiempo. Agregamos pruebas en las partes que tocamos, para que lo corregido no se vuelva a romper.
Trabajo típico:
- Dividir archivos grandes y enredados en partes que hacen una sola cosa.
- Eliminar código muerto y lógica duplicada.
- Agregar tipos, pruebas y linting a código que no los tenía.
- Actualizar frameworks y paquetes en pasos seguros.
- Documentar cómo encaja todo, para quien venga después.
Si creemos que reescribir es mejor opción, se lo explicamos en la revisión.
El despliegue va incluido
Corregir el código es solo una parte.
La mayoría de los proyectos con problemas también tienen un proceso de publicación con problemas. Como parte del rescate normalmente configuramos despliegue continuo: compilación y pruebas automáticas, ambientes de prueba y vista previa, y publicación a producción con un clic y opción de regresar. A partir de ahí, publicar una corrección es rutina.
Más sobre despliegue continuoQué recibe con la revisión
- Un resumen por escrito del estado del código, el hosting y el despliegue.
- Una lista de problemas con prioridades, de lo urgente a lo cosmético.
- Nuestra recomendación: corregir, refactorizar o reconstruir, y por qué.
- Un estimado para el siguiente paso.
Si quiere llevar esa revisión a otro equipo, puede hacerlo. Es suya.
Mándenos el proyecto que nadie quiere tocar.
Díganos qué es, con qué tecnología está hecho y qué está fallando. Empezamos con una revisión.