Back

Loading…

Documentation

Autoevaluación Supervisión Efectiva

Documento de discusión — de plantilla Excel a plataforma de tests automatizados de CGM Consulting Group

Cliente piloto: Pintulac · Test piloto: Autoevaluación - Supervisión Efectiva (modelo "Las Tres Ces")


Tabla de contenidos

  1. Qué revisamos
  2. Decisiones tomadas
  3. Anatomía del test
  4. Cómo se calculan los resultados hoy
  5. Estado actual: Pintulac
  6. Hallazgos en los archivos actuales
  7. Lo que esto nos dice sobre el producto a construir
  8. Modelo de datos propuesto
  9. Roles y permisos
  10. Arquitectura y stack
  11. Preguntas abiertas para discutir
  12. Próximos pasos propuestos

🧭 Qué revisamos

Dos archivos, punto de partida de todo lo demás:

Archivo Qué es
Plantilla test Claridad Contagio Contro.xlsx La plantilla maestra en blanco: 1 hoja, 70 filas, define la estructura del test.
Autoevaluación Super Pintulac.xlsx La plantilla ya usada por Pintulac: 5 hojas, una por colaborador (Daniel Solano, Elvis Zambrano, Sandra Vega, Mónica de la Cruz, Diana F.), cada una con la plantilla copiada + respuestas + fórmulas de cálculo + gráficos.

Es decir: hoy "automatizar el test" = copiar la hoja de la plantilla una vez por persona y llenarla a mano. Eso es exactamente el proceso que este proyecto busca reemplazar.

⬆ volver arriba


✅ Decisiones tomadas

Primera ronda de discusión, resuelta:

Tema Decisión
Dueño del sistema Lo construye CGM Consulting Group como plataforma propia, no solo para Pintulac.
Clientes Pintulac es el único cliente activo hoy, pero hay otros en el radar → el sistema es multi-cliente desde el día uno, con branding/logo por cliente en reportes y (probablemente) en el formulario.
Tests CGM tiene más tests además de "Las Tres Ces", pero arrancamos solo con este test. El modelo de datos debe quedar listo para sumar tests nuevos sin rediseño.
Captura Se reemplaza el Excel por un formulario web.
Tipo de evaluación Para este test, es 100% autoevaluación — el colaborador califica ambos ejes (Aplicación y Respuesta) él mismo. No es 360° en esta primera versión.
Visibilidad El colaborador ve su propio radar. Un jefe de RRHH u otros designados del cliente ven el detalle individual de todo el cliente (no solo su equipo) + el consolidado.
Visualizaciones v1 Se replican los gráficos existentes (radar + barras por subsección). Se revisan/amplían después, no en el primer entregable.
Comparación y tiempo Sí hace falta comparar entre colaboradores y ver evolución en el tiempo — confirma que "campaña" (una aplicación del test en una fecha) es un concepto central del modelo.
Cadencia El plan original es trimestral, pero lo que el sistema debe garantizar es registrar cuándo se realizó cada test, no asumir que siempre será cada 3 meses.
Administración CGM administra clientes, tests y campañas. Los clientes no tienen autoservicio de administración en esta primera versión.
Roles de acceso Tres niveles: usuario CGM (acceso total, todos los clientes), designado del cliente (acceso especial, todo su cliente), colaborador regular (solo sus propios resultados). Detalle en Roles y permisos.
Stack Aún sin decidir entre Symfony puro y Drupal headless — ver Arquitectura y stack.

⬆ volver arriba


🧩 Anatomía del test

El test evalúa el modelo propietario de "Las Tres Ces" de Supervisión Efectiva: Claridad, Contagio y Control. Cada C se divide en subsecciones temáticas, y cada subsección contiene varios parámetros puntuables.

Cada parámetro se califica dos veces, en escala 1–10:

  • Aplicación — qué tanto el líder aplica ese comportamiento.
  • Respuesta — qué tanto responde/devuelve el equipo frente a ese comportamiento.
C Subsección # parámetros
Claridad Roles y responsabilidades 4
Metas y objetivos 4
Políticas y procedimientos 4
Contagio Liderando con el ejemplo 2
Siendo justos 2
Siendo honesto y coherente en todos tus actos 4
Control Indicadores de gestión 2
Acompañamiento en el campo 2
Retroalimentación en tibio 10

34 parámetros × 2 ejes = 68 datos por persona, todos de entrada manual, sin lista desplegable ni validación de rango en la plantilla (se puede tipear cualquier número, incluso fuera de 1–10, y Excel no lo objeta).

⬆ volver arriba


🔄 Cómo se calculan los resultados hoy

Dentro de cada hoja de colaborador, además de las respuestas crudas (columnas C y D), hay tres niveles de agregación construidos a punta de fórmulas y copiado manual de celdas:

flowchart LR
    A["Respuestas crudas<br/>C13:D70<br/>(34 filas × Aplicación/Respuesta)"] --> B["Promedio por subsección<br/>tabla N:P<br/>=SUM(rango)/n"]
    B --> C["Promedio por C<br/>tabla U57:W59<br/>Claridad · Contagio · Control"]
    A -.copiado celda a celda.-> D["Tabla plana U63:W97<br/>=+C13, =+D13, ... una fila por parámetro"]
    D --> E["12 gráficos de barra<br/>(uno por subsección)"]
    D --> F["1 gráfico radar<br/>'Rueda Supervisión Efectiva'"]
    C --> F

    classDef raw fill:#e8f0fe,stroke:#4285f4,color:#1a237e
    classDef calc fill:#fef7e0,stroke:#f9ab00,color:#5f3d00
    classDef chart fill:#e6f4ea,stroke:#34a853,color:#0d3d1a
    class A raw
    class B,C,D calc
    class E,F chart

Lo importante: la tabla plana U63:W97 (la que alimenta el gráfico radar grande) no es un cálculo, es una copia manual celda-por-celda (=+C13, =+D14, …) de las 34 respuestas. Se reconstruye a mano cada vez que se copia la hoja para un nuevo colaborador. Es el eslabón más frágil del archivo — y es justo donde encontramos el bug (ver Hallazgos).

⬆ volver arriba


📊 Estado actual: Pintulac

5 colaboradores evaluados hasta ahora. Promedios por C (escala 1–10):

Colaborador Claridad · Aplic. Claridad · Resp. Contagio · Aplic. Contagio · Resp. Control · Aplic. Control · Resp.
Daniel Solano 9.58 8.58 9.75 9.17 9.44 9.15
Elvis Zambrano 8.75 7.50 8.92 7.50 7.82 6.26
Sandra Vega 7.50 6.08 8.50 7.67 7.91 6.92
Mónica de la Cruz 9.17 7.25 8.83 7.33 8.35 6.70
Diana F. 8.00 6.08 9.08 7.75 8.44 7.33

💡 Un patrón que salta a la vista: en los 5 colaboradores y en las 3 Ces, Respuesta siempre puntúa por debajo de Aplicación (brecha de ~1 a ~2 puntos). Nadie puede verlo hoy sin abrir las 5 hojas y comparar a mano — es exactamente el tipo de insight que un dashboard agregado debería mostrar solo, y es un buen argumento a favor de construir la vista comparativa entre colaboradores/equipo desde el día uno.

⬆ volver arriba


⚠️ Hallazgos en los archivos actuales

# Hallazgo Ubicación Impacto
1 Fórmula rota =+#REF! en V90/W90 Hoja "Daniel Solano" La fila 90 quedó etiquetada dos veces como "Control retroalimentación en tibio 4" (igual que la fila 91) con una referencia que apunta a una celda borrada. No afecta los promedios por C (esos se calculan aparte, desde la tabla N:P), pero sí deja un punto roto/duplicado en el gráfico radar grande de esa persona. Es la evidencia directa de que copiar-pegar hojas por colaborador es un proceso que falla silenciosamente.
2 Sin validación de rango Toda celda de respuesta (C13:D70 y equivalentes) No hay lista desplegable ni validación de datos — se puede ingresar cualquier número, texto o dejar vacío sin que Excel avise.
3 Sin hoja de consolidado Archivo Pintulac completo Las 5 hojas son islas. No existe una vista "toda la Zona / toda la empresa" — hay que abrir y comparar manualmente, como se hizo arriba a mano para esta tabla.
4 Sin metadatos de la evaluación Todas las hojas No se registra fecha de aplicación, cargo/posición, tienda o punto de venta, ni quién evaluó. Sin fecha, es imposible medir evolución entre periodos (¿mejoró este líder en 6 meses?).
5 El proceso no escala Modelo de trabajo Cada colaborador nuevo = copiar hoja completa (70 filas, 3 tablas de agregación, 13 gráficos) y reconectar fórmulas a mano. Con 5 personas ya apareció un error; con 50 o 500 el archivo se vuelve inmanejable.

⬆ volver arriba


🎯 Lo que esto nos dice sobre el producto a construir

La plantilla Excel no es solo el "diseño visual" del test — ya contiene, implícita, la lógica de negocio completa que el sistema nuevo debe reproducir (y arreglar):

  • Un test tiene secciones → subsecciones → parámetros, en ese orden jerárquico, y ese orden importa para el reporte.
  • Cada parámetro se responde en dos ejes simultáneos (Aplicación / Respuesta), no es un formulario de una sola pregunta por ítem.
  • Los resultados se necesitan en tres niveles de zoom: por parámetro, por subsección, por categoría (C) — y ese último nivel es el que alimenta el radar, que es claramente la visualización "estrella" que le importa al negocio.
  • El valor real no está en capturar la respuesta — está en agregar, comparar entre personas y seguir en el tiempo, cosa que Excel no hace hoy y que es el hallazgo #1 de la sección anterior.
  • Pintulac es el cliente piloto y esta es la prueba piloto — el sistema debe pensarse multi-cliente y multi-test desde el modelo de datos, no como un caso especial.

⬆ volver arriba


🗂️ Modelo de datos propuesto (borrador para discutir)

erDiagram
    CLIENTE ||--o{ EMPLEADO : emplea
    CLIENTE ||--o{ CAMPANA : encarga
    CLIENTE ||--o{ USUARIO : "admite (cliente_admin)"
    TEST_PLANTILLA ||--o{ SECCION : define
    SECCION ||--o{ SUBSECCION : define
    SUBSECCION ||--o{ PARAMETRO : define
    TEST_PLANTILLA ||--o{ CAMPANA : se_aplica_en
    CAMPANA ||--o{ ENVIO : genera
    EMPLEADO ||--o{ ENVIO : responde
    EMPLEADO ||--o| USUARIO : "puede iniciar sesión como"
    ENVIO ||--o{ RESPUESTA : contiene
    PARAMETRO ||--o{ RESPUESTA : califica

    CLIENTE {
        string nombre "Pintulac"
        string logo_url
        string color_primario
        string color_secundario
    }
    USUARIO {
        string email
        enum rol "cgm_admin / cliente_admin / colaborador"
    }
    TEST_PLANTILLA {
        string nombre "Autoevaluación Supervisión Efectiva"
        string escala "1-10"
        json ejes "[Aplicación, Respuesta]"
    }
    CAMPANA {
        string periodo "Q1 2026"
        string periodicidad "trimestral"
        date fecha_inicio
        date fecha_cierre
    }
    EMPLEADO {
        string nombre
        string cargo
        string tienda_pos
    }
    ENVIO {
        date fecha_respuesta
        enum estado "pendiente/completo"
    }
    RESPUESTA {
        int valor_aplicacion "1-10"
        int valor_respuesta "1-10"
    }

Puntos deliberados de este borrador, para reaccionar en la discusión:

  • TEST_PLANTILLA es reutilizable entre clientes (Pintulac hoy, otro cliente mañana con el mismo test o uno nuevo) y entre tests (Las Tres Ces hoy, el próximo test de CGM mañana).
  • CAMPANA es lo que falta hoy en Excel: amarra un test a un cliente en un periodo, lo que habilita comparar entre campañas en el tiempo. periodicidad guarda el plan ("trimestral") pero ENVIO.fecha_respuesta es la fecha real — nunca se asume que todos responden a tiempo.
  • EMPLEADO.cargo y tienda_pos resuelven el hallazgo #4 (sin metadatos) y habilitan cortar los resultados por tienda/zona, no solo por persona.
  • USUARIO separa quién puede entrar al sistema de quién es evaluado. Un cgm_admin no pertenece a ningún cliente. Un cliente_admin pertenece a un CLIENTE y ve todo lo de ese cliente. Un colaborador está casi siempre ligado 1:1 a un EMPLEADO (así puede loguearse y ver su propio radar) — ese vínculo es opcional en el modelo porque un cliente_admin podría, a futuro, ser también evaluado.
  • CLIENTE.logo_url / colores habilitan branding por cliente en reportes y formulario, sin tocar código por cada cliente nuevo.
  • Los ejes de calificación (Aplicación/Respuesta) se modelan como algo configurable por test, no hardcodeado — para que el próximo test de CGM no obligue a tocar el esquema.

⬆ volver arriba


🔐 Roles y permisos

Rol Alcance Qué puede ver
Usuario CGM Global, todos los clientes Acceso total: crear/editar clientes, tests, campañas; ver detalle individual y consolidado de cualquier cliente.
Designado del cliente (ej. jefe de RRHH de Pintulac) Todo su cliente Detalle individual de todos los colaboradores de su empresa + el consolidado. No ve otros clientes. No administra tests/campañas (eso es de CGM).
Colaborador regular Sí mismo Solo su propio radar y resultados, campaña actual e histórico personal. No ve a otros colaboradores.

⚠️ Pendiente de confirmar: dentro de "designado del cliente", ¿todos los designados tienen el mismo nivel (ven todo el cliente), o eventualmente habrá un nivel intermedio (ej. gerente de zona que solo ve su zona)? Hoy el modelo asume que todo designado ve el cliente completo — si se necesita un nivel intermedio más adelante, se puede resolver sin rediseño mayor (es la opción "configurable por asignación" que quedó descartada para el v1, pero el modelo de USUARIO la deja abierta).

⬆ volver arriba


🏗️ Arquitectura y stack

Todavía sin decidir entre las dos opciones que planteaste. Para aterrizar la conversación:

Symfony puro Drupal headless
Qué es Framework PHP, se construye todo a medida. Drupal está construido sobre Symfony — se hereda su base, más un CMS/entity system encima.
Admin de clientes/tests/campañas Se construye desde cero (CRUD, permisos, listados). Gran parte viene gratis: Content types/entidades, Views para listados y filtros, sistema de roles y permisos ya maduro.
Multi-tenant + branding por cliente A medida. Encaja bien con el patrón de entidades + campos de Drupal (logo, colores por "Cliente" como entidad).
Formulario del test (68 respuestas) y dashboards con radar/barras A medida, control total del UX. También a medida — normalmente desacoplado: un frontend JS a medida (React/Vue) consumiendo Drupal como API (JSON:API / GraphQL), porque el UX de un radar interactivo no es el fuerte nativo de Drupal.
Curva/velocidad Más control, más código propio para lo que Drupal ya trae resuelto (roles, admin). Arranca más rápido en la parte de administración; el equipo necesita cómodo con el modelo de entidades de Drupal + una capa headless.
Cuándo conviene Si el proyecto es sobre todo el formulario + los cálculos + dashboards, y la parte "administrativa" es chica. Si CGM anticipa bastante trabajo de administración de datos (muchos clientes, muchos tests, permisos finos) además del formulario/dashboards.

Recomendación para reaccionar: Drupal headless (Drupal como backend/API + roles + multi-tenant, frontend a medida para el formulario y los dashboards) — porque el catálogo de clientes/tests/campañas/permisos que describiste es justo lo que Drupal resuelve de fábrica, y da flexibilidad total en la capa de captura y visualización, que es la parte más "de producto" del proyecto. Pero es una recomendación, no una decisión — queda pendiente confirmarla.

⬆ volver arriba


❓ Preguntas abiertas para discutir

Formulario web

  • ¿El colaborador entra con usuario/contraseña, o con un link único por campaña (sin cuenta que mantener)?
  • Con 68 respuestas en un solo test, ¿el formulario permite guardar avance a medias y continuar después, o se llena de una sentada?
  • ¿Se conserva la escala numérica 1–10 tal cual (input numérico), o vale la pena una UI tipo slider/estrellas para ese rango?

Roles y permisos

  • Ver la pregunta pendiente en Roles y permisos: ¿todo designado de cliente ve el cliente completo, o hará falta un nivel intermedio (por zona/equipo) más adelante?

Branding

  • ¿El branding por cliente es solo logo en reportes/PDF, o también colores/tema dentro del formulario que llena el colaborador?

Arquitectura

  • Ver Arquitectura y stack: ¿Symfony puro o Drupal headless? ¿Alguien del equipo ya tiene experiencia fuerte en uno de los dos que deba pesar en la decisión?

Roadmap de tests

  • Mencionaste que hay más tests de CGM además de las Tres Ces — ¿conviene ver por encima 1 o 2 de esos tests ahora, aunque no se construyan todavía, solo para confirmar que el modelo de datos (Modelo de datos propuesto) realmente generaliza y no está sesgado hacia las particularidades de este test?

⬆ volver arriba


🚀 Próximos pasos propuestos

  1. Cerrar la decisión de arquitectura y stack (Symfony vs. Drupal headless) — es la que más condiciona cómo arranca el proyecto.
  2. Resolver las preguntas de UX del formulario (login por link vs. cuenta, avance guardado) — afecta el modelo de ENVIO/USUARIO.
  3. Convertir el borrador de modelo de datos en un esquema concreto (migraciones/entidades) sobre el stack elegido.
  4. Definir el primer entregable útil: probablemente cargar los datos que ya existen de Pintulac (arreglando el bug del hallazgo #1) para tener un dashboard real desde el arranque, antes de construir la captura de campañas nuevas.

⬆ volver arriba

Contents