Módulo 4: Differentiation And Value Prop

Mini-proyecto: el mapa de diferenciación de Mercado

Descripción

Es momento de juntar el módulo entero en un solo artefacto: el mapa de diferenciación de Mercado, verificado con código, no solo redactado. Aprendiste a distinguir paridad de diferenciación real (L2), a auditar una propuesta de valor en vez de escribirla a ojo (L3), a defenderla cara a cara contra un rival nombrado (L4), a estimar qué tan rápido se copia (L5), a organizarla en el Value Proposition Canvas (L6), y a reconocer las trampas que un equipo confiado comete sin mala intención (L7). En este proyecto corres differentiationMap sobre las seis dimensiones que aparecieron a lo largo del módulo, contra los dos competidores del posicionamiento del módulo 3, y cierras con la propuesta de valor final — la única versión que debería salir de esta sala.

Tu entregable tiene dos partes, y las dos se verifican con código: (1) el mapa completo de diferenciación, con las seis dimensiones y sus veredictos; y (2) la propuesta de valor de Mercado, construida únicamente sobre las dimensiones que el mapa confirma como diferenciación real — sin una sola afirmación que no pase la auditoría.

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ó en el módulo 3 (el segmento y el posicionamiento que hicieron posible este mapa) y que sigue en el módulo 5, donde el panorama competitivo se amplía más allá de los dos rivales que usaste aquí.

Una analogía: el caso ante el jurado

Un abogado que cierra un juicio no se para frente al jurado y dice "mi cliente es inocente, confíen en mí" — presenta evidencia, exhibit por exhibit, cada una con su número y su procedencia clara: el testimonio A confirma el punto X, la prueba B descarta la hipótesis Y. El jurado no decide por la confianza que transmite el abogado — decide por la evidencia que puede revisar por sí mismo, pieza por pieza.

Este mini-proyecto es exactamente eso: el caso completo de "por qué Mercado, y no el gigante genérico ni la tienda de barrio", armado como un abogado armaría un cierre — no con adjetivos, sino con seis piezas de evidencia (las seis dimensiones), cada una con su veredicto verificable. Al final, la propuesta de valor que escribes no es una opinión sobre Mercado: es la conclusión que se sigue, con lógica, de la evidencia que acabas de presentar.

La solución de referencia, verificada

Parte 1 — El mapa de diferenciación completo, en Node

Corremos differentiationMap sobre las seis dimensiones que aparecieron en el módulo — incluida appAnimationPolish, la trampa de la lección 7, para que quede documentada y nadie vuelva a presentarla como diferenciador de negocio — contra los dos competidores del módulo 3.

// PROYECTO: el mapa de diferenciacion completo de Mercado, verificado con
// differentiationMap -- el unico modelo del modulo -- sobre las 6 dimensiones
// que aparecieron a lo largo de las lecciones, contra los dos competidores
// del posicionamiento (modulo 3): el gigante generico y la tienda de barrio.

function differentiationMap(us, competitors, dimensions) {
  const REAL_DIFF_MARGIN = 2;
  return dimensions.map((dim) => {
    const usScore = us.scores[dim.key];
    const rivals = competitors.map((c) => ({ name: c.name, score: c.scores[dim.key] }));
    const best = rivals.reduce((a, b) => (b.score > a.score ? b : a));
    const gap = usScore - best.score;
    let verdict;
    if (gap >= REAL_DIFF_MARGIN) verdict = 'differentiation';
    else if (gap <= -REAL_DIFF_MARGIN) verdict = 'gap';
    else verdict = 'parity';
    return {
      dimension: dim.key,
      mattersToSegment: dim.matters,
      usScore,
      bestCompetitor: best.name,
      bestCompetitorScore: best.score,
      verdict,
    };
  });
}

const mercado = {
  name: 'Mercado',
  scores: {
    catalogBreadth: 3,
    price: 3,
    deliverySpeed: 4,
    curatedDiscovery: 5,
    localSellerTrust: 5,
    appAnimationPolish: 5,
  },
};

const genericMegastore = {
  name: 'genericMegastore',
  scores: {
    catalogBreadth: 5,
    price: 5,
    deliverySpeed: 4,
    curatedDiscovery: 2,
    localSellerTrust: 2,
    appAnimationPolish: 2,
  },
};

const neighborhoodShop = {
  name: 'neighborhoodShop',
  scores: {
    catalogBreadth: 1,
    price: 3,
    deliverySpeed: 2,
    curatedDiscovery: 3,
    localSellerTrust: 3,
    appAnimationPolish: 1,
  },
};

const dimensions = [
  { key: 'catalogBreadth', matters: false },
  { key: 'price', matters: false },
  { key: 'deliverySpeed', matters: true },
  { key: 'curatedDiscovery', matters: true },
  { key: 'localSellerTrust', matters: true },
  { key: 'appAnimationPolish', matters: false },
];

console.log('=== El mapa de diferenciación completo de Mercado ===\n');
const results = differentiationMap(mercado, [genericMegastore, neighborhoodShop], dimensions);
console.table(results);

const realDiffs = results.filter((r) => r.verdict === 'differentiation' && r.mattersToSegment);
const fakeDiffs = results.filter((r) => r.verdict === 'differentiation' && !r.mattersToSegment);
const tableStakes = results.filter((r) => r.verdict === 'parity');
const concededGaps = results.filter((r) => r.verdict === 'gap' && !r.mattersToSegment);

console.log(`\nDiferenciación real (va en la propuesta de valor): ${realDiffs.map((r) => r.dimension).join(', ') || 'ninguna'}`);
console.log(`Diferenciación real pero irrelevante (no va en la propuesta de valor): ${fakeDiffs.map((r) => r.dimension).join(', ') || 'ninguna'}`);
console.log(`Mesa de apuestas / table stakes: ${tableStakes.map((r) => r.dimension).join(', ') || 'ninguna'}`);
console.log(`Gaps concedidos a propósito: ${concededGaps.map((r) => r.dimension).join(', ') || 'ninguno'}`);

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

=== El mapa de diferenciación completo de Mercado ===

┌─────────┬──────────────────────┬──────────────────┬─────────┬────────────────────┬─────────────────────┬───────────────────┐
│ (index) │      dimension       │ mattersToSegment │ usScore │   bestCompetitor   │ bestCompetitorScore │      verdict      │
├─────────┼──────────────────────┼──────────────────┼─────────┼────────────────────┼─────────────────────┼───────────────────┤
│    0    │   'catalogBreadth'   │      false       │    3    │ 'genericMegastore' │          5          │       'gap'       │
│    1    │       'price'        │      false       │    3    │ 'genericMegastore' │          5          │       'gap'       │
│    2    │   'deliverySpeed'    │       true       │    4    │ 'genericMegastore' │          4          │     'parity'      │
│    3    │  'curatedDiscovery'  │       true       │    5    │ 'neighborhoodShop' │          3          │ 'differentiation' │
│    4    │  'localSellerTrust'  │       true       │    5    │ 'neighborhoodShop' │          3          │ 'differentiation' │
│    5    │ 'appAnimationPolish' │      false       │    5    │ 'genericMegastore' │          2          │ 'differentiation' │
└─────────┴──────────────────────┴──────────────────┴─────────┴────────────────────┴─────────────────────┴───────────────────┘

Diferenciación real (va en la propuesta de valor): curatedDiscovery, localSellerTrust
Diferenciación real pero irrelevante (no va en la propuesta de valor): appAnimationPolish
Mesa de apuestas / table stakes: deliverySpeed
Gaps concedidos a propósito: catalogBreadth, price

Las seis dimensiones se reparten en las cuatro categorías que el módulo entero construyó, y cada una tiene una recomendación de acción distinta: invertir más en curatedDiscovery y localSellerTrust (son la razón real por la que Mercado gana); mantener, sin gastar más de lo necesario, en deliverySpeed (mesa de apuestas: hay que seguir empatados, no hace falta ganar ahí); ignorar a propósito catalogBreadth y price (gaps que no le cuestan nada al segmento que Mercado eligió servir); y no promocionar como diferenciador de negocio, aunque siga siendo trabajo técnico digno de mantenerse, appAnimationPolish (gana, pero a nadie del segmento le importa).

Parte 2 — La propuesta de valor final, respaldada por evidencia

const valueProp = {
  segment: 'compradores que exploran, no los que buscan un SKU exacto',
  category: 'marketplace de descubrimiento curado',
  differentiators: realDiffs.map((r) => r.dimension),
  statement:
    'Para compradores que exploran sin saber exactamente qué buscan, Mercado es el marketplace de descubrimiento curado que te conecta con vendedores locales verificados -- a diferencia del gigante genérico, que muestra de todo pero no ayuda a encontrar nada, y a diferencia de la tienda de barrio, que sí conoces pero no puedes explorar más allá de sus cuatro paredes.',
};

console.log('\n=== La propuesta de valor, respaldada solo por diferenciación real ===\n');
console.log(valueProp.statement);
console.log(`\nPilares verificados: ${valueProp.differentiators.join(' + ')}.`);

Qué esperar.

=== La propuesta de valor, respaldada solo por diferenciación real ===

Para compradores que exploran sin saber exactamente qué buscan, Mercado es el marketplace de descubrimiento curado que te conecta con vendedores locales verificados -- a diferencia del gigante genérico, que muestra de todo pero no ayuda a encontrar nada, y a diferencia de la tienda de barrio, que sí conoces pero no puedes explorar más allá de sus cuatro paredes.

Pilares verificados: curatedDiscovery + localSellerTrust.

Nota lo que la propuesta de valor final no dice: no dice nada sobre catálogo, no dice nada sobre precio, no menciona la velocidad de entrega como una ventaja, y no menciona lo pulidas que son las animaciones — aunque las cuatro son cosas reales de Mercado. Cada palabra de este statement se puede trazar hasta una fila específica de la tabla de la Parte 1 marcada differentiation y mattersToSegment: true. Eso es lo que significa, en la práctica, que una propuesta de valor esté "verificada con código": no es un ejercicio de redacción — es la conclusión de un caso ya armado, evidencia por evidencia, exactamente como en la analogía del jurado.

Errores comunes

Entregar el mapa sin la propuesta de valor final. Qué pasa: el equipo presenta la tabla completa de seis dimensiones —el trabajo de análisis— y se detiene ahí, sin dar el paso final de escribir el statement que un comprador real necesita leer. Por qué pasa: la tabla se siente como "el trabajo difícil ya hecho", y redactar la frase final parece un paso menor, casi administrativo, comparado con el análisis. Cómo detectarlo: si tu entregable termina en una tabla y no en una frase de una sola línea que cualquier persona fuera del equipo pueda leer y entender en diez segundos, el proyecto está a medias. Cómo corregirlo: ninguna auditoría de diferenciación está completa sin su traducción final a lenguaje humano — la Parte 2 no es opcional, es el propósito de haber hecho la Parte 1.

Tratar el mapa como un documento fijo, para siempre. Qué pasa: el mapa de esta lección se guarda como la versión definitiva de la diferenciación de Mercado, y nadie lo vuelve a correr —ni siquiera después de que, como viste en la lección 5, un rival podría copiar curatedDiscovery y erosionar esa ventaja a paridad. Por qué pasa: un proyecto entregado se siente terminado, y no hay, todavía, un proceso formal que obligue a recalcularlo. Cómo detectarlo: si no puedes decir cuándo fue la última vez que se corrió differentiationMap con datos actualizados, tu mapa "definitivo" probablemente ya no lo es. Cómo corregirlo: trata este proyecto como una plantilla reutilizable, no como un documento final — cada vez que el panorama competitivo cambie (tema del módulo 5), vuelve a correrlo con los puntajes actuales.

Usar el resultado del mapa como la decisión final de qué construir. Qué pasa: se interpreta "curatedDiscovery y localSellerTrust son diferenciación real" como "construyamos más de eso, en cualquier orden, sin evaluar nada más". Por qué pasa: un resultado claro y verificado se siente como una autorización completa para actuar, cuando en realidad responde una sola pregunta: cuáles apuestas merecen competir por prioridad, no en qué orden ni con qué esfuerzo. Cómo detectarlo: si tu plan de construcción usa el mapa de diferenciación como la única entrada, sin pasar por impacto ni esfuerzo, te falta un paso — ese es el trabajo de RICE en product-thinking-for-engineers-guide, aplicado después de saber qué dimensiones importan. Cómo corregirlo: recuerda la frontera del módulo 1 y del módulo 4 — este mapa decide qué dimensiones pueden sostener una propuesta de valor real; el filtro estratégico completo que conecta esto con el roadmap de verdad, incluyendo moats (módulo 6) y priorización, es el módulo 7.

Ejercicios

Ejercicio 1 — Agrega una séptima dimensión. El equipo de soporte propone medir customerSupportQuality (calidad del soporte al cliente), y sí le importa al segmento (matters: true). Los puntajes son: Mercado = 4, genericMegastore = 2, neighborhoodShop = 5. Sin ejecutar nada, predice el verdict, y decide si esta dimensión debería entrar en la propuesta de valor final.

Ver solución

El mejor rival es neighborhoodShop con 5. El gap de Mercado es 4 - 5 = -1, que no cumple gap <= -REAL_DIFF_MARGIN (necesitaría ser <= -2) ni gap >= REAL_DIFF_MARGIN, así que el verdict es 'parity'. No debería entrar en la propuesta de valor final: aunque le importa al segmento, Mercado no gana ahí con margen real — de hecho, va un punto por debajo del mejor rival, sin llegar a ser un gap preocupante. Es mesa de apuestas con una ligera desventaja, el tipo de resultado que amerita vigilancia (si el gap creciera, se volvería una vulnerabilidad real, la combinación peligrosa que nombró la lección 2) pero no un anuncio público de ventaja.

Ejercicio 2 — Anticipa el módulo 5. El mapa de este proyecto solo compara a Mercado contra dos competidores directos. El módulo 5 va a ampliar el panorama con competidores indirectos y sustitutos — alternativas que no son marketplaces en absoluto, como buscar directamente en redes sociales o preguntarle a un amigo. Sin calcular nada todavía, escribe en 2-3 frases qué esperarías que pase con el verdict de curatedDiscovery si el sustituto fuera "pedirle recomendaciones a un grupo de WhatsApp de confianza" — ¿seguiría siendo diferenciación real, o el terreno de comparación cambiaría por completo?

Ver solución

No hay una única respuesta correcta — el ejercicio evalúa la intuición estratégica, no un cálculo. Una respuesta razonable: un grupo de WhatsApp de confianza podría, en los hechos, ofrecer un "puntaje" muy alto en curación y confianza —quizás más alto que Mercado mismo, porque la recomendación viene de alguien real que conoces—, lo cual convertiría lo que hoy es diferenciación real frente al gigante genérico y la tienda de barrio en, potencialmente, una paridad o hasta un gap frente a este sustituto. Esto es exactamente el tipo de hallazgo incómodo que la lección "el mercado no es solo tus competidores directos" (módulo 5) está diseñada para exponer: a veces el rival más peligroso ni siquiera es una empresa.

Ejercicio 3 — Presenta el mapa completo a un inversionista escéptico. Un inversionista, después de ver la tabla completa de seis dimensiones, pregunta: "¿por qué no persiguen agresivamente el catálogo y el precio, si ahí es donde está el volumen del mercado?". Usando el vocabulario completo del módulo (paridad, mesa de apuestas, gap concedido, diferenciación real), escribe en un párrafo cómo responderías, sin sonar como si Mercado tuviera miedo de competir.

Ver solución

Un ejemplo de respuesta: "No es que no podamos competir en catálogo y precio — es que elegimos no hacerlo, porque el segmento que decidimos servir no elige por ahí: perder esas dos dimensiones no nos cuesta un solo comprador de los que nos importan, según nuestro propio mapa verificado. Si persiguiéramos el catálogo y el precio, estaríamos gastando presupuesto en pagar un ante más alto del necesario, en vez de profundizar las dos dimensiones donde de verdad ganamos con margen real: descubrimiento curado y confianza en vendedores locales — ahí sacamos dos puntos completos sobre el mejor rival, no un empate técnico. Ese es el terreno donde el volumen todavía no está saturado, y es exactamente donde estamos invirtiendo cada dólar adicional." Fíjate en la estructura: no niega la oportunidad de catálogo y precio, explica que fue una elección basada en evidencia (no en miedo), y termina señalando dónde sí se está invirtiendo, con los números del propio mapa como respaldo.

Resumen y siguiente paso

En este mini-proyecto reuniste el módulo completo en un solo mapa de diferenciación verificado: seis dimensiones, dos competidores, cuatro categorías de resultado —diferenciación real, diferenciación irrelevante, mesa de apuestas y gaps concedidos— y, al final, una propuesta de valor que no dice una sola palabra que el mapa no pueda probar. Con esto cierras el módulo 4.

Ahora tienes, para cualquier producto que audites en tu propio trabajo, un proceso completo: correr el mapa, separar lo real de lo aparente, y construir la propuesta de valor solo con lo que sobrevive.

Hacia dónde sigues. Ya sabes a quién sirves (módulo 3) y por qué te eligen a ti dentro de ese terreno (módulo 4). La pregunta que sigue es más amplia: ese terreno completo —el gigante genérico, la tienda de barrio, y todos los demás jugadores que todavía no consideraste— ¿cómo se ve en conjunto, y hacia dónde se está moviendo? Esa es la pregunta del módulo 5 (module-05-competition-and-market): mapear el panorama competitivo completo, incluidos los sustitutos que ni siquiera son marketplaces, y entender hacia dónde va el mercado antes de que la guerra que estás peleando hoy deje de ser la que importa mañana.

Recursos