Saltar al contenido
← Ideas

Configuración heredada en un SaaS: cómo definir valores predeterminados y excepciones

Diseña una jerarquía de ajustes clara para que cada organización herede lo necesario, permita excepciones justificadas y entienda siempre qué valor está activo.

Diagrama conceptual de ajustes de producto heredados por una organización y sus usuarios

En un SaaS B2B, un ajuste puede afectar a toda la plataforma, a una organización o solo a una persona. Si cada nivel tiene valores distintos y la interfaz no explica cuál se aplica, aparecen sorpresas: usuarios que ven comportamientos diferentes, administradores incapaces de controlar una política y equipos de soporte obligados a investigar configuraciones ambiguas.

La configuración heredada resuelve este problema cuando las decisiones tienen una jerarquía real. El objetivo no es añadir niveles por anticipado, sino determinar quién debe decidir cada ajuste, qué excepciones tienen sentido y cómo comunicar el valor efectivo. Un modelo explícito evita que la flexibilidad se convierta en una colección difícil de mantener de reglas especiales.

Cuándo conviene introducir herencia

Cuándo conviene introducir herencia

La herencia es útil cuando existe una relación estable entre los niveles de decisión. Por ejemplo, el producto puede ofrecer un valor predeterminado; el administrador de una organización puede adaptarlo a sus políticas; y cada usuario puede personalizarlo para su trabajo, siempre que esas elecciones no contradigan una obligación organizativa.

No hace falta crear una jerarquía para todo ajuste. Si un valor es individual y no depende de una política común, puede bastar con una preferencia de usuario. Si debe ser idéntico para todos por razones de seguridad, quizá solo deba configurarlo una persona autorizada en la organización. Añadir niveles innecesarios aumenta la carga de diseño, permisos, pruebas y soporte.

Antes de implementar, identifica la decisión detrás de cada campo. Pregunta quién es responsable, quién necesita una excepción y qué consecuencias tiene un cambio. Si no puedes responder con claridad, mantén el ajuste simple hasta disponer de un caso que justifique la herencia.

Elegir niveles según quién toma cada decisión

Un modelo habitual distingue tres niveles:

  • Predeterminado del producto: proporciona un comportamiento inicial coherente y aplicable a las organizaciones que no han elegido otro valor.
  • Organización: permite al administrador adaptar la configuración a procesos, políticas o necesidades compartidas.
  • Usuario: ofrece personalización individual cuando no entra en conflicto con la decisión organizativa.

Estos niveles no son obligatorios. Añade uno solo si existe un actor que necesita tomar esa decisión y cuenta con permisos adecuados. En organizaciones grandes puede haber roles administrativos distintos, pero eso no significa necesariamente que deban convertirse en nuevos niveles de configuración: a menudo basta con definir quién puede editar los ajustes de organización.

También conviene separar preferencias de políticas. Una preferencia suele admitir elección individual, como una opción de visualización. Una política expresa una regla que la organización quiere imponer. Confundir ambas lleva a permitir que una preferencia personal anule una decisión que debía ser obligatoria.

Definir precedencia y excepciones explícitamente

Una regla fácil de explicar es que el valor más específico aplicable prevalece: usuario, después organización y, por último, predeterminado del producto. Pero esta regla solo sirve si el ajuste permite sobrescritura en todos esos niveles. Las restricciones de seguridad o cumplimiento pueden exigir otra lógica: la organización fija un valor obligatorio y el usuario no puede cambiarlo.

Por eso, define la precedencia por tipo de ajuste, no como una promesa universal. Para cada campo, documenta el valor base, los niveles editables, quién puede sobrescribirlo y si una política puede bloquear la edición. La interfaz y la lógica del servidor deben aplicar la misma regla; ocultar un control en pantalla no sustituye la validación de permisos en el servidor.

Es útil distinguir entre “sin valor propio” y “valor igual al predeterminado”. En el primer caso, el ajuste hereda y puede cambiar cuando cambie el nivel superior. En el segundo, existe una elección explícita que debe conservarse. Si el sistema los trata como equivalentes, no podrá explicar correctamente el origen del valor ni preservar la intención del usuario.

Mostrar el valor efectivo y su origen

Quien administra necesita saber tanto el valor activo como quién lo determina. Mostrar solo el valor final oculta si se heredó o se eligió de forma explícita. En cambio, una etiqueta como “Heredado del producto” o “Definido por la organización” hace visible el origen y reduce dudas sobre qué ocurrirá al editarlo.

Ofrece acciones acordes al nivel de permisos: cambiar el valor, restablecerlo para volver a heredar o consultar por qué no se puede editar. Si la organización ha fijado una política, explica que el ajuste está bloqueado y señala el nivel o rol que puede modificarla. Evita mensajes que sugieran una opción disponible cuando el usuario no tiene autorización para aplicarla.

Cuando el usuario restablece un ajuste, confirma el efecto de forma concreta: el valor dejará de ser una excepción y seguirá la configuración superior. Si la herencia puede cambiar más adelante, dilo. Así se evita que “restablecer” se interprete como fijar para siempre el valor que se ve ahora.

Gestionar cambios sin borrar excepciones

Cambiar el predeterminado del producto debería afectar a quienes heredan ese valor, no a quienes eligieron una excepción explícita. Lo mismo se aplica cuando una organización modifica su configuración: los usuarios que heredan de ella deben seguir el nuevo valor; los que tienen una elección propia solo deberían cambiar si esa excepción está permitida y la acción está claramente definida.

Antes de desplegar un cambio, identifica qué registros representan valores heredados y cuáles son decisiones explícitas. No infieras la intención únicamente porque el valor almacenado coincide con el predeterminado actual. Conserva el estado de herencia de forma que el sistema pueda recalcular el valor efectivo después de una actualización.

Si el producto necesita cambiar el comportamiento por defecto, comunica qué grupos se verán afectados y qué ocurre con las excepciones. Cuando sea apropiado, permite revisar el cambio antes de aplicarlo en una organización. Para operaciones administrativas importantes, registra quién cambió el ajuste y cuándo, de acuerdo con las necesidades de soporte y auditoría del producto.

Probar combinaciones, permisos y casos límite

Las pruebas deben cubrir más que el valor habitual. Comprueba cada combinación de niveles: todos heredan, la organización elige una opción, el usuario crea una excepción y una política organizativa bloquea esa excepción. Verifica también qué ocurre al eliminar o restablecer un valor y al cambiar el predeterminado superior.

  • Permisos: confirma que cada rol puede ver y editar únicamente lo que le corresponde.
  • Consistencia: comprueba que la interfaz, las API y los procesos internos obtienen el mismo valor efectivo.
  • Actualizaciones: asegúrate de que cambiar un nivel afecta a sus herederos sin sobrescribir elecciones explícitas.
  • Ausencia de datos: define el resultado cuando un valor no existe o una configuración antigua no contiene el campo.
  • Explicabilidad: verifica que la aplicación puede mostrar el origen y la razón de un bloqueo.

Una señal de diseño deficiente es que soporte no pueda contestar “¿por qué esta persona ve este valor?” sin inspeccionar manualmente varias tablas. Otra es que los administradores no sepan si una modificación afectará a usuarios concretos. Si aparecen estos síntomas, revisa el modelo y la presentación del origen antes de añadir más excepciones.

Lista de comprobación para una jerarquía mantenible

Lista de comprobación para una jerarquía mantenible
  1. Asigna un responsable y un propósito a cada ajuste.
  2. Define los niveles necesarios y elimina los que no tengan un caso claro.
  3. Especifica precedencia, permisos, bloqueos y reglas de excepción por campo.
  4. Representa por separado el valor efectivo y el estado de herencia.
  5. Explica el origen del valor y qué implica restablecerlo.
  6. Prueba cambios en niveles superiores, permisos y configuraciones incompletas.
  7. Documenta qué excepciones conserva el sistema y cómo se auditan los cambios relevantes.

Una buena configuración heredada no ofrece el máximo número de opciones: hace visible quién decide, qué se hereda y cuándo una excepción es válida. Si cada ajuste tiene una regla comprensible y comprobable, el producto puede evolucionar sin convertir sus preferencias en una fuente constante de conflictos.

Fuentes y referencias

  1. MDN Web DocsMozilla
  2. Web performanceweb.dev
  3. OWASP Cheat Sheet SeriesOWASP Foundation