9yahds

Solution logicielle de reprise après sinistre pour entreprises

transformée en SaaS et développée par Redwerk
×
Où souhaitez-vous que nous envoyions notre étude de cas 9yahds ?
Veuillez saisir votre adresse courriel professionnelle n'est pas un courriel professionnel

9yahds est un fournisseur de logiciels d'automatisation des processus en tant que service, qui permet de créer, d'utiliser et de suivre les processus métier dans le cloud.

Tous les clients

Base de code héritée

9yahds nous a contactés avec un produit Python déjà développé pour une utilisation en instance unique et un besoin métier majeur de le transformer en une solution SaaS multilocataire à grande échelle. Nous avons travaillé sur une base par projet avec un contrôle total du budget par le client.

En savoir plus

Automatisation des processus métier

Reprise après sinistre, suivi du temps et génération de factures avec des flux de travail très spécifiques à l'entreprise. Nous pouvons comprendre votre activité et l'automatiser pour vous.

En savoir plus

Défi

Redwerk, fort de son expérience dans la fourniture de services de développement Python, a été mis au défi de modifier les modules existants du système et d’ajouter de nouvelles fonctionnalités :

Transformer une application mono-instance en SaaS

L’application initiale est un produit mono-instance où tous les utilisateurs travaillent avec un seul ensemble de données. Nous avons dû la transformer en SaaS en introduisant la multi-location : le contexte des données est basculé en fonction de l’utilisateur connecté. Nous avons dû modifier des groupes d’utilisateurs appelés entreprises. Chaque entreprise doit avoir accès à son propre ensemble de données, y compris les processus, les problèmes, les épisodes, etc., mais surtout, les utilisateurs. La section utilisateurs devait contenir uniquement les utilisateurs de l’entreprise réelle, à laquelle l’utilisateur actuellement connecté appartient. La gestion des entreprises devait être effectuée à l’aide du nouvel élément de navigation appelé « Entreprises », où il devait être possible de créer et supprimer des entreprises, ainsi que de gérer les utilisateurs qui y sont inscrits.

Interface d’administration

Nous avons également dû créer une interface pour le superutilisateur avec une fonctionnalité CRUD pour les nouveaux utilisateurs et autres objets. Seul l’utilisateur système spécial et les utilisateurs disposant de certains droits, les Superutilisateurs, pouvaient s’y connecter. L’interface d’administration devait se composer de deux éléments : les Entreprises et les Superutilisateurs. Les Entreprises devaient inclure une fonctionnalité CRUD concernant les entreprises et la section Superutilisateurs devait permettre de gérer les Superutilisateurs de l’application.

Modélisation d’organisation

Nous avons dû réorganiser fondamentalement un composant fonctionnel existant appelé Modélisation d’organisation. Une organisation est un regroupement logique d’équipes et de fonctions soutenues par des ressources. La modélisation d’organisation permet de gérer les organisations.

Étant donné que de nouvelles entités logiques ont été ajoutées à l’application, nous avons dû en créer une représentation visuelle. Tout cela s’est reflété dans le module Modélisation d’organisation. Les dialogues habituels utilisés pour créer des éléments devaient être remplacés par la technologie glisser-déposer. C’est beaucoup plus pratique pour créer des éléments complexes du système avec une structure hiérarchique (par exemple, les utilisateurs qui appartiennent à l’entreprise, etc.). En conséquence, le module devait contenir une représentation hiérarchique des éléments (arbre) avec la possibilité de glisser-déposer et un formulaire qui permettrait d’afficher et de modifier les propriétés de l’élément sélectionné dans l’arbre.

Espace de travail

Un processus est une collection de tâches. La page « Modélisateur de processus » permet de gérer les processus. L’espace de travail devait changer la manière dont l’information était présentée dans le produit. L’ajout de l’« espace de travail » devait avoir lieu sur la page « Modélisateur de processus ». Nous avons dû repenser le flux existant de création, d’exécution et de gestion des processus. Nous avons dû ajouter la liste des processus existants à la page Modélisation de processus, séparés par catégories :

  • Processus d’équipe : Processus appartenant à l’équipe dont l’utilisateur actuel est membre.
  • Processus d’entreprise : Processus appartenant aux équipes de l’entreprise dont l’utilisateur connecté est membre.
  • Processus publics : Liste des processus qui ont été rendus publics, peu importe par qui et de quelle entreprise.

Les processus d’équipe peuvent être modifiés directement. De plus, ce processus peut être mis « en ligne », puis il sera disponible pour tous les membres de l’entreprise. Les processus d’entreprise et publics ne peuvent être copiés que dans les processus d’équipe, puis modifiés.

La modification des processus a dû être changée : le glisser-déposer a dû être ajouté. Cela améliore considérablement l’utilisabilité de la modification des processus. Le processus est représenté comme un arbre de tâches, et il est très pratique de faire glisser et déposer la tâche au bon endroit dans l’arbre. Il est également possible de créer une tâche en faisant glisser l’icône de la nouvelle tâche vers un emplacement souhaité dans l’arbre. Pour chaque tâche sélectionnée, il y a une vue de tâche, où vous pouvez modifier toutes les propriétés de la tâche. Outre l’arbre et la vue de tâche, la hiérarchie des tâches et leurs propriétés peuvent être modifiées dans la vue tableau.

Séquençage

Parfois, un groupe de tâches doit être exécuté simultanément et sans ordre particulier, le plus important étant qu’elles soient exécutées avant que d’autres tâches ne soient déléguées. La séquence dans laquelle elles sont exécutées n’a pas d’importance, mais il est important qu’elles soient toutes terminées avant la tâche suivante. L’application initiale permettait aux utilisateurs de simplement attribuer le même identifiant de séquence à ces tâches.

Nous avons été invités à permettre aux utilisateurs de sélectionner plusieurs tâches, de faire un clic droit dessus et de choisir « simultané » pour que le logiciel modifie les identifiants de séquence de toutes ces tâches pour qu’ils soient identiques.

L’intervalle de l’identifiant de séquence dans l’application initiale était de +1. Nous avons été mis au défi de le changer à +10 afin d’ajouter de nouvelles tâches à la séquence sans avoir à resequencer les tâches suivantes.

Processus multiples

Une fois les entités, processus et tâches nécessaires créés, les utilisateurs peuvent commencer à utiliser 9yahds pour tester et exécuter les processus créés dans le système. Dans 9yahds, l’exécution des processus commence généralement par la signalisation de problèmes par les utilisateurs ou les applications intégrées (par exemple, HelpDesk, systèmes de ticketing, etc.). Une fois qu’un problème est saisi dans 9yahds, les équipes évaluent chaque problème pour en déterminer la gravité. Si nécessaire, les équipes créent ensuite des épisodes (c’est-à-dire des événements d’interruption) avec les problèmes associés. Les épisodes sont attribués aux équipes pour résolution, l’équipe assignée exécutant les processus requis pour traiter et résoudre l’épisode avec succès.

Lorsqu’une équipe est invitée à rejoindre un épisode, elle ne peut actuellement choisir qu’un seul processus pour commencer. L’équipe de développement logiciel de Redwerk outsourcing a dû modifier la logique de manière à ce que les chefs d’équipe puissent sélectionner plusieurs processus pour démarrer.

Liaison de documents

Le système permet aux entreprises de stocker des documents dans la base de connaissances. Lorsque les utilisateurs créaient des tâches, ils devaient saisir manuellement le lien hypertexte vers le document. Nous avons dû ajouter un bouton « lier un document » lors de la création de tâches, qui permettrait aux utilisateurs de choisir un ou plusieurs documents à lier et créerait le lien hypertexte dans la tâche pour eux.

Rafraîchissement de la console de travail
La console de travail est l’endroit où toutes les notifications des tâches qui doivent encore être terminées sont présentes. Nous avons été mis au défi de mettre en œuvre le comportement pour que les tâches apparaissent automatiquement dans la console de travail sans avoir à appuyer sur le bouton de rafraîchissement.

Connexion

Nous devions également développer la page de connexion et implémenter la logique d’inscription. Les utilisateurs devraient y accéder via la page de connexion actuelle en appuyant sur « S’inscrire ».

L’application mise à jour devait être déployée sur le serveur en production.

Solution

L’équipe de développement de Redwerk a relevé ce défi en modifiant les modules existants du système et en ajoutant de nouvelles fonctionnalités.

Transformer une application à instance unique en SaaS

L’une des façons d’implémenter le multi-tenant a été de créer une instance de base de données séparée pour chaque utilisateur. Dans ce cas, les instances auraient dû être créées et prises en charge dynamiquement. Mais nous avons décidé de conserver une seule instance de base de données, ce qui a nécessité des modifications de code importantes. L’utilisation de plusieurs instances aurait rendu l’ajout de nouvelles fonctionnalités plus compliqué en raison d’une structure de base de données plus complexe.

La cohérence des données pour l’utilisateur est assurée au niveau du schéma de données et au niveau du code.

Nous avons utilisé les méthodes et événements standard d’extjs pour implémenter le glisser-déposer (Drag&Drop), mais pour les événements, nous avons créé nos propres gestionnaires.

Nous avons ajouté une nouvelle entité « Société » à l’application, en la connectant aux entités existantes. De nouveaux rôles (administrateur, administrateur de société et utilisateur) ont également été ajoutés et ils ont étendu la structure de rôles existante de l’application.

Interface d’administration

L’interface d’administration a été implémentée de manière très similaire à l’interface utilisateur générale. Les menus et les onglets se trouvent aux mêmes endroits. Par conséquent, l’utilisateur familiarisé avec l’interface générale peut facilement gérer la partie administration. L’interface d’administration a dû être créée en raison du fait que l’application a été modifiée pour être un SaaS, et qu’il est nécessaire d’administrer toutes les instances.

Modélisation d’organisation
Nous avons étendu l’unité organisationnelle avec les entités et relations manquantes et ajouté une représentation graphique à l’arbre. Le glisser-déposer a été implémenté. Les bogues existants dans la Modélisation d’organisation ont également été corrigés.

Espace de travail

Le glisser-déposer a également dû être implémenté dans l’interface de modélisation de processus pour créer et réorganiser les tâches.

Nous avons résolu avec succès le problème de la sauvegarde des données mixtes de la vue tableau. La sauvegarde automatique, qui était indirectement requise, a été ajoutée au projet. Cela s’est également avéré utile dans la Modélisation d’organisation.

Séquençage

L’ajout d’un bouton « Simultané » n’était pas la meilleure solution. De plus, sa présence pourrait confondre les utilisateurs, car différents niveaux de tâches ne peuvent pas être commandés pour être exécutés simultanément. Par conséquent, nous avons proposé une autre solution : permettre de sélectionner certaines tâches et de leur attribuer l’identifiant de séquence souhaité. Ainsi, il est maintenant possible de créer deux groupes de tâches simultanées, même au même niveau de l’arbre. On peut également toujours modifier l’identifiant de séquence dans la vue tableau du processus.

Processus multiples

Nous avons ajouté la possibilité de sélectionner plusieurs processus en utilisant Shift / Ctrl. Après avoir sélectionné plusieurs processus, les tâches de tous ces processus peuvent être exécutées.

Liaison de documents
Nous avons ajouté avec succès l’onglet documents à l’interface. Il s’intègre harmonieusement dans la conception de la modélisation de processus. Les liens vers les documents sont maintenant visibles lors de l’exécution d’une tâche et arrivent dans les notifications par e-mail.

Rafraîchissement de la console de travail

Nous avons supprimé la nécessité de mises à jour manuelles, les éléments assignés et les tâches actives affichent désormais toujours les dernières informations.

Connexion

Nous avons ajouté la logique d’inscription et la page d’inscription elle-même. La page est implémentée dans le style d’entreprise de 9yahds.

Résultat

Le besoin du client d’une application mise à jour avec des fonctionnalités étendues a été satisfait et l’application mise à jour a été déployée sur le serveur de production. Nos ingénieurs ont également apporté des idées à la conception et à l’architecture des produits. Certains des bugs présents dans l’application initiale ont été corrigés lors du développement.

Résultat

Vous avez besoin d'une équipe avec laquelle il est agréable de travailler ?

Contactez-nous

Technologies

Python
Django
PostgreSQLPostgreSQL
Linux
4développeurs ont travaillé sur le projet
2Ingénieurs QA
8projets distincts
4,000+heures-homme
Media
Media
Media
Media
Media
Media
Media
Media
Media
Media
Media
Media

Impressionné ?

Engagez-nous

Autres études de cas

URS Workflow Automation

URS Workflow Automation

États-Unis

Transformation d'une application Windows héritée en un SaaS d'automatisation des flux de travail avec 5 nouvelles fonctionnalités générant des revenus

Advanced Consultancy ERP

Advanced Consultancy ERP

Portugal

Gestion automatisée des services avec un ERP personnalisé doté d'une architecture multicouche

B-Orange ERP

B-Orange ERP

Pays-Bas

A aidé un fournisseur néerlandais de solutions ERP à étendre les fonctionnalités de son logiciel de signature