Módulo 5: Competition And Market

No pelear la guerra de ayer

Descripción

La lección 6 te dio el criterio para reconocer ejes que discriminan de ejes que no. Esta lección advierte sobre un peligro distinto y más difícil de detectar: ejes que discriminaban perfectamente bien — pero en una batalla que ya no es la que decide el juego. Un mapa construido sobre los ejes de ayer puede verse igual de riguroso que uno construido sobre los ejes de hoy, pasar la prueba de la lección 6 sin problema, y aun así llevarte a la conclusión equivocada, porque mide algo que ya dejó de ser lo que separa a los ganadores de los perdedores.

Conexión con el módulo. Este es el cierre de la mitad "de ejes" del módulo, y conecta directamente con el módulo 4 (diferenciación): ahí Mercado ya decidió, con differentiationMap, que no compite en precio ni en el catálogo más grande posible — compite en curaduría y confianza. Esta lección muestra, con números, qué pasaría si Mercado —o cualquier equipo que lea este mapa sin cuidado— midiera su posición contra los ejes de la guerra que ya decidió no pelear.

Una analogía cotidiana: los generales que preparan la última guerra

Hay una observación muy repetida en historia militar: los generales, entrenados en la guerra anterior, suelen preparar sus ejércitos para pelear esa misma guerra otra vez —las mismas tácticas, las mismas líneas de defensa, el mismo tipo de batalla— justo cuando el enemigo ya cambió por completo la forma de atacar. Un ejército preparado a la perfección para repeler una invasión de infantería puede colapsar frente a una fuerza aérea, no porque haya sido mal entrenado, sino porque fue entrenado para medir el terreno equivocado: siguió mirando por dónde entra la infantería, en vez de mirar hacia el cielo.

Lo insidioso de este error es que, dentro de sus propios términos, el ejército mal preparado puede parecer que va ganando: si mides las líneas de trincheras, las tienen perfectamente organizadas; si cuentas soldados de infantería por kilómetro de frontera, el número es excelente. El mapa que están usando para evaluarse a sí mismos les dice que van bien — el problema es que ese mapa mide la guerra equivocada. Esta lección enseña a reconocer cuándo el mapa competitivo de un equipo, aunque técnicamente correcto, está midiendo la batalla de ayer.

Ejemplo trabajado: Mercado, medido con los ejes de la guerra que ya no pelea

Corremos competitiveMap sobre el mismo roster de siempre, pero con dos ejes que fueron, durante años, el campo de batalla clásico del comercio genérico: precio (qué tan barato) y surtido (qué tan grande es el catálogo). Son los ejes de la guerra que un megastore gana casi por definición, gracias a su escala — y son, precisamente, los ejes que Mercado decidió no pelear desde su estrategia del módulo 2.

// Modelo pedagogico: ubica cada jugador en un mapa 2x2 segun dos ejes
// ESTRATEGICOS (no metricas de mercado objetivas) y senala si el
// cuadrante de "nosotros" queda despejado -- el espacio donde Mercado
// puede ganar sin chocar de frente contra otro jugador.
function competitiveMap(us, players, axes) {
  const [xAxis, yAxis] = axes;
  const place = (player) => {
    const xSide = player.scores[xAxis.key] >= xAxis.midpoint ? xAxis.high : xAxis.low;
    const ySide = player.scores[yAxis.key] >= yAxis.midpoint ? yAxis.high : yAxis.low;
    return `${ySide} / ${xSide}`;
  };
  const usQuadrant = place(us);
  const placed = players.map((p) => ({
    name: p.name,
    type: p.type,
    quadrant: place(p),
    sharesQuadrantWithUs: place(p) === usQuadrant,
  }));
  const openSpace = !placed.some((p) => p.sharesQuadrantWithUs);
  return { us: { name: us.name, quadrant: usQuadrant }, players: placed, openSpace };
}

const axesOldWar = [
  { key: 'price', label: 'cheapness', low: 'expensive', high: 'cheap', midpoint: 5 },
  { key: 'assortment', label: 'assortment size', low: 'narrow', high: 'huge', midpoint: 5 },
];
const usOld = { name: 'Mercado', scores: { price: 5, assortment: 7 } };
const playersOld = [
  { name: 'MegaStoreGenerico', type: 'direct', scores: { price: 9, assortment: 9 } },
  { name: 'TiendasLocalesOnline', type: 'indirect', scores: { price: 4, assortment: 3 } },
  { name: 'NicheHandmadeMarketplace', type: 'indirect', scores: { price: 3, assortment: 2 } },
];
const oldWarMap = competitiveMap(usOld, playersOld, axesOldWar);
console.log('=== competitiveMap con los ejes de la guerra de ayer (price x assortment) ===\n');
console.log(`[us] ${oldWarMap.us.name} -> quadrant: "${oldWarMap.us.quadrant}"`);
console.table(oldWarMap.players);
console.log(`openSpace: ${oldWarMap.openSpace}`);

const axesToday = [
  { key: 'breadth', label: 'catalog breadth', low: 'niche', high: 'broad', midpoint: 5 },
  { key: 'curation', label: 'curation depth', low: 'raw-search', high: 'curated', midpoint: 5 },
];
const usToday = { name: 'Mercado', scores: { breadth: 8, curation: 8 } };
const playersToday = [
  { name: 'MegaStoreGenerico', type: 'direct', scores: { breadth: 9, curation: 2 } },
  { name: 'TiendasLocalesOnline', type: 'indirect', scores: { breadth: 3, curation: 4 } },
  { name: 'NicheHandmadeMarketplace', type: 'indirect', scores: { breadth: 3, curation: 8 } },
];
const newMap = competitiveMap(usToday, playersToday, axesToday);
console.log('\n=== los mismos jugadores, con los ejes correctos de HOY (breadth x curation) ===\n');
console.log(`[us] ${newMap.us.name} -> quadrant: "${newMap.us.quadrant}"`);
console.table(newMap.players);
console.log(`openSpace: ${newMap.openSpace}`);

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

=== competitiveMap con los ejes de la guerra de ayer (price x assortment) ===

[us] Mercado -> quadrant: "huge / cheap"
┌─────────┬────────────────────────────┬────────────┬──────────────────────┬──────────────────────┐
│ (index) │            name            │    type    │       quadrant       │ sharesQuadrantWithUs │
├─────────┼────────────────────────────┼────────────┼──────────────────────┼──────────────────────┤
│    0    │    'MegaStoreGenerico'     │  'direct'  │    'huge / cheap'    │         true         │
│    1    │   'TiendasLocalesOnline'   │ 'indirect' │ 'narrow / expensive' │        false         │
│    2    │ 'NicheHandmadeMarketplace' │ 'indirect' │ 'narrow / expensive' │        false         │
└─────────┴────────────────────────────┴────────────┴──────────────────────┴──────────────────────┘
openSpace: false

=== los mismos jugadores, con los ejes correctos de HOY (breadth x curation) ===

[us] Mercado -> quadrant: "curated / broad"
┌─────────┬────────────────────────────┬────────────┬──────────────────────┬──────────────────────┐
│ (index) │            name            │    type    │       quadrant       │ sharesQuadrantWithUs │
├─────────┼────────────────────────────┼────────────┼──────────────────────┼──────────────────────┤
│    0    │    'MegaStoreGenerico'     │  'direct'  │ 'raw-search / broad' │        false         │
│    1    │   'TiendasLocalesOnline'   │ 'indirect' │ 'raw-search / niche' │        false         │
│    2    │ 'NicheHandmadeMarketplace' │ 'indirect' │  'curated / niche'   │        false         │
└─────────┴────────────────────────────┴────────────┴──────────────────────┴──────────────────────┘
openSpace: true

Ahí está el error, en números exactos. Con los ejes de la guerra de ayer, Mercado cae en 'huge / cheap'el mismo cuadrante exacto que MegaStoreGenerico—, y openSpace es false: según este mapa, Mercado no tiene ningún terreno propio, solo está compitiendo de frente contra un gigante que gana casi cualquier pelea de precio y escala por pura ventaja de tamaño. Es una conclusión técnicamente válida —los ejes discriminan bien entre MegaStoreGenerico y las tiendas más chicas, así que pasaría la prueba de la lección 6— y sin embargo es la conclusión equivocada, porque mide una batalla que Mercado, desde su estrategia del módulo 2, decidió no pelear. Con los ejes correctos de hoy —los mismos de todo el módulo—, el mismo Mercado, sin cambiar nada de sí mismo, aparece con un espacio propio, claramente despejado. Fíjate también en un detalle que la analogía de los generales predice exactamente: JustSearchOnGoogle, el sustituto que domina la lección 4, ni siquiera aparece en el mapa de la guerra de ayer — un buscador genérico no tiene "precio" ni "surtido" en el sentido tradicional de un vendedor, así que los ejes viejos literalmente no saben dónde ubicarlo. Los ejes de la última guerra no solo dan la conclusión equivocada sobre los jugadores que sí incluyen — dejan completamente ciego al mapa frente al jugador que más importa.

Profundización: cómo reconocer que estás usando los ejes de ayer

Tres señales de que un mapa, aunque técnicamente riguroso, está midiendo la batalla equivocada:

  • Los ejes vienen de "cómo siempre se ha medido esta industria", no de la estrategia actual. Precio y surtido son los ejes clásicos del retail desde hace décadas — son fáciles de encontrar en cualquier informe de la industria, precisamente porque fueron los ejes correctos durante mucho tiempo. Que un eje tenga historia no lo hace vigente.
  • El resultado te dice que estás perdiendo justo en el terreno donde tu propia estrategia dijo que no ibas a competir. Si openSpace da false exactamente en los ejes que tu estrategia (módulo 2) declaró explícitamente que no eran tu apuesta —precio bajo, en vez de descubrimiento curado—, el mapa no está descubriendo una debilidad real; está midiendo un terreno que renunciaste a pelear a propósito.
  • Un jugador importante del roster no encaja en los ejes del mapa. Cuando JustSearchOnGoogle no tiene ni "precio" ni "surtido" que asignarle, esa incomodidad es una señal, no un detalle técnico menor — significa que el mapa fue diseñado para un mundo donde todos los competidores eran vendedores tradicionales, un mundo que ya cambió.

La corrección no es "ignorar los ejes viejos por completo" — un cambio de precio del MegaStoreGenerico sigue siendo información real. La corrección es no dejar que el mapa viejo sea el que decide dónde compite Mercado. Los ejes de ayer sirven para entender la guerra de ayer; la guerra de hoy se lee con los ejes de hoy, los de la lección 6.

Errores comunes

Posicionar contra los ejes de la guerra de ayer. Qué pasa: el equipo mide su posición competitiva usando los ejes clásicos de la industria —precio, surtido, alcance de tiendas físicas— sin verificar primero si esos son los ejes en los que la estrategia actual eligió competir, y termina con la falsa conclusión de que "no tiene espacio propio", como en el ejemplo de esta lección. Por qué pasa: los ejes clásicos de una industria son los más documentados, los más fáciles de conseguir en un reporte de mercado, y se sienten "objetivos" por ser los que todo el mundo usa — pero "todo el mundo los usa" no significa que sigan siendo los que definen quién gana. Cómo detectarlo: si el resultado de tu mapa te dice que estás perdiendo exactamente en el terreno que tu propia estrategia declaró que no iba a pelear, sospecha de los ejes antes de sospechar de la estrategia. Cómo corregirlo: vuelve siempre a las palabras exactas de "dónde jugamos y cómo ganamos" (módulo 1 y 2) antes de aceptar cualquier eje —si el eje no aparece, ni en espíritu, en esa declaración, probablemente pertenece a otra guerra.

Dejar que el mapa viejo reemplace al mapa nuevo, en vez de coexistir con él. Qué pasa: al construir el mapa de la guerra de ayer y descubrir que da un resultado alarmante, el equipo reacciona invirtiendo esfuerzo en mejorar precio y surtido —el terreno donde nunca tuvo ventaja posible frente a un jugador de escala—, abandonando la inversión en curaduría que sí construía una ventaja real. Por qué pasa: un resultado numérico "malo" genera una reacción de urgencia, y la reacción más obvia —competir directamente en el eje donde se ve mal— rara vez es la correcta cuando ese eje nunca fue parte de la estrategia. Cómo detectarlo: si una decisión de roadmap nació de "el mapa de precio y surtido se veía mal", pregunta si ese mapa refleja de verdad la estrategia vigente, o si es un reflejo automático de la última industria conocida. Cómo corregirlo: usa el mapa de ejes de hoy (lección 6) como el mapa de decisión — el mapa de ejes de ayer solo sirve como contexto histórico, nunca como guía de hacia dónde invertir.

Ignorar al jugador que no encaja en los ejes viejos, en vez de leerlo como una señal. Qué pasa: cuando un jugador como JustSearchOnGoogle no tiene valores sensatos de "precio" ni "surtido" para ubicarlo en el mapa clásico, el equipo simplemente lo excluye del análisis por "no aplicar", sin preguntarse por qué no aplica. Por qué pasa: es más fácil descartar un dato que no encaja en la plantilla existente que preguntarse si la plantilla misma ya quedó obsoleta. Cómo detectarlo: si tu mapa competitivo excluye sistemáticamente a los jugadores más nuevos o menos tradicionales porque "no tienen los datos que el mapa necesita", el problema es del mapa, no del jugador. Cómo corregirlo: trata la imposibilidad de ubicar a un jugador nuevo en ejes viejos como evidencia de que esos ejes ya no capturan el terreno completo — exactamente la señal que viste con JustSearchOnGoogle en el ejemplo de esta lección.

Ejercicios

Ejercicio 1 — Identifica los ejes de "la guerra de ayer" en tu propia industria. Piensa en un producto o industria que conozcas bien (no tiene que ser e-commerce). Nombra dos ejes que solían ser los que definían quién ganaba, y explica en una frase por qué hoy podrían ya no ser los ejes correctos.

Ver solución

No hay una única respuesta correcta — el ejercicio evalúa el razonamiento. Un ejemplo válido: en la industria de streaming de video, los ejes clásicos solían ser "tamaño del catálogo" y "calidad de imagen" — durante años, esos ejes sí separaban a los ganadores. Hoy, con casi todos los jugadores ofreciendo catálogos enormes y alta definición como algo dado por sentado, esos ejes ya no discriminan (fallarían la prueba de la lección 6) — los ejes que hoy sí separan a los ganadores son más bien "contenido original exclusivo" y "algoritmo de recomendación", mucho más parecidos, de hecho, a los ejes de curaduría de Mercado que a los ejes clásicos de catálogo.

Ejercicio 2 — Recalcula con SuperTiendaExpress incluido en la guerra de ayer. Agrega SuperTiendaExpress al roster de axesOldWar con price: 7, assortment: 6 y corre el modelo. ¿Cambia la conclusión de que Mercado no tiene espacio propio en estos ejes?

Ver solución

Con price: 7 (≥ 5 → 'cheap') y assortment: 6 (≥ 5 → 'huge'), SuperTiendaExpress caería en el mismo cuadrante 'huge / cheap' que MegaStoreGenerico y que Mercado. La conclusión no cambia — de hecho se refuerza: ahora son dos competidores directos, no uno, compartiendo el terreno de precio-y-escala con Mercado en este mapa. Esto confirma que el problema no es un dato aislado — es estructural: cualquier jugador que compita por precio y surtido masivo va a caer en esa misma zona, y Mercado, con price: 5, assortment: 7, siempre va a quedar cerca de ahí mientras se mida con estos ejes, sin importar cuántos competidores agregues al roster.

Ejercicio 3 — Explica ambos mapas a un inversionista. Un inversionista, después de ver solo el primer mapa (price × assortment), pregunta preocupado: "¿Mercado no tiene ninguna ventaja real? Parece que están exactamente donde está el megastore." Escribe, en un párrafo, la respuesta completa, mostrando los dos mapas y explicando cuál es el correcto para evaluar la estrategia de Mercado.

Ver solución

Un ejemplo de respuesta: "Ese mapa mide precio y tamaño de catálogo — la guerra clásica del retail, la que un jugador de la escala de MegaStoreGenerico gana casi por definición gracias a su volumen de compra. Y tienen razón: en ese terreno, no tenemos ninguna ventaja estructural, porque nunca elegimos pelear ahí. Nuestra estrategia, desde el día uno, fue explícitamente lo contrario: no competir por el precio más bajo, sino por el descubrimiento curado y la confianza en vendedores locales. Cuando medimos el mismo panorama con los ejes que sí reflejan esa estrategia —amplitud de catálogo y profundidad de curaduría—, aparecemos con un espacio propio, claramente despejado, que ni el megastore ni las tiendas de barrio ocupan hoy. El primer mapa no está mal calculado — está midiendo la pelea equivocada. El segundo es el que de verdad responde si nuestra estrategia tiene un lugar donde ganar."

Resumen y siguiente paso

Esta lección mostró que un mapa 2×2 puede ser técnicamente riguroso —pasar la prueba de discriminación de la lección 6— y aun así llevarte a la conclusión equivocada, si sus ejes miden una batalla que tu estrategia ya decidió no pelear. Con los ejes de precio y surtido, Mercado aparece atrapado en el mismo cuadrante que un megastore que siempre va a ganarle en escala; con los ejes correctos de hoy, el mismo Mercado tiene un espacio propio y despejado. La señal más clara de estar usando los ejes de ayer: un jugador importante —JustSearchOnGoogle— ni siquiera encaja en ellos.

Antes de avanzar deberías poder: reconocer cuándo un resultado "malo" de un mapa competitivo viene de medir la batalla equivocada, y explicar por qué la solución no es competir en esos ejes, sino verificar si son los ejes correctos.

Con el panorama de hoy, el de mañana, y el criterio para elegir ejes que discriminen y sigan vigentes, ya tienes todas las piezas del módulo. La lección 8 —el proyecto— las junta en un solo mapa competitivo completo de Mercado, con la recomendación final.

Recursos

  • Jeff Jordan (a16z), "So You Want to Compete Against Amazon?" — a16z.com/so-you-want-to-compete-against-amazon. El argumento central del artículo es, palabra por palabra, el de esta lección: competir contra un gigante en precio y escala es una guerra perdida de antemano; la curaduría y la especialización son los ejes donde sí se puede ganar. En inglés.
  • Michael Porter, "The Five Competitive Forces That Shape Strategy" — hbr.org/2008/01/the-five-competitive-forces-that-shape-strategy. Porter advierte que las fuerzas que definen una industria cambian con el tiempo — un análisis competitivo hecho una sola vez, con los ejes de siempre, envejece mal precisamente por esta razón. En inglés.