Desarrollo de aplicaciones web
Cuando lo difícil no son las pantallas sino el comportamiento: qué pasa con una conexión lenta, con dos pestañas abiertas, cuando la misma reserva se hace dos veces.
Qué incluye
- Planificación, reservas y disponibilidad, con zonas horarias y prevención de dobles reservas
- Paneles cuyos números cuadran con los registros que los generan
- Subida, procesado y almacenamiento de archivos con límites y validación sensatos
- Integraciones con calendarios, pasarelas de pago, mensajería y contabilidad
- Tareas largas fuera del ciclo de petición, con progreso visible y reintentos
Cuándo se necesita
Cuando el producto es el propio software y no una web que lo describe. O cuando una herramienta interna se ha convertido en la forma de trabajar y ya no puede ser un proyecto secundario.
También cuando una aplicación funciona con diez usuarios y se cae con doscientos.
Problemas que encontramos en sistemas existentes
- Horas guardadas sin zona horaria. Con el cambio de hora las reservas se mueven una hora y el cliente se presenta cuando no toca. Guardamos cada hora en UTC con su zona y probamos las fechas de cambio.
- Se comprueba la disponibilidad y se guarda por separado. Si dos personas pulsan a la vez, ambas se quedan la misma franja. Hacemos que la base de datos rechace la segunda reserva: la doble reserva pasa a ser imposible, no improbable.
- Un error de validación borra el formulario. Quien había escrito una solicitud larga se cansa y se va. Conservamos lo introducido y señalamos exactamente qué campo corregir.
- Errores que el equipo no ve. Una integración deja de funcionar y nadie se entera hasta que se queja un cliente. Registramos los fallos y avisamos a una persona el mismo día.
Qué hacemos
Identificamos las operaciones donde la corrección importa y las hacemos seguras en la base de datos: restricciones y transacciones en lugar de comprobaciones optimistas en el código.
Cada llamada externa tiene un comportamiento definido ante el fallo, una política de reintentos cuando procede y un registro que alguien pueda revisar después.
Cómo se desarrolla
- Fase de alcance sobre la máquina de estados, los fallos posibles y las integraciones
- Entregas por fases, empezando por la operación en la que el negocio no puede permitirse un error
- Pruebas centradas en las reglas, no en un porcentaje de cobertura
- Entrega con manuales de operación de las integraciones de las que ya dependes
Dinos qué tiene que hacer bien la aplicación.
Las operaciones que no pueden fallar importan más que la lista de funciones.