Modelos y Simulación · Tema 27

Formulación del problema

La pregunta que la simulación debe responder: de la queja al interrogante nítido.

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.

De la queja a la pregunta.
QuejaPregunta 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

  1. 1
    Escuchá la queja.

    Anotá el dolor en palabras del dueño, sin traducir todavía.

  2. 2
    Pedí las cuatro piezas.

    Sistema, duda, horizonte, decisión: lo que falte se pregunta.

  3. 3
    Recortá el alcance.

    Una sucursal, un mes, una decisión: lo demás es fase dos.

  4. 4
    Devolvela 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

Queja→4 piezas→Dict→Validador

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.

EXPERIMENTO 27

De vaga a nítida

3 piezas · 100 % para arrancar

Los resultados numéricos aparecen debajo.
Nitidez100%
Piezas3 de 3
Faltanada
NivelNítida

Pregunta nítida: se puede simular.

Cada pieza agrega un tercio de nitidez y una frase a la pregunta final.

Preguntas para explorar

  1. Apagá la métrica. ¿Qué pierde la pregunta?
  2. Con solo horizonte, ¿qué nivel da? ¿Arrancarías así?
  3. Formulá tu propio problema del curso con las 3 piezas.
Ver respuestas sugeridas
  1. Pierde lo medible: sin métrica no hay forma de saber cuándo respondió.
  2. Da 33%, vaga: arrancar así es pasear. Primero la métrica.
  3. 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.