ALM - Industrialisation des développements CRM - Activités de développement et outils

Donc pour récapituler, nous avons vu comment organiser un projet de développement en terme d’équipe et de tâche, comment architecturer la plateforme et les développements, mais pour aller encore plus loin il faut identifier les tâches récurrentes des développeurs et fournir l’outillage nécessaire pour maximiser les opérations.

Quelles sont les types activités de développement CRM ?

Nous avons en partie aborder le sujet dans l’article Architecture technique, les types d’activités sont les suivants :

  1. Personnalisations
    1. Personnalisation des métadonnées (ex : Création d’entités, modification de champ, …)
    2. Personnalisation des écrans (ex : Modification de formulaire, création de tableau de bord, ajout de webresources …)
    3. Personnalisation des processus ( ex : Création de workflow, création de dialogue, personnalisation de processus d’entreprise …)
  2. Développements
    1. Développement de WebResources
    2. Développement de Plugins
    3. Développement de Workflows
    4. Développement de Batchs
  3. Tests
    1. Tests fonctionnels
    2. Tests de performances
    3. Tests unitaires

Comment optimiser ces activités ?

Personnalisations

Personnaliser CRM est un processus globalement assez optimisé, néanmoins dès qu’il s’agit d’appliquer des modifications de manière massive l’interface se trouve alors trop limitée.

Par exemple :

  • Appliquer un paramétrage sur plusieurs attributs,
  • Appliquer les mêmes paramètres de colonne sur plusieurs vues,
  • Ajouter des privilèges sur plusieurs rôles de sécurité,

Un grand nombre de ces actions est pris en charge dans l’outil XrmToolbox réalisé par Tanguy Touzard et ouvert au contributions de la communauté. A ce jour, c’est un outil incontournable pour accélérer la personnalisation de CRM.

Dans tous les cas, si aucun outil ne propose ce que vous souhaitez faire, vous pouvez tout à fait le réaliser en vous appuyant sur le SDK CRM, en effet, la majorité des actions réalisées via l’interface CRM sont faisables via code.

Développements

Développer sur CRM nécessite de réaliser de nombreuses actions qui peuvent être répétitives et potentiellement optimisables.  

Prenons l’exemple d’un développeur, qui doit traiter une règle de gestion complexe dans un plugin, le principe est le suivant :

  1. Développement du plugin dans Visual Studio
  2. Compilation dans Visual Studio
  3. Mise à jour de l’assembly dans CRM avec le Registration Tool
  4. Tests dans CRM

Même si le développeur dispose d’une grande expérience, il s’y prendra à plusieurs reprises pour parvenir au résultat espéré et l’étape 3 est très consommatrice de temps car elle implique plusieurs actions manuelles qui peuvent être industrialisées.
En effet, une fois l’assembly générée par Visual Studio, il est très simple de la “pousser” dans CRM en utilisant le SDK et en minimisant les interactions manuelles.

Ce type d’optimisation présente un gain de quelques secondes mais si l’on considère le nombre d’occurrence journalière multiplié par le nombre de développeur et de plugin et en intégrant les erreurs humaines potentielles, cela peut représenter un gain avantageux sur la marge du projet.

C’est la même problématique pour les déploiements de Workflow, de rapport et de webresource.
Comme pour les personnalisations, des outils existent pour réaliser ce type d’opération, l’outil XrmToolbox  propose un Webresource Manager très utile pour simplifier la gestion des webresources.

Il existe également des scripts Powershell très simple pour réaliser les opérations basiques :

A noter également, qu’il existe une technique très performante pour débugger les webresources sans les déployer, Thomas Canaple a décrit une procédure permettant de détourner l’appel HTTP de la webresource vers le fichier local grâce à l’autoResponder de Fiddler  : https://blog.canaple.fr/how-to-test-web-resources-without-publishing/ 

Tests

Concernant les tests, tout n’est pas automatisable mais il est possible de tirer partie des capacités des outils de test fournis par Visual Studio pour industrialiser au maximum ces opérations très couteuses en temps.

Concernant les tests fonctionnels, il est possible de mettre en œuvre des Coded UI Tests qui permettront de dérouler des scénarios préétablis de manière automatisée. En revanche, concevoir des Coded UI Tests est une tâche couteuse et complexe, cela nécessite donc d’établir au préalable la liste des scénarios critiques à vérifier.

En appliquant les recommandations d’architecture décrite dans l’article Solution de développement CRM, vous serez alors en capacité de réaliser des tests unitaires qui pourront être automatisés dans le cadre de la build TFS. Cela permet de garantir un minimum de qualité sur les développements et prévenir des régressions potentielles.

Enfin Visual Studio propose l’outillage nécessaire pour réaliser des tests de performance, la composition des tests est très simple grâce à un enregistreur d’action intégré au navigateur, permettant ainsi de collecter le scénario cible. Ensuite l’interface propose un paramétrage poussé permettant de définir les conditions précises de la montée en charge (nombre d’utilisateur, palier, durée, scénarios à réaliser, simulation de la bande passante, simulation du navigateur …). Visual Studio permet également de recueillir les métriques de performances lors du tests et de collecter des indicateurs de performances sur les machines concernées. Au final, un rapport est produit, donnant tous les détails du test pour analyse, fournissant ainsi un gain de temps précieux.

 

Ainsi s’achève cette série sur l’industrialisation des développements CRM, nous espérons avoir apporté toutes les réponses que vous attendiez et nous nous tenons disponibles ainsi que nos partenaires pour vous accompagner sur le sujet.

 

Ressources :

 

Les articles de la série “ALM - Industrialisation des développements CRM” :

  1. Définition de l'équipe projet
    Quels sont les différents rôles des membres d'une équipe de développements ?
  2. Team Foundation Server (TFS)
    Qu'est-ce que TFS ? Comment cet outil peut-il nous aider ?
  3. Organisation des développements
    Entre les spécifications et la solution finale, comment distribuer efficacement les taches et suivre l'avancement ?
  4. Architecture technique
    Comment définir une infrastructure de développement "type" appropriée et suffisamment flexible pour supporter les différentes activités des développeurs ?
  5. Solution de développement CRM
    Qu'impliquent ces développements et comment les structurer ?
  6. Activités de développement et outils
    Que font les développeurs ? Comment minimiser leur effort ?

Les équipes Microsoft Services se tiennent prêtes à vous accompagner tout au long de la mise en place de votre outil CRM. Pour en savoir plus, n'hésitez pas à nous contacter, via notre formulaire de contact ou à l'adresse : servicesfr@microsoft.com .