6.2Problemas recurrentes (playbook)
Lo esencial en 30 segundos
- Nombrar: un incidente se trata mejor con un síntoma preciso («el campo queda vacío») que con una impresión («no funciona»).
- Buscar la causa: enlace, consulta, derechos, dependencias, transacción — la misma molestia puede venir de varios niveles.
- Corregir en la raíz: la acción específica evita que el síntoma vuelva la semana siguiente de otra forma.
Hilo Yacine — el cuaderno de incidentes
Yacine lleva un cuaderno de incidentes para la aplicación del comercio. Cada entrada anota el síntoma visto por el usuario, la causa probable y la acción que resolvió el problema. Con los meses, las mismas familias vuelven: campos mal vinculados, consultas demasiado amplias, derechos mal aplicados, dependencias olvidadas en el despliegue y actualizaciones arriesgadas.
Reflejo: nombrar el síntoma, verificar la causa, aplicar la acción específica — y detectar lo fundamental que falta detrás de un síntoma que vuelve.
Un incidente, un síntoma
El primer error es corregir al azar. Se empieza por reproducir el incidente y describirlo con precisión: qué pantalla, qué campo, qué usuario, qué datos. Un síntoma claro ya divide por dos el tiempo de diagnóstico.
Del síntoma a la causa
La misma molestia puede venir del enlace de los campos, de una consulta mal filtrada, de un derecho mal configurado o de una dependencia ausente. Se suben los niveles uno a uno: datos, código, interfaz, entorno.
Corregir sin volver atrás
Una corrección duradera se acompaña de una prueba de no regresión y, si hace falta, de una nota en el cuaderno. Corregir un síntoma sin la causa es garantizar que volverá de otra forma.
| Síntoma | Causas probables | Acciones |
|---|---|---|
| Un campo no muestra el valor de la rúbrica esperada | enlace campo/rúbrica incorrecto o campo no asignado | verificar el enlace en la ventana y el recorrido; controlar HAjoute, HModifie y HEnDehors (N1.4) |
| La aplicación se bloquea al abrirse en casa del cliente | dependencias ausentes (dll, framework, controladores) | entregar con el instalador completo, verificar los requisitos previos y probar en una máquina virgen (N4.4) |
| Una consulta se vuelve muy lenta en producción | filtro hecho en WLangage en lugar de en la base, rúbricas no indexadas | filtrar en SQL (WHERE), indexar las rúbricas filtradas y unidas, acotar la consulta (N2.2) |
| Dos usuarios sobrescriben los datos del otro | base Classic compartida o ausencia de transacción | pasar a Cliente/Servidor, enmarcar las escrituras con transacciones y gestionar los conflictos (N4.1) |
| La actualización automática pierde o sobrescribe datos | conversión de estructura no probada, copia de seguridad ausente | hacer copia de seguridad, probar la conversión sobre una copia representativa y prever una vuelta atrás (N4.4) |
| Un derecho de usuario no se aplica | grupo mal configurado, control solo en la pantalla | definir los grupos por rol, verificar en el servidor y en la interfaz, probar con perfiles reales (N4.2) |
Guion listo para decir — calificar un incidente (30 s)
«¿Puede decirme en qué pantalla, qué campo y qué usuario aparece el problema, y con qué datos? Lo reproduzco, verifico la causa y corrijo en la raíz.»
Para guardarlo y encuadrar un incidente con un usuario con prisa.
Guion listo para decir — anunciar una corrección (30 s)
«He identificado la causa: [enlace / consulta / derecho / dependencia]. Corrijo, vuelvo a probar el recorrido completo y entrego la versión con una copia de seguridad previa.»
Útil para tranquilizar sin prometer a ciegas.
Modelo para copiar y pegar — ficha de incidente
Síntoma: [pantalla / campo / mensaje]
Usuario: [perfil] Datos: [juego afectado]
Reproducido: sí/no
Nivel: datos / código / interfaz / entorno
Causa probable: [...]
Acción aplicada: [...]
Prueba de no regresión: sí/no
Versión entregada: [x.y]
Modelo para copiar y pegar — consulta acotada e indexada
// Filtrar del lado de la base, acotar el resultado
MaRequete est une req
MaRequete = SQLExec("SELECT * FROM Commandes WHERE DateCmd = {ParamDate} LIMIT 100")
// Verificar el índice sobre DateCmd en el análisis
// No traer todo el archivo y luego ordenar en WLangage
Microempresa / presupuesto ajustado
Llevar un cuaderno de incidentes sencillo (fecha, síntoma, causa, acción): la memoria del equipo vale más que una herramienta pesada que nunca se rellena.
PYME Orán
Adaptar a las realidades locales: puestos antiguos, conexiones inestables, intervenciones rápidas en el mostrador y explicaciones en francés sencillo.
Remoto / multisitio
Centralizar los registros y documentar cada correctivo para que el colega a distancia lo entienda sin volver a llamar al usuario.
Intercultural
Describir el síntoma sin jerga del oficio antes de transponer: un mensaje claro vale más que un número de error incomprendido.
Reto 48 h — aplícalo mañana
Tome un incidente real y aplique la ficha: síntoma descrito, nivel localizado, causa verificada, acción aplicada y prueba de no regresión.
- Sé calificar un síntoma, localizar el nivel y aplicar una corrección específica.
- Tengo una ficha de incidente reutilizable y un reflejo de no regresión.
- He hecho el reto de 48 h o he planificado su fecha.
Una consulta de la aplicación se vuelve muy lenta en producción. ¿Cuál es la primera acción?
Reflejo: nombrar el síntoma, verificar la causa, aplicar la acción específica — y detectar lo fundamental que falta detrás de un síntoma que vuelve.