Módulo 3: Target And Positioning

El beachhead: angosto antes que amplio

Descripción

La lección anterior mostró que Mercado gana claramente para explorers y pierde claramente para exactSkuShoppers. Una reacción natural a ese resultado es pensar: "entonces evitemos elegir, y sirvamos bien a los dos — al comprador promedio, sin inclinarnos hacia ningún lado en particular". Esta lección existe para desmontar esa idea con un solo número, ejecutado: ni siquiera "el comprador promedio, sin segmentar" es una apuesta ganadora. Intentar gustarle un poco a todo el mundo no te deja empatado — te deja perdiendo, porque mientras tú reparties tus fortalezas en partes iguales, un rival generalista ya está optimizado exactamente para ese promedio.

Geoffrey Moore le puso nombre a la alternativa correcta en Crossing the Chasm: el beachhead (cabeza de playa) — un segmento lo bastante grande para importar, pero lo bastante pequeño para ganarlo por completo, antes de intentar expandirte a cualquier otro lado. No es una decisión de "pensar en chico por modestia" — es la única forma de acumular una victoria real desde la cual expandirte, en vez de repartir el mismo esfuerzo tan fino que no alcanza para ganar ningún lugar.

Conexión con el módulo. La lección 2 te dio dos segmentos con veredictos opuestos. Esta lección agrega un tercer punto de comparación — "todos los compradores, sin distinción" — y usa el mismo positionFit para mostrar, con datos, por qué ese tercer camino es el peor de los tres, no un término medio seguro.

Una analogía cotidiana: la playa antes que el continente

El término beachhead viene, literalmente, de una operación militar: antes de intentar tomar un continente entero, un ejército de desembarco elige una sola playa, la más pequeña posible que aún sea suficiente para establecer una base sólida — suficiente espacio para desembarcar tropas, asegurar suministros, y sostener la posición sin que el enemigo la recupere en la primera noche. Nadie exitoso en la historia militar ha intentado invadir un continente entero en un solo desembarco simultáneo a lo largo de toda la costa — el frente sería tan ancho que no habría fuerza suficiente en ningún punto para sostenerlo, y el ejército invasor perdería en todas partes a la vez, sin haber ganado en ninguna.

Elegir un mercado es exactamente esa misma decisión. Puedes intentar "desembarcar" en todo el mercado de comercio en línea a la vez —todos los compradores, todos los jobs, todas las categorías— y repartir tu fuerza (tu equipo, tu presupuesto, tu producto) tan fino a lo largo de ese frente entero que no sostienes ninguna posición real en ninguna parte. O puedes elegir una sola playa —un segmento específico, como explorers— lo bastante angosta para que tu fuerza concentrada la tome por completo, y desde ahí, ya con una base segura y un primer grupo de clientes que te ama, expandirte hacia el segmento siguiente. La playa nunca fue el destino final de la invasión — fue el único punto desde el cual una invasión más grande se vuelve posible.

Ejemplo trabajado: el continente entero pierde donde el beachhead gana

Corremos positionFit con un segmento que representa "todos los compradores, sin distinción" — cada una de las seis dimensiones pesa exactamente lo mismo, 1/6, porque nadie decidió que alguna importara más que las demás — y lo comparamos contra el resultado ya conocido de explorers, el beachhead angosto.

function positionFit(target, product, alternatives) {
  const dims = Object.keys(target.weights).filter((d) => target.weights[d] > 0);
  const weightedScore = (c) => dims.reduce((sum, d) => sum + target.weights[d] * c.scores[d], 0);
  const productScore = weightedScore(product);
  const rivals = alternatives.map((a) => ({ name: a.name, score: weightedScore(a) }));
  const bestRival = rivals.reduce((a, b) => (b.score > a.score ? b : a));
  const byDimension = dims.map((d) => {
    const rivalBest = alternatives.reduce(
      (best, a) => (a.scores[d] > best.score ? { name: a.name, score: a.scores[d] } : best),
      { name: alternatives[0].name, score: -Infinity }
    );
    return { dimension: d, weight: target.weights[d], productScore: product.scores[d], bestRivalScore: rivalBest.score, bestRivalName: rivalBest.name, wins: product.scores[d] > rivalBest.score };
  });
  return { segment: target.name, productWeightedScore: Number(productScore.toFixed(2)), bestRival: bestRival.name, bestRivalWeightedScore: Number(bestRival.score.toFixed(2)), fitsSegment: productScore > bestRival.score, byDimension };
}

const mercado = { name: 'Mercado', scores: { curatedDiscovery: 9, sellerTrust: 8, catalogBreadth: 6, price: 5, deliverySpeed: 5, convenience: 6 } };
const genericMegastore = { name: 'genericMegastore', scores: { curatedDiscovery: 3, sellerTrust: 4, catalogBreadth: 9, price: 8, deliverySpeed: 9, convenience: 8 } };
const localShop = { name: 'localShop', scores: { curatedDiscovery: 6, sellerTrust: 9, catalogBreadth: 2, price: 4, deliverySpeed: 3, convenience: 3 } };
const alternatives = [genericMegastore, localShop];

// El "continente entero": nadie decidio que alguna dimension importara mas.
const allShoppersAverage = { name: 'allShoppersAverage', weights: { curatedDiscovery: 1/6, sellerTrust: 1/6, catalogBreadth: 1/6, price: 1/6, deliverySpeed: 1/6, convenience: 1/6 } };
// El beachhead: una playa angosta, elegida a proposito, con pesos concentrados.
const explorers = { name: 'explorers', weights: { curatedDiscovery: 0.4, sellerTrust: 0.3, catalogBreadth: 0.1, price: 0.1, deliverySpeed: 0.05, convenience: 0.05 } };

console.log('=== positionFit: allShoppersAverage (el continente entero) ===\n');
const r1 = positionFit(allShoppersAverage, mercado, alternatives);
console.log(`segment: ${r1.segment} | productWeightedScore: ${r1.productWeightedScore} | bestRival: ${r1.bestRival} (${r1.bestRivalWeightedScore}) | fitsSegment: ${r1.fitsSegment}\n`);
console.table(r1.byDimension.map((d) => ({ dimension: d.dimension, weight: Number(d.weight.toFixed(3)), product: d.productScore, bestRival: `${d.bestRivalName}:${d.bestRivalScore}`, wins: d.wins })));

console.log('\n=== positionFit: explorers (el beachhead) ===\n');
const r2 = positionFit(explorers, mercado, alternatives);
console.log(`segment: ${r2.segment} | productWeightedScore: ${r2.productWeightedScore} | bestRival: ${r2.bestRival} (${r2.bestRivalWeightedScore}) | fitsSegment: ${r2.fitsSegment}`);

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

=== positionFit: allShoppersAverage (el continente entero) ===

segment: allShoppersAverage | productWeightedScore: 6.5 | bestRival: genericMegastore (6.83) | fitsSegment: false

┌─────────┬────────────────────┬────────┬─────────┬──────────────────────┬───────┐
│ (index) │     dimension      │ weight │ product │      bestRival       │ wins  │
├─────────┼────────────────────┼────────┼─────────┼──────────────────────┼───────┤
│    0    │ 'curatedDiscovery' │ 0.167  │    9    │    'localShop:6'     │ true  │
│    1    │   'sellerTrust'    │ 0.167  │    8    │    'localShop:9'     │ false │
│    2    │  'catalogBreadth'  │ 0.167  │    6    │ 'genericMegastore:9' │ false │
│    3    │      'price'       │ 0.167  │    5    │ 'genericMegastore:8' │ false │
│    4    │  'deliverySpeed'   │ 0.167  │    5    │ 'genericMegastore:9' │ false │
│    5    │   'convenience'    │ 0.167  │    6    │ 'genericMegastore:8' │ false │
└─────────┴────────────────────┴────────┴─────────┴──────────────────────┴───────┘

=== positionFit: explorers (el beachhead) ===

segment: explorers | productWeightedScore: 7.65 | bestRival: localShop (6) | fitsSegment: true

Este es el resultado más contraintuitivo del módulo hasta ahora: frente al "comprador promedio", Mercado pierde — 6.5 contra 6.83 del megastore genérico. No pierde por mucho, pero pierde. La razón es visible en la tabla: Mercado solo gana en una dimensión (curatedDiscovery), y con pesos parejos, esa única victoria (9 contra 6, una diferencia de 3 puntos, multiplicada por un peso de apenas 0.167) no alcanza para compensar cuatro derrotas frente al megastore, cada una también multiplicada por ese mismo peso parejo. El megastore genérico, en cambio, fue diseñado exactamente para ganar "en promedio" — es fuerte y parejo en casi todo, débil solo en descubrimiento —, así que un segmento sin ninguna preferencia declarada termina, casi por definición, prefiriendo al generalista.

Ahora compara con explorers: el mismo Mercado, sin cambiar un solo número de producto, pasa de perder por 0.33 a ganar por 1.65 — una diferencia de dos puntos completos, solo por concentrar el peso donde Mercado realmente es fuerte. Ese es el argumento entero del beachhead: no es que Mercado necesite mejorar el producto para ganarle al comprador promedio — es que el comprador promedio, como segmento, no es un lugar donde Mercado, tal como es, pueda ganar. La playa correcta no es "todo el mundo, con cuidado" — es el lugar específico donde tu fuerza actual, concentrada, ya es suficiente para ganar.

Profundización: qué hace bueno a un beachhead

Moore es específico sobre el tamaño correcto de un beachhead, y vale la pena tenerlo presente porque el error más común no es elegir "ningún" segmento (eso ya lo viste en la lección 2) — es elegir uno con la forma equivocada:

  • Lo bastante grande para importar. Un beachhead tan chico que ganarlo no mueve ninguna aguja del negocio no sirve de nada, aunque técnicamente sea "angosto". Si explorers fueran solo doce personas, ganar ese segmento con un margen de 1.65 sería un ejercicio académico, no una base desde la cual crecer.
  • Lo bastante pequeño para ganarlo por completo, no solo "hacer una buena entrada". El objetivo no es tener presencia en el segmento — es dominarlo, convertirte en la referencia obvia cuando alguien de ese segmento piensa en el job que resuelves. Un beachhead "medio ganado" no genera el efecto de boca en boca ni la credibilidad que Moore identifica como el verdadero premio de esta etapa.
  • Con vecinos alcanzables. Moore elige el beachhead pensando también en el segmento siguiente: uno que comparta suficiente con el primero como para que la reputación y el producto ya construidos sirvan de puente. No es una decisión aislada — es el primer paso de una secuencia.

positionFit solo mide la primera mitad de esto (¿ganamos, y por cuánto margen?) — el tamaño real del segmento y la existencia de un "vecino" alcanzable siguen siendo juicio humano, informado por datos de mercado que están fuera del alcance de este modelo pedagógico.

Errores comunes

Elegir un beachhead demasiado grande — "el mercado promedio" disfrazado de segmento. Qué pasa: el equipo cree que eligió un beachhead angosto ("compradores en línea interesados en descubrir productos"), pero al escribir sus pesos de importancia, terminan repartidos parejo entre todo, sin ninguna prioridad clara — exactamente lo que viste en allShoppersAverage. Por qué pasa: es más cómodo, en una reunión, no discutir cuál dimensión pesa más que las otras — discutir eso obliga a decir en voz alta qué se sacrifica, y ese es precisamente el trabajo incómodo que el módulo 1 ya identificó como el corazón de una elección real. Cómo detectarlo: si los pesos de tu segmento, escritos con honestidad, terminan todos parecidos entre sí (como el 0.167 de cada dimensión en el ejemplo), no elegiste una playa — elegiste el continente entero con otro nombre. Cómo corregirlo: fuerza una jerarquía explícita. Pregunta "si solo pudiéramos ganar en UNA dimensión para este comprador, ¿cuál sería?" — esa respuesta debería tener, sin ambigüedad, el peso más alto.

Elegir el beachhead más grande disponible, en vez del que se pueda ganar primero. Qué pasa: entre dos segmentos posibles, el equipo elige el más grande en tamaño de mercado, no el que el producto actual gana con más margen — razonando que "más grande siempre es mejor punto de partida". Por qué pasa: el tamaño del mercado es fácil de medir y fácil de defender frente a inversionistas ("son 50 millones de compradores potenciales"); la probabilidad real de ganarlo, con el producto de hoy, es más difícil de estimar y más incómoda de admitir cuando es baja. Cómo detectarlo: compara el margen de victoria (productWeightedScore menos bestRivalWeightedScore) entre las opciones de beachhead que consideras — si el segmento "más grande" tiene un margen apenas positivo o negativo, como allShoppersAverage, elegirlo por tamaño es apostar a ganar una playa que todavía no puedes tomar. Cómo corregirlo: entre un beachhead grande y difícil de ganar hoy, y uno más chico pero ganable con claridad, Moore es explícito: elige el que puedas ganar por completo primero. El grande puede ser, legítimamente, el segundo beachhead — el "vecino alcanzable" de la profundización — no el primero.

Tratar el beachhead como el destino final, no como el primer paso de una secuencia. Qué pasa: la empresa gana su beachhead —domina explorers, digamos— y se queda ahí indefinidamente, sin planear el siguiente segmento, como si "ganar la playa" hubiera sido el objetivo completo de la estrategia. Por qué pasa: ganar un segmento angosto genera resultados reales y visibles (crecimiento, retención, clientes contentos), y ese éxito se siente suficiente — expandirse implica volver a arriesgar, esta vez desde una posición cómoda que no urge abandonar. Cómo detectarlo: si tu empresa lleva años sirviendo exactamente al mismo segmento angosto sin haber intentado, ni una vez, expandirse a un segmento vecino, probablemente confundiste la cabeza de playa con el continente entero. Cómo corregirlo: recuerda que Moore diseñó el beachhead explícitamente como un punto de partida — el título completo del libro es Crossing the Chasm, "cruzar el abismo", no "quedarse en la playa". Ganar explorers con margen sólido es la base de credibilidad, capital y aprendizaje desde la cual Mercado puede, después, intentar un segundo segmento — no el final del viaje.

Ejercicios

Ejercicio 1 — Calcula el margen de un tercer candidato. Un segmento curiousGiftBuyers define sus pesos como { curatedDiscovery: 0.5, sellerTrust: 0.2, catalogBreadth: 0.1, price: 0.1, deliverySpeed: 0.05, convenience: 0.05 }. Sin ejecutar el código, calcula a mano el productWeightedScore de Mercado para este segmento (recuerda los scores de Mercado: curatedDiscovery=9, sellerTrust=8, catalogBreadth=6, price=5, deliverySpeed=5, convenience=6) y compáralo con el margen de explorers (7.65).

Ver solución

0.5×9 + 0.2×8 + 0.1×6 + 0.1×5 + 0.05×5 + 0.05×6 = 4.5 + 1.6 + 0.6 + 0.5 + 0.25 + 0.3 = 7.75. Es incluso un poco más alto que explorers (7.65), porque concentra un peso todavía mayor (0.5 contra 0.4) en curatedDiscovery, la dimensión donde Mercado tiene su ventaja más grande. Confirma el patrón de la lección: mientras más concentrado el peso en la dimensión de mayor margen, más gana Mercado — y mientras más parejo el peso (como en allShoppersAverage), más se acerca a perder.

Ejercicio 2 — Diagnostica un beachhead mal elegido. Un equipo de otra empresa (no Mercado) describe su beachhead como "profesionales ocupados que valoran su tiempo" — sin dar ningún peso numérico a dimensiones específicas. Usando el vocabulario de esta lección, explica en 2-3 frases por qué esta descripción, tal como está, no funcionaría como input real de positionFit, y qué le falta.

Ver solución

Le falta exactamente lo que separó a explorers de allShoppersAverage: una jerarquía explícita de qué dimensión pesa más que las demás. "Valoran su tiempo" suena específico, pero sin traducirlo a pesos concretos (¿es deliverySpeed? ¿es convenience? ¿ambas, y en qué proporción?), la descripción podría terminar, en la práctica, repartida parejo entre todo — el mismo error del allShoppersAverage de esta lección, disfrazado con lenguaje más específico. Antes de ser un beachhead real, necesita convertirse en pesos que sumen una historia clara: "esto es lo que más importa, esto casi no importa".

Ejercicio 3 — Defiende la secuencia frente a un inversionista impaciente. Un inversionista de Mercado pregunta: "¿por qué no van también por exactSkuShoppers? Es un mercado más grande que explorers." Escribe, en un párrafo, tu respuesta usando el vocabulario de esta lección (beachhead, margen ganable, vecino alcanzable) sin sonar como si el equipo tuviera miedo de crecer.

Ver solución

Un ejemplo de respuesta: "No es que no queramos crecer — es que exactSkuShoppers no es un segundo beachhead alcanzable desde donde estamos, es una playa completamente distinta, defendida por un rival que ya la domina estructuralmente: perdemos las cuatro dimensiones que a ese comprador le importan, con el producto tal como está hoy. Ir ahí ahora sería repartir nuestro esfuerzo entre dos frentes, sin ganar ninguno con claridad — el mismo error que ya vimos con 'el comprador promedio', que perdemos por margen negativo. Primero consolidamos explorers, con el margen sólido que ya tenemos ahí, y después evaluamos un segundo segmento que sí comparta algo con este —no el que tenga el mercado más grande en una hoja de cálculo, sino el que realmente podamos ganar desde la base que ya construimos."

Resumen y siguiente paso

Un beachhead es un segmento lo bastante grande para importar y lo bastante pequeño para ganarlo por completo — y viste, ejecutado, que la alternativa aparentemente "segura" de no elegir (servir al comprador promedio, con pesos parejos) en realidad pierde, 6.5 contra 6.83, frente al mismo rival que un beachhead bien elegido derrota con margen de 1.65. Angosto y concentrado le ganó a amplio y parejo — no por casualidad, sino porque un rival generalista ya está optimizado exactamente para el promedio.

Antes de avanzar deberías poder: explicar por qué "servir a todos por igual" pierde frente a un generalista establecido; y aplicar las tres condiciones de un buen beachhead (importa, se puede ganar completo, tiene un vecino alcanzable) a cualquier segmento que te propongan.

La lección 4 cambia el ángulo de la pregunta: hasta ahora definiste segmentos por sus pesos de importancia, casi como una preferencia de compra. Ahora vas a ver por qué la unidad correcta para definir un segmento no es la demografía ("mujeres de 25 a 40 años") sino el job que esa persona está tratando de resolver — con el marco de Clayton Christensen.

Recursos

  • Geoffrey Moore, Crossing the Chasmgeoffreyamoore.com/book/crossing-the-chasm. La fuente original del término beachhead y de la regla "lo bastante grande para importar, lo bastante pequeño para ganar" que estructura esta lección. En inglés.
  • Geoffrey Moore, "After the Chasm: Scaling Beyond the Beachhead" — geoffreyamoore.com/business_blogs/after-the-chasm-scaling-beyond-the-beachhead. El propio Moore, años después, sobre el error del tercer errores comunes de esta lección: quedarse en el beachhead en vez de expandirse. En inglés.
  • Marty Cagan (SVPG), "Product Market Fit" — svpg.com/product-market-fit. El mismo principio de "una vertical o persona a la vez", aplicado por Cagan a equipos de producto B2B y de consumo. En inglés.
  • April Dunford, Obviously Awesomeaprildunford.com/books. Dunford conecta explícitamente la elección del "mejor segmento" con el posicionamiento que la lección 5 va a construir sobre esta base. En inglés.