Módulo 2: Vision And Mission

Una visión que dice NO

Descripción

Hasta ahora tratamos la visión como una brújula: algo que orienta hacia dónde va la empresa. Esta lección agrega la mitad que casi siempre se olvida al escribir una: una visión útil no solo dice hacia dónde SÍ vamos — también dice, con la misma claridad, hacia dónde NO vamos. Si tu visión es tan amplia que cualquier iniciativa "cabría" en ella, no tienes una visión — tienes una lista de deseos disfrazada de dirección. La prueba de fuego de una visión real no es "¿suena inspiradora?" — es "¿puedo usarla, hoy, para rechazar una idea que de otra forma habría aceptado?".

Esto es incómodo a propósito. Es fácil decir "sí" a todo lo que suena bien; decir "no" a una idea que también suena bien, solo porque no pertenece a esta dirección, es el trabajo real de tener una visión. En esta lección construimos y ejecutamos visionFilter, un modelo que toma la visión de Mercado —con lo que incluye y lo que excluye explícitamente— y una lista de iniciativas, y marca cuáles caben y cuáles quedan fuera. La lección demuestra, con código, algo que suena contraintuitivo hasta que lo ves ejecutado: una iniciativa puede ser una buena idea y aun así estar fuera de la visión.

Conexión con el módulo. Las lecciones 2, 3 y 4 te dieron el vocabulario para reconocer y ubicar una visión. Esta lección es donde ese vocabulario empieza a trabajar: no solo para describir el futuro, sino para decidir, hoy, qué construir y qué no. Es, en miniatura, el mismo principio que vas a ver a escala completa en el módulo 7 (strategy-to-roadmap), donde la estrategia entera filtra el backlog antes de que nadie calcule RICE — aquí lo ves por primera vez, a nivel de visión y con un modelo mucho más simple.

Una analogía cotidiana: el GPS que dice "ve a cualquier lado"

Imagina que le pides indicaciones a un GPS y te responde: "cualquier camino sirve, todos te llevan a algún lado". Técnicamente no te mintió — es cierto que todos los caminos llevan a algún lugar —, pero la respuesta es completamente inútil, porque un GPS útil no solo te recomienda una ruta: al recomendar esa ruta, automáticamente descarta todas las demás. Si el GPS te dice "gira a la derecha en la próxima calle", con eso ya te está diciendo, sin necesidad de nombrarlas una por una, que NO gires a la izquierda, que NO sigas derecho, que NO tomes la autopista. La utilidad del GPS viene, precisamente, de que descarta casi todas las opciones posibles y deja solo una.

Una visión de empresa funciona igual. "El mundo donde descubres lo que no sabías que querías" no es solo una invitación a construir cosas de descubrimiento — es, con la misma fuerza, un rechazo silencioso a convertirse en el buscador más rápido para encontrar exactamente el producto que ya sabes que quieres (eso es un GPS distinto, hacia otro destino), o en la tienda con el precio más bajo posible en cada categoría (otro destino más). Ambas cosas —búsqueda exacta ultrarrápida, precio más bajo garantizado— son negocios legítimos y rentables. Simplemente no son el negocio que esta visión describe. Decir "sí" a la exploración es, automáticamente, decir "no" a competir agresivamente en esas otras dos dimensiones — no porque sean malas ideas, sino porque un GPS que apunta a todos lados a la vez no orienta a nadie.

Ejemplo trabajado: ¿qué cabe en la visión de Mercado?

La visión de Mercado, escrita con precisión, no es solo la frase inspiradora — trae, explícitamente, lo que incluye y lo que excluye. Construimos visionFilter, que recorre una lista de iniciativas y, para cada una, revisa primero si choca con algo que la visión descarta, y si no, si conecta con algo que la visión incluye.

// visionFilter marca que iniciativas CABEN en la vision y cuales quedan
// fuera. Una vision util no es una lista de deseos: tambien DESCARTA.
// Una iniciativa puede ser buena idea y aun asi no pertenecer a esta vision.
function visionFilter(vision, initiatives) {
  return initiatives.map((initiative) => {
    const brokenExclude = vision.excludes.find((rule) => initiative.conflictsWith.includes(rule));
    const matchedInclude = vision.includes.find((rule) => initiative.supports.includes(rule));
    let fitsVision;
    let reason;
    if (brokenExclude) {
      fitsVision = false;
      reason = `choca con lo que la visión descarta: "${brokenExclude}"`;
    } else if (matchedInclude) {
      fitsVision = true;
      reason = `sirve lo que la visión incluye: "${matchedInclude}"`;
    } else {
      fitsVision = false;
      reason = 'no conecta con ningún "sí" de la visión';
    }
    return { initiative: initiative.name, fitsVision, reason };
  });
}

const mercadosVision = {
  statement: 'El mundo donde cualquier persona descubre en Mercado lo que no sabía que quería.',
  includes: ['curatedDiscovery', 'localSellerTrust', 'serendipity'],
  excludes: ['exactSkuSearchEngine', 'lowestPriceRace', 'genericMegastore'],
};

const initiatives = [
  { name: 'recommendationsEngine', supports: ['curatedDiscovery', 'serendipity'], conflictsWith: [] },
  { name: 'sellerTrustBadges', supports: ['localSellerTrust'], conflictsWith: [] },
  { name: 'lowestPriceGuarantee', supports: [], conflictsWith: ['lowestPriceRace'] },
  { name: 'oneClickReorder', supports: [], conflictsWith: [] },
];

console.log('=== ¿Qué cabe en la visión de Mercado? ===\n');
const results = visionFilter(mercadosVision, initiatives);
for (const r of results) {
  console.log(`${r.initiative}: fitsVision=${r.fitsVision} (${r.reason})`);
}

const inCount = results.filter((r) => r.fitsVision).length;
console.log(`\n${inCount}/${initiatives.length} iniciativas caben en la visión.`);

Qué esperar. Al correr el archivo con Node, la salida es exactamente esta:

=== ¿Qué cabe en la visión de Mercado? ===

recommendationsEngine: fitsVision=true (sirve lo que la visión incluye: "curatedDiscovery")
sellerTrustBadges: fitsVision=true (sirve lo que la visión incluye: "localSellerTrust")
lowestPriceGuarantee: fitsVision=false (choca con lo que la visión descarta: "lowestPriceRace")
oneClickReorder: fitsVision=false (no conecta con ningún "sí" de la visión)

2/4 iniciativas caben en la visión.

Mira con atención las dos iniciativas que quedan fuera, porque son dos tipos de "no" distintos, y confundirlos es fácil:

  • lowestPriceGuarantee queda fuera porque choca directamente con algo que la visión descarta. Ofrecer garantía del precio más bajo es una buena idea de negocio — muchos marketplaces exitosos compiten exactamente así —, pero Mercado, en esta visión, explícitamente decidió no competir en esa dimensión. No es que la idea sea mala; es que pertenece a otro GPS, hacia otro destino.
  • oneClickReorder queda fuera por un motivo distinto y más sutil: no choca con nada, pero tampoco sirve a nada. Recompra con un clic es una mejora de conveniencia razonable, sin conflicto directo con "descubrimiento" ni con "confianza local" — simplemente no tiene relación con ninguno de los dos. visionFilter la marca fuera igual, porque no bastar con "no ser dañina": para caber en la visión, una iniciativa tiene que servir activamente a alguno de sus "sí".

Este es el punto central de la lección, ejecutado y no solo dicho: fitsVision: false no significa "mala idea" en ninguno de los dos casos. Significa "no es el juego que esta visión eligió jugar" — y una empresa que dice "sí" a las dos iniciativas rechazadas terminaría, tarde o temprano, siendo un poco de todo y una dirección clara de nada.

Profundización: incluye lo que también excluye, con la misma precisión

Escribir los includes de una visión suele ser la parte fácil — cualquiera puede listar tres o cuatro cosas bonitas que quiere que su empresa represente. Los excludes son el trabajo de verdad, porque exigen nombrar, en voz alta, negocios legítimos y rentables a los que la empresa va a decir que no. Una forma útil de encontrar tus excludes: pregúntate "¿cuál es el negocio exactamente opuesto al nuestro, que también podría tener éxito con el mismo mercado?". Para Mercado, ese opuesto es un buscador ultra-eficiente de SKU exacto (el comprador ya sabe qué quiere, solo necesita el precio más bajo y la entrega más rápida) — un negocio real, rentable, y deliberadamente distinto del que Mercado eligió construir.

Nota también que visionFilter, tal como está escrito, no tiene ningún campo de "impacto" ni "esfuerzo" — a propósito. No está priorizando (eso es RICE, tema de product-thinking-for-engineers-guide); está haciendo una pregunta previa y más simple: ¿esto pertenece o no pertenece a esta dirección?. Una iniciativa puede pasar el filtro de visión y aun así tener mal RICE (y no construirse todavía); y una iniciativa con excelente RICE puede no pasar el filtro de visión (y no construirse nunca, sin importar cuán rentable parezca en el corto plazo). Esa es exactamente la relación entre esta lección y el módulo 7: el filtro de visión/estrategia va antes, no después, de calcular impacto y esfuerzo.

Errores comunes

Escribir solo los "sí" y dejar los "no" implícitos. Qué pasa: la visión se redacta con una lista de aspiraciones ("innovación, cercanía, confianza") sin nombrar nunca qué se excluye explícitamente. Por qué pasa: nombrar un "no" se siente como cerrar puertas, y cerrar puertas es incómodo en una reunión donde todos quieren sonar ambiciosos. Cómo detectarlo: si nadie en tu empresa puede nombrar, sin dudar, un negocio rentable al que la visión dice que no, tu visión probablemente solo tiene "sí" implícitos — y por lo tanto no orienta nada, como el GPS de la analogía. Cómo corregirlo: para cada include, busca su opuesto directo y nómbralo como exclude, con la misma precisión — "descubrimiento curado" tiene como opuesto directo "búsqueda exacta ultra-eficiente", y nombrarlo así, en voz alta, es lo que convierte la visión en una herramienta de verdad.

Confundir "es buena idea" con "cabe en la visión". Qué pasa: se defiende una iniciativa diciendo "pero es una idea excelente, va a funcionar" como si eso bastara para que encaje en la visión. Por qué pasa: evaluar si algo es una buena idea (¿generaría valor? ¿es factible?) es un ejercicio distinto y más fácil que evaluar si pertenece a esta dirección específica — y la mente tiende a colapsar las dos preguntas en una sola. Cómo detectarlo: si tu argumento a favor de una iniciativa nunca menciona la visión, solo menciona que "es buena", probablemente evaluaste la pregunta equivocada. Cómo corregirlo: recuerda oneClickReorder — una mejora razonable, sin nada malo en sí misma, que sigue quedando fuera porque no conecta con ningún "sí" de la visión. "Buena idea" y "pertenece a nuestra dirección" son preguntas independientes; una iniciativa necesita pasar las dos, no solo una.

Usar el "no" de la visión como excusa genérica contra cualquier idea incómoda. Qué pasa: alguien rechaza una propuesta diciendo "eso no es nuestra visión", sin poder señalar exactamente qué exclude viola. Por qué pasa: "no es nuestra visión" suena a argumento sólido y cierra la conversación rápido, incluso cuando en realidad la objeción es otra (falta de tiempo, falta de presupuesto, simple desacuerdo de gusto). Cómo detectarlo: pídele a quien rechaza la idea que complete la frase de visionFilter: "choca con lo que la visión descarta: _____". Si no puede nombrar el exclude específico, el rechazo no viene de la visión — viene de otra parte, y debería discutirse como lo que realmente es. Cómo corregirlo: exige que todo rechazo "por visión" cite el exclude exacto, igual que hace el modelo — así el filtro se queda honesto y no se vuelve un comodín para evitar discusiones incómodas.

Ejercicios

Ejercicio 1 — Predice antes de correr. Sin ejecutar nada, para esta nueva iniciativa de Mercado, predice qué devolvería visionFilter y por qué:

const newInitiative = {
  name: 'sameCategoryBundleDiscounts',
  supports: [],
  conflictsWith: ['lowestPriceRace'],
};
Ver solución

fitsVision: false, con reason: 'choca con lo que la visión descarta: "lowestPriceRace"'. La función revisa primero vision.excludes.find(...), y como conflictsWith incluye 'lowestPriceRace' (uno de los tres excludes de Mercado), encuentra el conflicto antes de siquiera llegar a evaluar matchedInclude — el orden del código prioriza el "no" sobre el "sí", igual que en la lección lowestPriceGuarantee del ejemplo trabajado. Descuentos por combo de la misma categoría, sin importar qué tan bien intencionados, siguen siendo una jugada de precio, y por eso el modelo los descarta sin necesidad de mirar nada más.

Ejercicio 2 — Agrega una iniciativa que SÍ pertenezca. Escribe una quinta iniciativa para el initiatives del ejemplo trabajado, que visionFilter marcaría fitsVision: true, y que sea distinta de recommendationsEngine y sellerTrustBadges (no repitas los mismos supports).

Ver solución

Una versión razonable:

{ name: 'exploreByMoodCollections', supports: ['serendipity'], conflictsWith: [] }

Una colección curada por "estado de ánimo" (por ejemplo, "para renovar tu escritorio", "para un regalo sin ocasión especial") conecta directo con serendipity — invita a explorar sin saber exactamente qué se busca, que es el corazón de la visión de Mercado. Con este supports, visionFilter encontraría matchedInclude: 'serendipity' y marcaría fitsVision: true.

Ejercicio 3 — Defiende un "no" frente al equipo. Elige lowestPriceGuarantee u oneClickReorder del ejemplo trabajado. Escribe, en 2-3 frases, cómo explicarías a un compañero por qué esa iniciativa —siendo una idea razonable— no se va a construir, usando el vocabulario exacto de esta lección (no un simple "no me gusta").

Ver solución

Para lowestPriceGuarantee: "No es que la idea sea mala — de hecho, funcionaría, y hay marketplaces que ganan compitiendo así—. El problema es que choca directo con algo que nuestra visión descarta explícitamente: no competimos por ser los más baratos, competimos por ayudarte a descubrir algo que no sabías que querías. Si empezamos a competir por precio, dejamos de ser ese GPS y nos volvemos uno más apuntando al mismo destino que todos los demás."

Fíjate en la estructura: reconoce que es una buena idea (no descarta el mérito de la propuesta), nombra el exclude específico que viola, y conecta ese exclude de vuelta con el "sí" que la visión sí eligió — exactamente el tipo de argumento que el error común #3 de esta lección exige, y que el genérico "eso no es nuestra visión" no logra dar.

Resumen y siguiente paso

Una visión útil no es una lista de cosas bonitas — es un filtro con dos caras: dice hacia dónde SÍ vas, y con la misma fuerza, dice hacia dónde NO. Viste visionFilter ejecutado sobre cuatro iniciativas reales de Mercado, y viste, con código y no solo con la teoría, que una iniciativa puede ser una buena idea (oneClickReorder) o incluso un negocio rentable en otro contexto (lowestPriceGuarantee) y aun así quedar fuera — no por ser mala, sino por no pertenecer a esta dirección.

Antes de avanzar deberías poder: escribir, para cualquier visión, al menos un exclude tan específico como sus includes; y distinguir los dos tipos de "no" que viste en el ejemplo trabajado — el que choca con un exclude explícito, y el que simplemente no conecta con ningún include.

La lección 6 toma este mismo criterio —¿de verdad descarta algo?— y lo usa para distinguir una visión aspiracional de verdad de un eslogan vacío que, aunque suene inspirador, no pasaría el filtro de esta lección ni una sola vez.

Recursos

  • Roger Martin, "Decoding the Strategy Choice Cascade" — rogermartin.medium.com/decoding-the-strategy-choice-cascade-475d40555eb1. "Dónde jugar" implica, con la misma fuerza, "dónde no jugar" — el mismo principio de esta lección, en el vocabulario de Playing to Win. En inglés.
  • Richard Rumelt, Good Strategy Bad Strategygoodbadstrategy.com. La política rectora del "kernel" actúa como guardarraíles que restringen la acción, no como una lista de deseos — la misma idea de esta lección, aplicada un nivel más abajo (estrategia en vez de visión). En inglés.
  • Marty Cagan (SVPG), "Product Vision FAQ" — svpg.com/product-vision-faq. Preguntas reales de equipos de producto sobre cómo una visión concreta termina rechazando ideas que, en aislamiento, sonaban razonables. En inglés.
  • Jim Collins, "BHAG (Big Hairy Audacious Goal)" — jimcollins.com/concepts/bhag.html. Una BHAG bien construida es, por definición, específica — y ser específica es, automáticamente, excluir todo lo que no es esa cosa concreta. En inglés.