Author: Leslie Audigane

  • Droits de diffusion : résolution du calcul des droits disponibles

    Droits de diffusion : résolution du calcul des droits disponibles

    Dans le cadre du développement d’une application de gestion de cession de droits pour un grand groupe d’édition, notre client nous a demandé d’ajouter un module de calcul de droits disponibles. Son objectif était de savoir rapidement quels droits de diffusion étaient disponibles à la vente et dans quelles conditions.

    À première vue, cela ne paraissait pas très compliqué : les droits acquis (qu’un ou plusieurs producteurs ont cédés à notre client) et donc disponibles à la vente, sont enregistrés dans les mandats, et les droits cédés aux diffuseurs sont enregistrés dans les contrats.
    Autrement dit les mandats représentent les entrées de stock et les contrats les sorties.

    Droits des mandats – droits des contrats = droits disponibles ! Voilà, il n’y a plus qu’à écrire un script et on pourra aller boire une bière 🍺. Oui, mais… ce n’est pas aussi simple qu’il y paraît…

    Le challenge

    Les droits enregistrés dans les mandats peuvent inclure plusieurs modes de diffusion. Chaque mode peut être acquis en exclusivité (c’est-à-dire que notre client est le seul à disposer de ce droit de vente), en non-exclusivité (auquel cas notre client ne pourra pas le vendre en exclusivité), ou en « Holdback » (qui correspond à une interdiction de vente soit totale, soit partielle, par exemple une interdiction de vendre le droit de diffusion du programme à un diffuseur donné). Chaque mode de diffusion acquis l’est pendant une période donnée, sur un ou plusieurs territoire(s) donné(s), les territoires pouvant eux-mêmes être une combinaison de régions ou de pays, et dans une ou plusieurs langues.

    Par exemple, les droits acquis de mandats peuvent être de la forme :

    Programmes : La soupe aux choux et L’aile ou la cuisse
    Modes : Pay TV (Option : Exclusivité) et VOD (Option : Non-exclusivité)
    Territoires : Pays de l’UE, Pays du Commonwealth (sans l’Inde ni le Bangladesh) et avec le Canada
    Langues : français, anglais, allemand, espagnol, italien
    Dates : du 01/01/2020 au 31/12/2023

    Le script devrait donc commencer par linéariser (créer des lignes ou enregistrements pour représenter toutes les combinaisons possibles) l’ensemble des droits acquis pour avoir une liste de disponibilités. Dans notre exemple la liste est la suivante :

    • La soupe aux choux en Pay TV en exclusivité, en France et en Français du 01/01/2020 au 31/12/2023
    • La soupe aux choux en Pay TV en exclusivité, en France et en Anglais du 01/01/2020 au 31/12/2023
    • etc

    On ne vous liste pas les 1660 lignes de cet exemple simple (2 programmes x 2 modes x 83 pays x 5 langues)

    À ce stade, cela pourrait rester raisonnable, même si nous doutions déjà de la capacité de FileMaker à gérer efficacement ce calcul pour des dizaines de mandats pouvant contenir des dizaines de programmes acquis avec chacun différentes d’options de territoires et langues sur des périodes différentes. De plus, notre client nous indique alors qu’il est possible de forcer des options sur les pays ou les langues : il est donc possible d’acquérir la diffusion d’un programme en Pay TV en exclusivité dans les Pays de l’UE et en allemand, mais pas en Allemagne (si cela est déjà détenu par un concurrent en non-exclusivité), donc on va forcer la non-exclusivité sur l’Allemagne uniquement. Vous suivez toujours ?

    Si on reprend l’exemple précédent :

    Programmes : La soupe aux choux et L’aile ou la cuisse
    Modes : Pay TV (Option : Exclusivité) et VOD (Option : Non-exclusivité)
    Territoires : Pays de l’UE (Forcer la non-exclusivité sur l’Allemagne), Pays du Commonwealth (sans l’Inde ni le Bangladesh) et avec le Canada
    Langues : français, anglais, allemand, espagnol, italien
    Lorsqu’on linéarise les droits acquis pour l’Allemagne, dans tous les cas, il faut forcer la Non-exclusivité. Cela n’aura pas d’impact sur le mode VOD mais changera l’option pour le mode Pay TV et ceci dans toutes les langues.

    Ce n’est pas terminé 🤯.

    Les options forcées peuvent l’être sur les régions (Pays de l’UE par exemple), un pays ou une langue, il a donc fallu définir des règles de priorité d’application des options pour chaque cas possible et notamment lorsque des options contradictoires sont définies dans une combinaison.

    Dans un catalogue d’environ 1000 programmes avec en moyenne 100 acquisitions et 500 cessions par an sur des périodes différentes couvrant plusieurs années, le nombre de lignes de droits acquis et cédés linéarisées possible dans une recherche est astronomique et notre perspective de boire une bière après la rédaction de ce script s’éloignait de plus en plus. 😕

    De plus, une fois l’ensemble des règles de linéarisation des droits acquis et cédés, nous avons dû déterminer les règles de soustraction (ce qui fut finalement la partie la plus simple). Les droits cédés sont soustraits de la liste des droits acquis pour obtenir les droits disponibles, avec quelques subtilités tout de même : un droit cédé en exclusivité n’est plus disponible à la vente, un droit cédé en non-exclusivité reste disponible à la vente en non-exclusivité, un droit en holdback total n’est pas disponible à la vente et un droit en holdback partiel est indiqué à l’utilisateur.

    La solution technique

    Finalement, après des heures de réflexions collectives avec notre client pour comprendre le fonctionnement des droits acquis et cédés, et la manière dont il souhaitait que les droits soient linéarisés et la disponibilité calculée, il devenait évident que FileMaker, avec sa mémoire sur disque, ne pourrait pas gérer ce calcul dans un temps raisonnable pour les utilisateurs. Il nous fallait trouver un outil travaillant en mémoire vive. Nous avons décidé de tirer parti de l’intégration de FileMaker avec Javascript, ce dernier étant bien plus efficace pour ce type de traitements 💡.

    Dans l’application de gestion des cessions de droits, FileMaker dispose des droits acquis et cédés, regroupés dans une table qui contient toutes les informations sur les options (type d’option, date de début de de fin d’application, lien vers les blocs de droits cédés ou acquis, lien vers le ou les programmes, pays, langues, modes…).

    Lorsque que l’utilisateur saisit une recherche, il doit au minimum rechercher les disponibilités à une date donnée et peut ajouter des critères de recherche sur un programme, un pays, une langue… FileMaker va chercher les droits acquis et cédés répondant aux critères de recherche. La liste des droits acquis et cédés trouvée est extraite par FileMaker Data API, le résultat est injecté dans le code d’un web viewer sous forme de json. Le scripts JS réalise tout le travail de linéarisation en appliquant les règles de priorité de chaque option ainsi que la soustraction. Il renvoie à FileMaker via FileMaker.PerformScriptWithOption le résultat  contenant la liste des droits disponibles. FileMaker transforme ensuite ce résultat en enregistrements dans la base de données et n’a plus qu’à présenter les disponibilités à l’utilisateur dans une table de droits disponibles.

    Les cas courants demandent seulement quelques secondes d’exécution. Les cas les plus complexes quelques dizaines de secondes. 💪

    Une fois les scripts FileMaker et JS rédigés, tous les nœuds au cerveau dénoués, une validation du fonctionnement de ce moteur de recherche de droits disponibles et la rédaction d’une documentation utilisateur, nous avons finalement bien mérité une bière 🍻 !

    Leslie Audigane & Karl Vossen

  • La méthode 5S : améliorer son organisation personnelle pour gagner en efficacité sans trop d’efforts

    La méthode 5S : améliorer son organisation personnelle pour gagner en efficacité sans trop d’efforts

    Êtes-vous capable de retrouver en moins de 10 secondes le rapport de la réunion de lancement du dernier projet dont vous vous êtes occupé ?

    Cherchez-vous souvent parmi toutes les icônes qui se trouvent sur le bureau ou dans la barre des tâches de votre ordinateur ?

    Avez-vous plusieurs applications qui font la même chose ?

    Si vous avez répondu oui à l’une de ces questions, vous apprendrez probablement des choses utiles dans cet article.

    Lorsque j’ai rejoint 1-more-thing, certains membres de notre équipe se plaignaient de ne pas parvenir à retrouver rapidement le bon document et se perdaient dans les méandres de leurs arborescences de dossiers. Leurs bureaux d’ordinateur étaient remplis d’applications utiles, mais utilisées occasionnellement. Un problème commun à presque tous était la liste des icônes des différentes versions de FileMaker, qui jusqu’à la version 19 étaient visuellement similaires ou identiques. Nous avons donc expérimenté ensemble l’application de méthodes que j’avais l’habitude d’employer en management de la qualité.

    Les méthodes d’organisation et de rationalisation du travail sont utilisées dans l’industrie depuis plus de 70 ans. Les Japonais ont été pionniers dans la conception et l’application de ces outils. Ils ont imaginé de nouveaux outils simples dont le but est d’améliorer l’efficacité du travail sans perdre en qualité. L’un de mes outils japonais préférés est la méthode 5S, facilement utilisable pour améliorer l’organisation d’un poste de travail informatique.

    Le 5S est une méthode qui vise à améliorer continuellement l’organisation d’un espace de travail.

    Elle a été imaginée pour permettre aux travailleurs de réduire au maximum l’encombrement de l’espace de travail, organiser les outils, prévenir le désordre et encourager les efforts pour maintenir une discipline de rangement. La méthode 5S tire son nom de la première lettre des 5 principes :

    1. Seiri, qui signifie « supprimer ce qui est inutile » ;
    2. Seiton, qui signifie « choisir une place pour chaque chose » ;
    3. Seiso, qui signifie « faire briller » ;
    4. Seiketsu, qui signifie « standardiser les règles » ;
    5. Shitsuke, qui signifie « vérifier les résultats et améliorer les règles » ;

    Cette méthode a montré qu’elle améliore les conditions de travail et le bien-être des travailleurs. Elle réduit également la consommation de temps et d’énergie pour retrouver chaque chose et diminue le risque d’erreur. Enfin, elle a permis d’augmenter la qualité de la production. En effet, on peut facilement imaginer qu’un atelier propre et ordonné est un meilleur endroit pour faire un travail correct qu’un endroit sale et désordonné. La création de certaines règles aide à maintenir l’ordre et permet aussi aux autres personnes de trouver facilement quelque chose. Il en découle donc une meilleure production, plus rapide, avec moins d’erreurs.

    Alors, comment l’appliquer à l’organisation de votre poste informatique ?

    Tout d’abord, passons au premier S : Seiri.

    Prévoyez un moment pour nettoyer vos bureaux d’ordinateur. L’objectif principal est de ne garder sur le bureau et la barre des tâches uniquement les outils dont vous avez besoin quotidiennement. Supprimez les fichiers et dossiers inutilisés et temporaires. Si vous avez l’habitude d’avoir des choses sur votre bureau (je veux dire le bureau physique), rangez tout ce dont vous n’avez pas besoin quotidiennement.

    Continuons avec le deuxième S : Seiton.

    Parmi les choses que vous avez retirées lors de l’étape de nettoyage, il y a forcément des éléments qui sont parfois utiles et qui doivent être facilement trouvés. Le but de cette étape est de créer une place pour chaque autre fichier, dossier et icône utile. Par exemple, vous pouvez conserver les icônes des programmes dans un dossier dédié de votre barre des tâches ou de votre bureau : un dossier unique pour tous les autres programmes. Pour vos icônes FileMaker, vous pouvez également créer un dossier dédié pour conserver toutes les versions les plus anciennes. Vous pouvez modifier les icônes pour les différencier facilement. Gardez simplement sur votre barre des tâches la version de FileMaker que vous utilisez quotidiennement. Pour classer tous les dossiers et fichiers, vous pouvez utiliser le dossier “document” de votre ordinateur.

    L’étape suivante est Seiso…

    il suffit d’enlever la poussière et la saleté de votre écran, de votre souris et de votre clavier pour passer à l’étape suivante. Vous pouvez aussi rendre votre bureau d’ordinateur agréable à regarder avec un joli fond d’écran !

    Seiketsu est la suite logique de Seiton et vous demande de créer vos propres règles d’organisation.

    Sur votre ordinateur, il s’agira de trouver une méthode pour organiser tous vos dossiers et fichiers. Par exemple, un dossier pour chaque projet, et dans chaque projet, un dossier pour les ordres du jour et compte-rendus de réunions, un autre dossier pour les documents techniques, un autre pour les spécifications et les modèles d’interface utilisateur… Trouvez vos propres règles, le plus important est que vous soyez à l’aise avec, et que vous puissiez trouver rapidement tout ce dont vous avez besoin.

    Enfin, Shistuke vous demande de faire une pause régulièrement et d’observer votre espace de travail :

    est-il toujours propre et organisé ? Avez-vous respecté vos règles ? Si la réponse est non, il faut se remémorer les règles et les réappliquer. Les règles peuvent être ajustées au fur et à mesure avec l’amélioration de votre organisation

    Avant

    Before Seiri

    Après

    After Shitsuke