Keystone Interface y Keystone Flag

Compartir esta publicación

Table of Contents

Como todos sabemos, los desarrolladores de software pueden facilitar su proceso de desarrollo integrando su trabajo tan a menudo como puedan. También se sabe que liberar con frecuencia a la producción ayuda mucho. Pero los desarrolladores y las partes interesadas en el proyecto no quieren exponer a sus usuarios características a medio desarrollar. Entonces, ¿qué ocurre en este caso? Una técnica útil para tratar este problema es construir el backend, integrarlo, pero no construir la interfaz de usuario. La característica puede ser integrada y probada, pero la interfaz de usuario se mantiene con la ayuda de un keystone (más información se puede encontrar en el blog de Martin Fowler), y se añade sólo cuando la característica se completa, mostrándola a los usuarios.

Los equipos de desarrollo de software utilizan mucho las feature flags porque aportan mucho valor. Los ingenieros pueden integrar sus cambios con mayor frecuencia. Las feature flags, por ejemplo la herramienta Koople, desbloquea capacidades como la canary release, lo que permite a los equipos lanzar features de forma segura.

En cuanto a la keystone flag, es un patrón que ayuda a reducir el número de puntos de decisión de la bandera para una característica moviendo esas decisiones a los límites del sistema.

Keystone Interface

La idea principal detrás de la interfaz keystone es que se evitan las ramas de características de larga duración mediante la implementación de una característica de una manera back-to-front, exponiéndola en la interfaz de usuario como el paso final. Esto permite a los ingenieros fusionar continuamente su trabajo en una rama de integración compartida sin que ese trabajo a medio terminar quede expuesto a ningún usuario. Una vez que la función está totalmente implementada, el desarrollador de software añade la interfaz -la keystone- que muestra la función a los usuarios.

  Buscando el mejor proceso de selección posible

Keystone Flag

Veamos cómo se puede utilizar la interfaz keystone en las plataformas de eventos en las que se necesitan códigos de descuento. El descuento es un concepto sencillo para un consumidor, pero requiere mucho trabajo entre bastidores. Los desarrolladores de software tienen que crear interfaces de usuario internas para crear y configurar códigos de descuento, enseñar a los sistemas de pago cómo aplicar los descuentos, mostrar los descuentos en los pedidos, etc. Esa interfaz de usuario «Añadir un código de descuento» es la interfaz clave. En lugar de dejar la interfaz clave sin implementar, los desarrolladores de software pueden implementarla pero ocultarla detrás de una bandera de característica, con la bandera desactivada por defecto mientras la característica está todavía en desarrollo. Esto es un Keystone Flag – una bandera de característica que protege una interfaz keystone.

Las Keystone flags garantizan que la función a medio terminar no esté expuesta a nuestros usuarios, pero los usuarios internos pueden acceder a ella con fines de validación: pruebas, exhibición, etc. Los desarrolladores de software pueden incluso realizar estas pruebas en producción si lo desean.

Una keystone flag abre otras oportunidades más allá de las pruebas. Las keystone flags también hacen que el lanzamiento de una característica sea más seguro en general. Por ejemplo, imagina un escenario en el que la funcionalidad del código de descuento está implementada y probada, por lo que se ha lanzado, activando la característica para todos los usuarios, pero entonces los desarrolladores descubren un error. Resulta que hay un problema para evitar que el mismo código de descuento se reutilice varias veces. Por suerte, la interfaz de usuario para introducir el código de descuento sigue estando protegida por una bandera de función. Los desarrolladores pueden desactivar rápidamente la interfaz de usuario, evitando una pérdida masiva de ingresos. Si los desarrolladores no hubieran utilizado un indicador, tendrían que realizar una reversión de emergencia, con todos los riesgos que ello conlleva. Cualquier funcionalidad de código de descuento más allá del sistema no necesita ser gestionada directamente por un indicador: podemos tenerla latente en producción, con la seguridad de que no se ejercitará hasta que estemos preparados para exponerla a través de la interfaz keystone.

  Equipos de software dedicados vs equipos ampliados

Esto es lo que hace que el uso de la keystone flag sea una práctica tan valiosa: ofrece todas las ventajas de seguridad de la señalización de características, al tiempo que minimiza la suciedad que esas mismas señales de características pueden añadir a su código. 

Si necesitas ayuda con las feature flags o con el desarrollo de software en general, háznoslo saber. Somos expertos en este campo. 

Author

  • Ekaterina Novoseltseva

    Ekaterina Novoseltseva is an experienced CMO and Board Director. Professor in prestigious Business Schools in Barcelona. Teaching about digital business design. Right now Ekaterina is a CMO at Apiumhub - software development hub based in Barcelona and organiser of Global Software Architecture Summit. Ekaterina is proud of having done software projects for companies like Tous, Inditex, Mango, Etnia, Adidas and many others. Ekaterina was taking active part in the Apiumhub office opening in Paseo de Gracia and in helping companies like Bitpanda open their tech hubs in Barcelona.

    Ver todas las entradas

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Suscríbete a nuestro boletín de noticias

Recibe actualizaciones de los últimos descubrimientos tecnológicos

¿Tienes un proyecto desafiante?

Podemos trabajar juntos

apiumhub software development projects barcelona
Secured By miniOrange