01 · Punto de partida
Todo empieza con una queja
«La fila es un desastre» no es un problema formulado: no dice qué medir, cuándo ni para decidir qué. Formular es convertir la queja en pregunta simulable: sistema, duda, horizonte y decisión, por escrito.
- ¿Qué sistema duele y a quién?
- ¿Qué duda concreta hay que saldar?
- ¿En qué horizonte y para decidir qué?
- ¿Cómo sabremos que respondimos?
02 · La buena pregunta
Cuatro piezas obligatorias
Sistema
Dónde duele: la fila de la sucursal centro, no «el banco».
Duda
Qué se ignora: cuántos cajeros en hora pico, no «todo».
Horizonte + decisión
Cuándo y para qué: este mes, para contratar o no.
| Queja | Pregunta formulada |
|---|---|
| La fila es un desastre | ¿Cuántos cajeros necesita la sucursal centro en hora pico este mes? |
| El servidor se cae | ¿Qué latencia p95 tendrá con doble tráfico el viernes? |
| Falta stock siempre | ¿Qué punto de pedido evita quiebres en diciembre? |
03 · Técnica
Afilar en 4 pasos
- 1Escuchá la queja.
Anotá el dolor en palabras del dueño, sin traducir todavía.
- 2Pedí las cuatro piezas.
Sistema, duda, horizonte, decisión: lo que falte se pregunta.
- 3Recortá el alcance.
Una sucursal, un mes, una decisión: lo demás es fase dos.
- 4Devolvela firmada.
El dueño reconoce su pregunta por escrito: recién ahí se simula.
Queja
Emociona pero no guía
«Todo anda mal»: imposible de modelar, de medir y de dar por respondida.
Pregunta
Guía y se verifica
Con sistema, métrica y horizonte: el proyecto sabe cuándo terminó.
- Alcance
- Recorte explícito: qué entra en esta fase y qué no.
- Actor
- Quién decide con la respuesta y quién provee datos.
- Horizonte
- Ventana temporal de la pregunta y de la validez.
- Criterio
- Cómo se sabrá que la pregunta quedó respondida.
04 · En el código
La pregunta como dato
La pregunta vive en un diccionario versionado y un validador exige las cuatro piezas antes de arrancar el proyecto.
05 · En Python
Preguntas que se revisan solas
Python en tu navegador. La pregunta es un dict y su nitidez, una función.
pregunta = {
"sistema": "fila de la sucursal centro",
"duda": "cuántos cajeros en hora pico",
"horizonte": "este mes",
"decision": "contratar o no",
}
def incompleta(p):
return [k for k in ("sistema", "duda", "horizonte", "decision") if not p.get(k)]
print("faltan:", incompleta(pregunta))
print("faltan:", incompleta({"sistema": "fila"}))
Armar la frase final
def frase(p):
return "¿" + p["duda"].capitalize() + " en " + p["sistema"] + " " + p["horizonte"] + " para " + p["decision"] + "?"
print(frase(pregunta))
06 · Exploración
Laboratorio: afilador de preguntas
Activá las piezas que tu pregunta ya tiene: sistema, métrica y horizonte. El medidor muestra la nitidez y arma la frase resultante.
De vaga a nítida
3 piezas · 100 % para arrancar
Pregunta nítida: se puede simular.
Cada pieza agrega un tercio de nitidez y una frase a la pregunta final.
Preguntas para explorar
- Apagá la métrica. ¿Qué pierde la pregunta?
- Con solo horizonte, ¿qué nivel da? ¿Arrancarías así?
- Formulá tu propio problema del curso con las 3 piezas.
Ver respuestas sugeridas
- Pierde lo medible: sin métrica no hay forma de saber cuándo respondió.
- Da 33%, vaga: arrancar así es pasear. Primero la métrica.
- Respuesta abierta: si tiene sistema, métrica y horizonte, está lista para el Tema 28.
07 · Comprensión
Confusiones frecuentes
«El problema es obvio»
Lo obvio para uno es vago para otro. Escrito y firmado, recién ahí es obvio para todos.
«Preguntar mucho demora»
Demora una hora y ahorra semanas: cada pieza faltante reaparece como retrabajo.
«El alcance se define solo»
No: sin recorte explícito el proyecto crece hasta volverse impagable.
«La decisión es obvia después»
Si no se nombra al formular, nadie decide con los resultados: el informe muere en un cajón.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: detectar lo que falta
¿Qué le falta a {"sistema": "fila"} para ser pregunta?
def incompleta(p):
return [k for k in ("sistema", "duda", "horizonte", "decision") if not p.get(k)]
print(incompleta({"sistema": "fila"}))
Ver solución razonada
Faltan ['duda', 'horizonte', 'decision']: hay dónde, pero no qué, cuándo ni para qué.
Ejercicio 2: armar la frase
Generá la pregunta final del ejemplo y leela en voz alta. ¿Se entiende sin contexto?
pregunta = {
"sistema": "fila de la sucursal centro",
"duda": "cuántos cajeros en hora pico",
"horizonte": "este mes",
"decision": "contratar o no",
}
print("¿" + pregunta["duda"].capitalize() + " en " + pregunta["sistema"] + " " + pregunta["horizonte"] + " para " + pregunta["decision"] + "?")
Ver solución
Da ¿Cuántos cajeros en hora pico en fila de la sucursal centro este mes para contratar o no?: se entiende sola, luego se pule el estilo.
Ejercicio 3: afilar una queja
Convertí «el servidor se cae» en pregunta de 4 piezas como dict.
Ver una posible respuesta
p = {
"sistema": "API de pagos",
"duda": "qué latencia p95 con doble tráfico",
"horizonte": "el viernes pico",
"decision": "escalar o no",
}
print(p)
La queja se volvió simulable: sistema, métrica (p95), horizonte y decisión en cuatro líneas.
09 · Síntesis
Ideas para recordar
- Problema = sistema + duda + horizonte + decisión, por escrito.
- La queja emociona; la pregunta guía y se verifica.
- El alcance se recorta al formular, no al entregar.
- Sin decisión nombrada, el informe muere en un cajón.
- En Python: la pregunta es un dict validado y versionado.
En el próximo tema convertiremos la pregunta en números: la definición de objetivos.