Módulo 3: Target And Positioning

Mini-proyecto: el segmento objetivo y el positioning statement de Mercado

Descripción

Es momento de juntar el módulo entero en un solo artefacto: el segmento objetivo y el positioning statement de Mercado, verificados con datos, no solo redactados con buena prosa. Aprendiste a distinguir para quién es Mercado y para quién no (L2), a elegir un beachhead angosto en vez de perseguir al comprador promedio (L3), a definir ese segmento por el job que resuelve y no por su demografía (L4), a entender el posicionamiento como poseer una categoría y no sumar puntos (L5), a escribirlo con la plantilla completa de Moore y Dunford (L6), y a reconocer el riesgo de diluirlo copiando al líder (L7). En este proyecto usas positionFit sobre el caso completo — el segmento elegido y el segmento explícitamente excluido, ambos verificados contra las mismas dos alternativas — no sobre fragmentos aislados como en cada lección.

Tu entregable tiene dos partes, y las dos se verifican con código, no solo se redactan: (1) el segmento objetivo de Mercado, con su job y sus pesos explícitos, y el positioning statement completo con las cinco piezas de Dunford; y (2) la prueba ejecutada de que ese segmento gana con positionFit — y de que el segmento que decidiste NO servir, de verdad pierde, no por supuesto ni por omisión, sino confirmado con el mismo modelo.

Conexión con el módulo. Este proyecto no introduce ningún concepto nuevo — reúne, en un solo documento verificado, todo lo que construiste lección por lección. Es, además, el segundo eslabón de un arco que empezó con la visión del módulo 2 y sigue en el resto de esta guía: el segmento y el posicionamiento que defines aquí son la base sobre la cual el módulo 4 va a construir la diferenciación y la propuesta de valor de Mercado — la pregunta de "¿qué te hace distinto y mejor para este segmento específico?", que solo tiene sentido una vez que el segmento y la categoría ya están fijados, como lo están al cerrar este proyecto.

Una analogía: la ficha de identidad de la tienda, antes de decorar el local

Antes de elegir el color de las paredes, la música de fondo o el diseño del logo, cualquier dueño de tienda serio llena una ficha mucho menos glamorosa: quién exactamente va a entrar por esa puerta, qué necesita esa persona cuando entra, y en qué frase corta el dueño le explicaría a un vecino "esto es lo que vendemos, y por qué no es lo mismo que la tienda de la esquina". Esa ficha no es decoración — es la que determina, después, todas las decisiones de decoración: si la ficha dice "compradores que exploran sin saber qué buscan", la tienda se organiza para el descubrimiento casual; si dijera "compradores que ya saben exactamente qué SKU necesitan", se organizaría para la eficiencia y la velocidad, y sería una tienda completamente distinta.

Este mini-proyecto es esa ficha, completa y puesta a prueba, para Mercado — el documento que cualquier persona nueva del equipo debería poder leer, la próxima vez que alguien proponga una decisión de producto, para responder de inmediato: ¿esto sirve al segmento que elegimos, o nos aleja de la categoría que ya nos ganamos?

La solución de referencia, verificada

Parte 1 — El segmento y el positioning statement de Mercado

Esta es la síntesis de las seis lecciones del módulo, reunida en un solo objeto con el segmento (nombre, job, pesos, y su opuesto explícitamente excluido) y el positioning statement completo con las cinco piezas de Dunford:

const mercadosTargetAndPositioning = {
  segment: {
    name: 'explorers',
    job: 'Necesito descubrir algo que no sabía que quería, sin saber exactamente qué buscar, y confiar en quien me lo vende.',
    weights: { curatedDiscovery: 0.4, sellerTrust: 0.3, catalogBreadth: 0.1, price: 0.1, deliverySpeed: 0.05, convenience: 0.05 },
    explicitlyNotFor: 'exactSkuShoppers -- compradores que ya saben el SKU exacto y solo priorizan precio y velocidad',
  },
  positioningStatement: {
    targetSegment: 'compradores que exploran sin saber exactamente qué buscan',
    need: 'se cansan de repetir la misma búsqueda en un buscador genérico y solo encontrar más de lo mismo',
    productCategory: 'el marketplace de descubrimiento curado',
    keyBenefit: 'te sorprende con algo que no sabías que querías, respaldado por vendedores locales de confianza',
    competitiveAlternative: 'un megastore genérico, optimizado para que encuentres rápido lo que ya sabes que quieres',
    differentiator: 'Mercado optimiza para el momento en que todavía no sabes qué es lo que quieres',
  },
};

Verifica cada pieza contra los criterios del módulo antes de continuar: el segmento se define por un job, no por demografía (lección 4); sus pesos dejan dimensiones en 0.05, casi sin importancia, no repartidos parejo como el allShoppersAverage de la lección 3; nombra explícitamente a quién excluye, con la misma precisión que a quién incluye (lección 2); y el positioning statement completa las cinco piezas de Dunford sin dejar ninguna implícita (lección 6).

Parte 2 — La verificación ejecutada en Node

Ahora corremos el módulo entero sobre el caso completo: positionFit confirma que el segmento elegido gana, y que el segmento explícitamente excluido pierde — las dos mitades de "para quién es, y para quién no" de la lección 2, verificadas juntas, no solo afirmadas en prosa.

// PROYECTO: el segmento objetivo y el positioning statement de Mercado,
// verificados con positionFit -- el modelo del modulo -- aplicado al caso
// completo: el segmento elegido (debe ganar) Y el segmento explicitamente
// excluido (debe perder), ambos contra las mismas dos alternativas reales.
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];

const explorers = { name: 'explorers', weights: { curatedDiscovery: 0.4, sellerTrust: 0.3, catalogBreadth: 0.1, price: 0.1, deliverySpeed: 0.05, convenience: 0.05 } };
const exactSkuShoppers = { name: 'exactSkuShoppers', weights: { curatedDiscovery: 0, sellerTrust: 0, catalogBreadth: 0.1, price: 0.35, deliverySpeed: 0.35, convenience: 0.2 } };

console.log('=== PARTE 2a: el segmento elegido -- ¿de verdad gana? ===\n');
const chosen = positionFit(explorers, mercado, alternatives);
console.log(`segment: ${chosen.segment} | productWeightedScore: ${chosen.productWeightedScore} | bestRival: ${chosen.bestRival} (${chosen.bestRivalWeightedScore}) | fitsSegment: ${chosen.fitsSegment} | margin: ${(chosen.productWeightedScore - chosen.bestRivalWeightedScore).toFixed(2)}\n`);
console.table(chosen.byDimension.map((d) => ({ dimension: d.dimension, weight: d.weight, product: d.productScore, bestRival: `${d.bestRivalName}:${d.bestRivalScore}`, wins: d.wins })));

console.log('\n=== PARTE 2b: el segmento excluido -- ¿de verdad pierde? ===\n');
const excluded = positionFit(exactSkuShoppers, mercado, alternatives);
console.log(`segment: ${excluded.segment} | productWeightedScore: ${excluded.productWeightedScore} | bestRival: ${excluded.bestRival} (${excluded.bestRivalWeightedScore}) | fitsSegment: ${excluded.fitsSegment} | margin: ${(excluded.productWeightedScore - excluded.bestRivalWeightedScore).toFixed(2)}\n`);
console.table(excluded.byDimension.map((d) => ({ dimension: d.dimension, weight: d.weight, product: d.productScore, bestRival: `${d.bestRivalName}:${d.bestRivalScore}`, wins: d.wins })));

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

=== PARTE 2a: el segmento elegido -- ¿de verdad gana? ===

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

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

=== PARTE 2b: el segmento excluido -- ¿de verdad pierde? ===

segment: exactSkuShoppers | productWeightedScore: 5.3 | bestRival: genericMegastore (8.45) | fitsSegment: false | margin: -3.15

┌─────────┬──────────────────┬────────┬─────────┬──────────────────────┬───────┐
│ (index) │    dimension     │ weight │ product │      bestRival       │ wins  │
├─────────┼──────────────────┼────────┼─────────┼──────────────────────┼───────┤
│    0    │ 'catalogBreadth' │  0.1   │    6    │ 'genericMegastore:9' │ false │
│    1    │     'price'      │  0.35  │    5    │ 'genericMegastore:8' │ false │
│    2    │ 'deliverySpeed'  │  0.35  │    5    │ 'genericMegastore:9' │ false │
│    3    │  'convenience'   │  0.2   │    6    │ 'genericMegastore:8' │ false │
└─────────┴──────────────────┴────────┴─────────┴──────────────────────┴───────┘

El resultado: el segmento elegido gana por 1.65, y el segmento explícitamente excluido pierde por −3.15 — un margen casi el doble de grande, en la dirección opuesta. Esto no es casualidad ni un resultado ambiguo: es la prueba con datos de que el positioning statement de la Parte 1 no es una frase de aspiración — describe algo que positionFit confirma en las dos direcciones que importan. Nota, además, algo que solo se ve comparando las dos tablas: en explorers, Mercado pierde cuatro de seis dimensiones y aun así gana el segmento completo, porque la única que gana pesa 0.4. En exactSkuShoppers, Mercado pierde las cuatro dimensiones que existen para ese segmento, sin ganar ninguna — no hay ningún punto de apoyo, ni siquiera parcial. Esa diferencia de forma —una derrota parcial y compensada contra una derrota total y sin compensación— es la huella exacta de un posicionamiento bien elegido: pierdes donde no importa, ganas donde sí, y donde de verdad no perteneces, pierdes sin ambigüedad.

Errores comunes

Entregar el segmento y el positioning sin correr el modelo contra las alternativas reales. Qué pasa: el documento final incluye una redacción cuidada del segmento y el positioning statement, presentada como completa, sin que nadie haya corrido positionFit (o su equivalente de análisis riguroso) contra los datos reales de las alternativas — el mismo error que la lección 6 ya advirtió a nivel de una sola cláusula, ahora repetido a nivel del entregable completo. Por qué pasa: una vez que la prosa suena convincente y el equipo la aprueba en una reunión, verificarla con datos se siente como un paso adicional opcional, no como parte del entregable en sí. Cómo detectarlo: pregunta si alguien podría mostrar, con un número concreto (no una impresión), el margen exacto por el cual el segmento elegido gana. Si nadie puede citar ese número, el "segmento verificado" todavía no lo está. Cómo corregirlo: ningún entregable de segmento y posicionamiento debería considerarse terminado sin la Parte 2 de este proyecto — la corrida ejecutada, con el margen exacto, no solo la afirmación de que "creemos que ganamos ahí".

No verificar el "para quién NO" con la misma exigencia que el "para quién sí". Qué pasa: el documento nombra, en una frase, a quién NO le sirve Mercado (exactSkuShoppers), pero nunca corre positionFit contra ese segmento para confirmar que de verdad pierde — se asume, sin comprobar, que la exclusión es correcta. Por qué pasa: verificar una victoria se siente como el trabajo importante; verificar una derrota se siente redundante ("obviamente perdemos ahí, por eso lo excluimos") — el mismo sesgo que llevó al proyecto de visión del módulo 2 a veces omitir sus excludes. Cómo detectarlo: si tu documento de segmento y posicionamiento no incluye, con el mismo detalle que la Parte 2a, una corrida equivalente contra el segmento excluido (como la Parte 2b de este proyecto), la mitad de tu verificación es solo una suposición razonable, no un hecho confirmado. Cómo corregirlo: exige las dos corridas siempre juntas, como en este proyecto — el segmento elegido y el segmento excluido, contra las mismas alternativas, en el mismo documento.

Tratar este proyecto como el final de la estrategia de posicionamiento, no como su base. Qué pasa: al cerrar el proyecto, el equipo lo trata como un documento terminado y archivado, sin conectar sus resultados con las decisiones de producto que vienen después — en particular, sin preguntarse qué hace falta para que la ventaja en curatedDiscovery y sellerTrust se mantenga en el tiempo, en vez de ser copiada por un competidor en un trimestre. Por qué pasa: completar un entregable con datos verificados se siente como un punto final natural, y el trabajo de sostener esa ventaja en el tiempo —la diferenciación real, no solo la posición actual— parece un tema aparte, para después. Cómo detectarlo: si tu documento de segmento y posicionamiento no termina con una pregunta abierta sobre cómo defender esa ventaja de la copia, quedó incompleto en el lugar exacto donde el módulo 4 empieza. Cómo corregirlo: recuerda que positionFit mide una fotografía de hoy — gana Mercado ahora, con los scores actuales. Que esa ventaja se mantenga mañana depende de la diferenciación (qué tan difícil es de copiar) y, más adelante en la guía, de los moats (qué tan durable es) — temas que este proyecto deja abiertos a propósito, no resueltos.

Ejercicios

Ejercicio 1 — Agrega una tercera alternativa y recalcula. Un nuevo competidor, curatedBoutique, entra al mercado: una tienda boutique hiperespecializada en curaduría, con scores { curatedDiscovery: 8, sellerTrust: 9, catalogBreadth: 1, price: 3, deliverySpeed: 2, convenience: 2 }. Antes de ejecutar nada, predice si cambiaría el bestRival de Mercado para el segmento explorers (que hasta ahora era localShop, con 6), y por qué. Después, verifica tu predicción calculando el productWeightedScore de curatedBoutique a mano.

Ver solución

Sí cambiaría. curatedBoutique es fuerte exactamente en las dos dimensiones que explorers más pesa (curatedDiscovery y sellerTrust, con 0.4 y 0.3), así que debería superar a localShop como el rival más fuerte para este segmento. Calculando: 0.4×8 + 0.3×9 + 0.1×1 + 0.1×3 + 0.05×2 + 0.05×2 = 3.2 + 2.7 + 0.1 + 0.3 + 0.1 + 0.1 = 6.5. Efectivamente, curatedBoutique (6.5) supera a localShop (6) y se convierte en el nuevo bestRival. Mercado sigue ganando (7.65 contra 6.5), pero el margen se reduce de 1.65 a 1.15 — un rival más especializado en tu misma categoría, aunque más pequeño en escala, siempre es una amenaza más directa a tu posicionamiento que un generalista lejano.

Ejercicio 2 — Conecta hacia el módulo 4. El positioning statement de este proyecto nombra curatedDiscovery y sellerTrust como el beneficio clave de Mercado. El módulo 4 (differentiation-and-value-prop) va a preguntar algo distinto de lo que preguntó este módulo: no "¿ganamos hoy?", sino "¿qué tan difícil sería para el megastore genérico copiar exactamente esta ventaja el próximo trimestre?". Escribe, en 2-3 frases, tu hipótesis inicial —sin usar ningún marco del módulo 4 todavía, solo intuición informada por lo que ya sabes— sobre si curatedDiscovery sería fácil o difícil de copiar, y por qué.

Ver solución

Una hipótesis razonable: probablemente sería difícil de copiar rápido, porque curatedDiscovery con el score de Mercado (9) depende de vendedores locales reales con relaciones de confianza construidas con el tiempo (sellerTrust, 8) — no es solo una funcionalidad de software que el megastore genérico podría replicar activando un feature flag. El megastore tendría que reclutar y verificar una red de vendedores locales de confianza desde cero, algo que probablemente tome años, no un trimestre. Esta intuición —que la ventaja depende de una red de relaciones, no solo de código— es exactamente el tipo de pregunta que el módulo 4 va a formalizar con su propio modelo ejecutado, y que el módulo 6 (moats) va a profundizar todavía más.

Ejercicio 3 — Defiende el proyecto completo frente a un director de crecimiento escéptico. Un director de crecimiento, que no participó en este módulo, revisa el documento y pregunta: "¿por qué estamos dejando pasar el mercado de exactSkuShoppers —claramente más grande, según los reportes de la industria— para quedarnos en un segmento más chico?". Escribe, en un párrafo, cómo le explicarías el resultado completo del proyecto, citando los números exactos de la Parte 2 (margen 1.65 vs. margen −3.15) y usando el vocabulario del módulo (segmento, beachhead, posicionamiento, positioning statement).

Ver solución

Un ejemplo de respuesta: "No es que ignoremos ese mercado por tamaño — lo evaluamos con los mismos datos que evaluamos el nuestro, y perdemos ahí con un margen de −3.15, más del doble de negativo que el margen positivo que tenemos en explorers (+1.65). No es una preferencia estética por un segmento más chico: es que, tal como Mercado está construido hoy, no tenemos ninguna ventaja real en las dimensiones que le importan a un comprador de SKU exacto —precio y velocidad de entrega—, mientras que sí tenemos una ventaja clara y defendible en descubrimiento y confianza, exactamente lo que nuestro positioning statement promete. Perseguir ese mercado más grande sin cambiar el producto de fondo repetiría el error que ya modelamos en la lección 7 del módulo: diluir una posición ganada por perseguir una que, con los recursos actuales, no podemos ganar. Preferimos consolidar el beachhead que sí dominamos antes de considerar cualquier expansión — y cuando lo hagamos, será hacia un segmento vecino que podamos ganar, no hacia el más grande en una hoja de cálculo."

Resumen y siguiente paso

En este mini-proyecto reuniste el módulo completo en un solo artefacto verificado: el segmento objetivo de Mercado (explorers), definido por su job y sus pesos explícitos; el positioning statement completo con las cinco piezas de Dunford; y la prueba ejecutada, con positionFit, de que el segmento elegido gana con margen sólido (+1.65) mientras el segmento explícitamente excluido pierde con margen todavía mayor (−3.15) — las dos mitades de "para quién es, y para quién no" confirmadas con datos, no solo afirmadas. Con esto cierras el módulo 3.

Ahora tienes, para cualquier producto que trabajes, una pregunta de precisión que antes no tenías del todo: "¿para quién ganamos, con qué margen, y frente a qué alternativa específica?" — y sabes que la respuesta necesita un número, no solo una intuición.

Hacia dónde sigues. Ya sabes a dónde va Mercado (módulo 2) y para quién es, con qué posicionamiento (módulo 3). La pregunta que sigue es la que el ejercicio 2 de este proyecto ya empezó a anticipar: ¿qué tan defendible es esa ventaja — qué te hace distinto, y no solo distinto, sino mejor de una forma que no se copia en un trimestre? Esa es exactamente la pregunta del módulo 4 (module-04-differentiation-and-value-prop): la diferenciación y la propuesta de valor, la siguiente capa de precisión después del segmento y el posicionamiento que acabas de definir.

Recursos

  • April Dunford, Obviously Awesomeaprildunford.com/books. El proceso completo de las cinco piezas, ahora que tienes tu propia versión aplicada de principio a fin, vale la pena releerlo con el caso de Mercado fresco. En inglés.
  • Geoffrey Moore, Crossing the Chasmgeoffreyamoore.com/book/crossing-the-chasm. El marco completo del beachhead, para comparar tu propia elección de segmento contra los criterios originales de Moore. En inglés.
  • Clayton M. Christensen y Taddy Hall, "Know Your Customers' Jobs to Be Done" — hbr.org/2016/09/know-your-customers-jobs-to-be-done. El artículo de referencia detrás del job que define el segmento en la Parte 1 de este proyecto. En inglés.
  • Marty Cagan (SVPG), "Product Market Fit" — svpg.com/product-market-fit. El puente natural hacia el módulo 4: una vez logrado el ajuste con un segmento, la pregunta siguiente es qué tan defendible es. En inglés.