Chaque opération est différente, et aucune ne reste figée. Les développeurs d'applications et les ingénieurs des procédés, qui sont ceux qui comprennent le mieux le métier, sont également ceux qui subissent la plus forte pression pour s'adapter à son évolution. Ils doivent mettre à jour la même règle de validation dans une douzaine d'applications, traquer chaque instance d'un flux d'ordres de travail lorsqu'un détail change, ou attendre que le service informatique standardise une procédure que l'équipe sait déjà mettre en œuvre.

Aujourd'hui, « Functions », la fonctionnalité de logique de déclenchement réutilisable d'Tulip, sort de la phase d'accès anticipé et est désormais activée par défaut pour chaque espace de travail de tous les clients hebdomadaires, dans le cadre de la version r380.

https://tulip.widen.net/content/scomlhdyyd

Écrivez-le une fois. Utilisez-le partout.

Les fonctions permettent aux développeurs d'applications de définir une logique de déclenchement une seule fois, à l'aide du même éditeur visuel, des boucles natives et des conditions complexes qu'ils connaissent déjà grâce aux automatisations, puis de l'appeler depuis autant d'Apps s ou de déclencheurs que l'opération l'exige. Mettez à jour la fonction, et chaque application qui y fait référence reprendra la modification dès sa prochaine publication. Plus besoin de rechercher et de synchroniser manuellement une douzaine de copies de la même logique.

C'est ainsi que le développement devrait fonctionner : les personnes les plus proches du processus, les responsables qualité, les ingénieurs procédés et les centres d'excellence mettent directement en place des solutions réutilisables et conformes aux règles, sans avoir à attendre qu'un fournisseur ou une équipe de développement centrale propage un changement partout où cela s'avère nécessaire.

Réutiliser sans perdre le contrôle

La logique réutilisable n'est utile que si vous pouvez lui faire confiance ; c'est pourquoi les fonctions ont été conçues pour être gérées dès le premier jour. Lorsque vous publiez une application, celle-ci verrouille la version de chaque fonction qu'elle utilise. Ainsi, si la logique de cette fonction venait à changer par la suite, les « Apps » déjà en cours d'exécution en production continuent de fonctionner exactement comme avant. Avant de modifier une fonction, la section « Où elle est utilisée » vous indique quelles « Apps » s'appuient actuellement sur celle-ci, ce qui vous permet de connaître l'impact de votre modification avant de la mettre en œuvre, plutôt que de le découvrir après coup.

Et pour les Centres d'excellence, cette fiabilité constitue un véritable atout : plutôt que de laisser chaque « App Builder » recréer manuellement la même logique sensible, un Centre d'excellence peut développer, vérifier et valider une fonction une seule fois, puis permettre au reste de l'équipe de s'appuyer dessus en toute confiance.

C'est ce même principe qui sous-tend la plateforme Tulip : la rapidité ne doit pas nécessairement se faire au détriment du contrôle.

Quelles sont les nouveautés de la mise à disposition générale ?

La fonctionnalité « Functions » est entre les mains des premiers utilisateurs depuis plusieurs mois. Aujourd’hui, elle est activée par défaut pour tous les espaces de travail, ainsi que quelques fonctionnalités demandées par ces premiers utilisateurs :

  • Importation/exportation: les fonctions sont ainsi transférées avec votre Apps d'une instance à l'autre et d'un espace de travail à l'autre, les références aux machines et aux utilisateurs étant remappées à destination, ce qui évite que des éléments ne pointent discrètement vers un emplacement erroné.
  • Renommez, dupliquez et archivez des fonctions directement depuis la page de liste des fonctions.

Quelles équipes l'utilisent pour développer leurs projets ?

Tout cela n'a rien de théorique. Certains des clients d'Tulip dont les processus sont les plus complexes utilisent Functions depuis la phase d'accès anticipé, et les modèles qu'ils ont mis en place en disent plus long sur l'utilité de Functions que n'importe quelle liste de fonctionnalités.

Un éditeur de solutions d’automatisation mobile a conçu deux de ses fonctions les plus utilisées autour de la création d’unités : l’extraction d’une unité en cours de traitement Ordre de travail ou la sélection de la prochaine unité disponible dans son ERP , ainsi que la finalisation de l’unité Ordre de travail . Ces deux fonctions sont exécutées quotidiennement à grande échelle sur environ 300 applications. Pour ses ingénieurs des procédés, l’intérêt ne réside pas seulement dans la réduction du nombre de déclencheurs redondants, mais aussi dans la lisibilité : au lieu d’un déluge de logique « si/alors », ils peuvent consulter une étape intitulée « créer une unité » et comprendre exactement ce qui se passe, sans avoir besoin de voir ce qui se cache derrière.

Pour un autre fabricant de robots, les « Functions » sont devenues la pierre angulaire d’une transition vers une architecture d’applications de type « hub-and-spoke ». Un petit ensemble de « Functions » gérées de manière centralisée prend en charge les opérations standard, tandis que les développeurs amateurs créent les applications spécifiques autour de celles-ci. Les écritures dans les tables, en particulier, sont, par conception, traitées exclusivement par des « Functions » :

« Si vous créez un enregistrement dans une table ou si vous le modifiez de manière significative, je passe systématiquement cette opération par une fonction. Cela me permet de définir des règles précises pour mes développeurs amateurs. Je sais ainsi que si quelqu’un crée une unité, il fournira exactement les mêmes informations, de la même manière. Personne ne va en faire un mauvais usage et causer un dysfonctionnement que je devrais ensuite diagnostiquer. »
— un ingénieur solutions, à propos de l’utilisation des fonctions par son équipe

Innovafeed, qui exploite un processus hautement automatisé pour produire des protéines issues d’insectes, utilise les « Functions » afin de garantir la cohérence de la logique entre les différentes versions d’une même application. Une seule « Function » définit désormais la logique d’attribution des conteneurs et de génération des documents d’expédition ; elle est appelée de la même manière aussi bien depuis l’application de bureau complète utilisée par les planificateurs que depuis la version mobile allégée que les opérateurs utilisent sur le terrain. Cette fonction remplace ce qui constituait auparavant trois copies distinctes de la même logique, réparties entre différents boutons. L’équipe a également utilisé les « Functions » pour remplacer une solution de contournement basée sur des boucles dont la maintenance était devenue trop lourde, en regroupant la logique répétitive au sein d’un composant unique réutilisable. Ces modifications se sont avérées plus rapides à exécuter, plus fiables et bien plus faciles à maintenir.

Commencer

Le mieux est de commencer par les modèles dont vous disposez déjà. Recherchez les logiques que votre équipe a déjà copiées-collées à plusieurs reprises : une règle de validation répétée à chaque étape d’analyse, une séquence de mise à jour des ordres de travail recréée dans chaque application, la même gestion des erreurs appliquée à chaque appel de connecteur. Cette répétition est généralement le signe le plus évident qu’une fonction sera immédiatement rentable, tant en termes de gain de temps aujourd’hui qu’en termes de réduction des risques la prochaine fois que cette logique devra être modifiée.

Transformez numériquement vos opérations avec Tulip

Découvrez comment les systèmes d'applications favorisent des opérations agiles et connectées

Illustration d'un jour dans la vie d'un CTA