Cada operación es diferente y ninguna de ellas se queda estancada. Los desarrolladores de aplicaciones y los ingenieros de procesos, que son quienes mejor conocen el trabajo, son también quienes están sometidos a una mayor presión para mantenerse al día. Actualizan la misma regla de validación en una docena de aplicaciones, localizan cada copia de un flujo de órdenes de trabajo cuando cambia un detalle o esperan a que el departamento de TI estandarice algo que el equipo ya sabe cómo hacer.
A partir de hoy, «Functions», la función de lógica de activación reutilizable de Tulip, sale de la fase de acceso anticipado y pasa a estar habilitada de forma predeterminada en todos los espacios de trabajo para todos los clientes con suscripción semanal, como parte de la versión r380.
Escríbalo una vez. Úselo en todas partes.
Las funciones permiten a los creadores de aplicaciones definir una lógica de activación una sola vez, utilizando el mismo editor visual, los bucles nativos y las condiciones complejas con las que ya están familiarizados gracias a las automatizaciones, y llamarla desde tantos « Apps » o activadores como requiera la operación. Al actualizar la función, todas las aplicaciones que hagan referencia a ella incorporarán el cambio la próxima vez que se publiquen. Ya no es necesario buscar y sincronizar manualmente una docena de copias de la misma lógica.
Así es como debería funcionar el desarrollo: las personas más cercanas al proceso —los responsables de calidad, los ingenieros de procesos y los Centros de Excelencia— crean directamente soluciones reguladas y reutilizables, sin tener que esperar a que un proveedor o un equipo de desarrollo central propague un cambio a todos los ámbitos en los que sea necesario.
Reutilizar sin perder el control
La lógica reutilizable solo resulta útil si puede confiar en ella, por lo que las funciones se diseñaron para estar reguladas desde el primer día. Cuando publica una aplicación, esta fija la versión de cada función que utiliza, de modo que, si la lógica de esa función cambia posteriormente, las « Apps » que ya se están ejecutando en producción seguirán funcionando exactamente igual que antes. Antes de editar una función, la sección «Where Used» le muestra qué « Apps » se están compilando actualmente a partir de ella, para que conozca el impacto antes de realizar un cambio, en lugar de descubrirlo después.
Y para los Centros de Excelencia, esa fiabilidad se convierte en una ventaja real: en lugar de que cada App Builder tenga que recrear manualmente la misma lógica sensible, un COE puede desarrollar, revisar y aprobar una función una sola vez, para que luego el resto del equipo pueda trabajar sobre ella con total confianza.
Este es el mismo principio que caracteriza a Tulip como plataforma: la rapidez no tiene por qué ir en detrimento del control.
Novedades en la disponibilidad general
Functions lleva meses en manos de los primeros usuarios. A partir de hoy, estará activado de forma predeterminada en todos los espacios de trabajo, junto con algunas funciones que solicitaron los primeros usuarios:
- Importación/Exportación: de este modo, las funciones se transfieren junto con su Apps entre instancias y espacios de trabajo, y las referencias a máquinas y usuarios se reasignan en el otro extremo, para que nada apunte silenciosamente a una ubicación incorrecta.
- Reejme, duplique y archive funciones directamente desde la página de la lista de funciones.
¿Qué equipos lo están utilizando?
Nada de esto es teórico. Algunos de los clientes de Tulip que más recursos dedican a los procesos llevan desarrollando aplicaciones en Functions desde la fase de acceso anticipado, y los patrones que han adoptado dicen más sobre la finalidad de Functions que cualquier lista de características.
Un fabricante de soluciones de automatización móvil ha desarrollado dos de sus funciones más utilizadas en torno a la creación de unidades —ya sea recuperando una orden de trabajo en curso o seleccionando la siguiente orden pendiente de su « ERP »— y a la finalización de órdenes de trabajo; ambas se ejecutan de forma intensiva cada día en unas 300 aplicaciones. Para sus ingenieros de procesos, el valor no radica únicamente en la reducción de los desencadenantes duplicados, sino en la legibilidad: en lugar de enfrentarse a un sinfín de lógicas «si/entonces», pueden fijarse en un paso denominado «crear unidad» y comprender exactamente lo que está ocurriendo, sin necesidad de ver lo que hay detrás.
Para otro fabricante de robots, las «Functions» se han convertido en la columna vertebral de una transición hacia una arquitectura de aplicaciones de tipo «hub-and-spoke». Un pequeño conjunto de «Functions», gestionadas de forma centralizada, se encarga de las operaciones estándar, mientras que los «desarrolladores ciudadanos» crean las aplicaciones específicas en torno a ellas. Las inscripciones en tablas, en concreto, se tratan por diseño como exclusivas de las «Functions»:
«Si está creando un registro en una tabla o modificándolo de forma significativa, siempre lo paso por una función. Esto me permite establecer normas claras para mis desarrolladores no profesionales. Sé que, si alguien crea una unidad, va a proporcionar exactamente la misma información, de exactamente la misma manera. Nadie va a hacer un uso indebido de ello y provocar un fallo que luego tenga que diagnosticar».
— un ingeniero de soluciones, sobre el uso de Functions por parte de su equipo
Innovafeed, que cuenta con un proceso altamente automatizado para producir proteínas a base de insectos, utiliza Functions para mantener la coherencia de la lógica en las diferentes versiones de la misma aplicación. Una única función define ahora la lógica para la asignación de contenedores y la generación de documentos de envío, y se invoca de forma idéntica tanto desde la aplicación de escritorio completa que utilizan sus planificadores como desde la versión móvil más ligera que llevan consigo sus operarios en la planta. Esta función sustituye a lo que antes eran tres copias independientes de la misma lógica repartidas entre distintos botones. El equipo también ha utilizado Functions para sustituir una solución alternativa basada en bucles cuyo mantenimiento se había vuelto complicado, consolidando la lógica repetitiva en un único componente reutilizable. Estos cambios han resultado más rápidos de ejecutar, más fiables y mucho más fáciles de mantener.
Primeros pasos
Lo mejor es empezar por los patrones con los que ya cuenta. Busque la lógica que su equipo ya haya copiado y pegado más de una vez: una regla de validación que se repita en cada paso del análisis, una secuencia de actualización de órdenes de trabajo que se recree en una aplicación tras otra, o el mismo tratamiento de errores que se aplica a cada llamada al conector. Esa repetición suele ser la señal más clara de dónde una función resultará útil de inmediato, tanto en el ahorro de tiempo que supone hoy como en la reducción del riesgo la próxima vez que sea necesario modificar esa lógica.
Transforme digitalmente sus operaciones con Tulip
Vea cómo los sistemas de aplicaciones permiten operaciones ágiles y conectadas.