Skip to main content

Ayer celebramos la tercera edición de las Feature Talks, donde hablamos sobre cómo preparar un producto de software para la internacionalización: Internationalization & Feature Flags.

Este tema surge de las conversaciones que se iniciaron en la anterior Feature Talk #2 – Multitenancy & Feature Flags y aprovechamos para profundizar en la parte de customización por cliente debido a la internacionalización.

Internacionalizar un producto de software

Iniciamos la sesión poniendo en común qué significa la internacionalización y definiendo qué son las feature flags y explicando cómo sacarles el mayor partido posible.

Finalmente, nos pusimos manos a la obra con algunos casos reales de retos de internacionalización y los resolvimos mediante el uso de feature flags.

¿Cómo definimos el concepto de internacionalización para un producto digital?

Empezamos con un brainstorming entre los distintos participantes para acordar y centrar el concepto de internacionalización para una plataforma de software. Salieron varias ideas según los casos de uso a los que se enfrentan los ingenieros en sus respectivas empresas.

El reto de la internacionalización contiene muchos ángulos distintos y también es importante entender qué es necesario e imprescindible para empezar. No podemos abarcar todo de inicio.

¿Por qué las feature flags son relevantes para el caso de la internacionalización?

Empezamos preguntando a los participantes qué sabían acerca de las feature flags y cómo las habían utilizado en el pasado.

En general, los ingenieros de software piensan en las feature flags como un switch ON/OFF. Si bien esto es correcto, las feature flags son mucho más que eso, ya que éstas tienen la capacidad de albergar una lógica compleja para decidir si está ON/OFF. Lo cual abre oportunidades de segmentación según metadatos a la vez que no solo pensar en ON/OFF si no en gestionar múltiples versiones de una misma funcionalidad.

Podéis encontrar más información de las feature flags en nuestra entrada de blog ¿Qué son las Feature Flags y para qué sirven?

Casos de uso de feature flags para la internacionalización de un producto de software

Finalmente, nos adentramos en varios retos de internacionalización explicando porqué y cómo utilizar las feature flags para resolverlos.

Primer Caso

Segundo Caso

Tercer Caso

Durante la discusión de los múltiples casos de internacionalización gestionados mediante feature flags, salieron dudas y opiniones encontradas con el uso de feature flags:

Estas feature flags me generarán muchos “ifs” en el código que me complican su mantenibilidad a la vez que me acabarán suponiendo una deuda tecnológica.

Aprovechamos este momento para introducir el concepto de Feature-Driven Development, un concepto que nosotros utilizamos y que nos permite implantar las feature flags de forma elegante y sin generar deuda.

Además, lo ejemplificamos con la forma en que nosotros estructuramos el código con un caso sencillo:

/src
 /features
  /super-feature
   /v1
   /v2
   /v3
   index.js
    if (featurit.isActive("SUPER_FEATURE")) {
     switch (featurit.version("SUPER_FEATURE")) {
      case "v1":
       import "v1.js";
      case "v2":
       import "v2.js";
      default:
     }
    }
A %d blogueros les gusta esto: