20 janvier 2014

Article

Technologies de l'information

Quand le développement SharePoint devient nécessaire...

On nous a promis de bien belles choses avec la nouvelle mouture de Microsoft SharePoint.  Plus facile à utiliser, plus conviviale, plus facile à configurer, disponible partout, des mises à jour automatisées, mais surtout d’une simplicité étonnante afin d’en faire votre portail d’entreprise, votre « hub » de données, le point central de vos activités.  Il est tout à fait juste de dire que la configuration de la plateforme est de moins en moins complexe, et de plus en plus orientée vers l’utilisateur final.

Un accompagnement peut être inévitable

Si le besoin réel de l’entreprise est d’offrir des outils standard, des solutions métier à des besoins d’affaires complexes et de rendre virale l’utilisation de SharePoint, vous devrez vous faire accompagner par une équipe de développement.  Celle-ci aura comme mission d’automatiser certaines de ces tâches et ainsi offrir des solutions complètes favorisant le mode « libre-service ».

Pourquoi ?

Le succès d’une implantation SharePoint réside dans une utilisation soutenue et dans la facilité d’utilisation. Il est crucial d’offrir des outils à nos utilisateurs qui leur permettent de faciliter leur travail et la collaboration au sein de l’entreprise. Une gouvernance technologique établie et claire permettra de limiter les barrières à l’entrée et sera un vecteur d’adoption. Le support technologique permettant la mise en place d’une telle gouvernance devient la clé du succès. Le Saint Graal.

Les concepts à développer lors de l’implantation SharePoint

Conceptuellement parlant, on peut penser à quelques exemples permettant de répondre aux critères mis en place par votre gouvernance :

  • Création de sites de collaboration préalablement configurés
  • Intégration de solutions métier
  • Respect des normes de sécurité
  • Déclenchement de processus automatisés
  • Déploiement de fonctionnalités

Les composantes technologiques à connaître

Une fois la sélection des concepts effectuée, les éléments à développer deviennent concrets et la connaissance des composantes technologiques est essentielle pour développer la bonne chose pour le bon concept. Les voici :

Création de sites de collaboration préalablement configurés

- Intégration de solutions métier

Respect des normes de sécurité

- Déclenchement de processus automatisés

- Déploiement de fonctionnalités

Ces différents aspects de la mise en place d’une solution résidant dans une plateforme SharePoint requièrent du développement particulier et une connaissance approfondie du « framework » de la plateforme.

Configuration vs. Développement vs. Hybride : les différences entre les techniques de personnalisation

Quelles sont nos options pour la personnalisation d’un environnement SharePoint ?
Est-ce possible de bénéficier de certains automatismes, de certaines standardisations à moindres coûts ? Tout à fait !
Il est par contre nécessaire de bien comprendre la différence entre les techniques de personnalisation afin de faire un choix éclairé.

La configuration d’un site SharePoint

La configuration est la personnalisation d’un site SharePoint via les outils de Microsoft (SharePoint Designer, éditeur en ligne, etc.).  Cette technique permet un développement de base simple et efficace. On peut penser à la création de colonnes, de listes, de bibliothèques de documents, de flux de travail simple, d’édition de pages, etc.  Par contre, il ne peut être considéré comme étant un développement d’entreprise puisque sa portée est limitée et ne peut que difficilement être standardisé. Le tableau suivant démontre la portée limitée de certains des éléments configurables.

Élément configuré

Portée maximale

Éditeur de contenu

Page

WebPart

Page

Colonne

Collection de sites

Type de contenu

Collection de sites

Page maître

Collection de sites

Gabarit de page

Collection de sites

Flux de travail

Liste

Site

Site

Liste

Site


Cette stratégie de personnalisation est parfaite pour laisser une certaine latitude aux unités d’affaires et aux collaborateurs.

Le développement

Le développement SharePoint à proprement dit est la programmation de modules et d’automatismes permettant d’offrir des fonctionnalités globales à la plateforme.  Par exemple, on peut penser à la création d’un gabarit de liste, de site, du développement de processus plus ou moins complexes ou le déploiement et la standardisation d’une architecture d’information fidèle dans tous ses sites.  Historiquement, ce développement était majoritairement effectué à partir d’outils traditionnels comme Visual Studio.  Ces outils offrent une flexibilité complète et un éventail d’options.

Malheureusement, ces outils ne peuvent plus être utilisés dans un mode « Cloud » ou « Office 365 ». Il est par contre possible d’utiliser les technologies clientes afin de personnaliser un site SharePoint. Ces technologies comprennent JavaScript, REST, CSOM, Services Web, etc.  Bien que le paradigme change drastiquement par rapport aux technologies serveurs (.NET, C#, VB.NET), il est possible d’arriver aux mêmes résultats.

Et le développement Hybride

Le développement hybride est l’utilisation des technologies de développement pour standardiser certains éléments et offrir une plateforme uniforme juxtaposée à l’utilisation des éléments de configuration pour personnaliser les gabarits corporatifs pour répondre aux besoins spécifiques des unités d’affaires. Ce mode de développement est la solution au développement SharePoint dans un contexte abstrait (autant « On-Premises » que dans « Office 365 »). Il limite les coûts de développement en laissant une partie de la configuration à l’usager final et contraint en quelque sorte l’usager à respecter le cadre défini par les éléments standards déployés par les éléments déployés.

Les meilleurs candidats au développement SharePoint

Bien que la méthode recommandée soit définitivement le mode hybride, on remarque que plusieurs moyens sont à mettre en place afin de livrer un service de qualité à vos utilisateurs lors du développement d’une solution intégrée à SharePoint.  Les points suivants sont les candidats au développement les plus courants.

1.    La standardisation des archétypes

Tout d’abord, la standardisation via des archétypes (colonnes, types de contenu, listes, bibliothèques, sites, etc.) assurera une simplicité d’utilisation. Peu importe la zone collaborative exploitée par l’utilisateur, il se retrouvera dans un milieu qu’il connait et pourra se retrouver aisément dans les menus et contenus qui lui sont proposés. Il sera aussi en mesure de bien maitriser les termes utilisés ainsi que les renseignements supplémentaires sur les contenus présents dans les différentes listes et bibliothèques.

Un exemple pour bien comprendre

Lors de l’utilisation d’un site de collaboration concernant la totalité de votre documentation à l’égard d’un client, il peut devenir crucial de pouvoir conserver le numéro de client provenant de votre CRM pour simplifier la recherche de documents. Peut-être voudrez-vous utiliser votre CRM comme source de données et vous assurer d’une unicité dans vos numéros de client.  Afin d’offrir un environnement de recherche efficace et une cohérence dans les métadonnées définies, l’utilisation d’une colonne de site commune à tous les sites de type « Client » est la meilleure pratique. Pour l’intégrer à vos solutions complexes, il devient très pratique de développer et de distribuer cette colonne au travers d’un ensemble de fonctionnalités.  L’utilisation d’une solution SharePoint sera le meilleur moyen.

2.    L’image de marque commune

Il est de bonne pratique de livrer à ses usagers une interface standard pour augmenter l’adoption, simplifier l’utilisation et pour réduire les efforts en formation.  Cette image de marque, lorsqu’intégrée dans un portail d’entreprise, assure une certaine continuité entre les zones de travail (intranet de publication, zone collaborative, espace personnel, etc.).  Lorsqu’une nouvelle application ou un nouveau site doit être déployé, cette image de marque doit aussi l’être pour conserver l’unicité de l’interface et guider l’usager vers des éléments connus et maitrisés.

Cette image de marque ne peut être déployée aussi simplement au travers de multiples collections de sites. Si votre architecture d’information est logiquement complexe (plusieurs collections de sites, plusieurs applications web, plusieurs collections de sites nommées, etc.), le développement SharePoint devient obligatoire. L’avantage de déployer l’image de marque d’une plateforme SharePoint au moyen d’une solution SharePoint est la simplicité de sa mise à jour de façon transverse. Comme la solution agit comme source centralisée des éléments (CSS, JavaScript, HTML, images, etc.), une seule édition à cette solution aura comme impact de mettre à jour les visuels de chacun des sites déployés.

3.    Le déclenchement de processus

La plateforme SharePoint stocke des informations souvent suffisamment pertinentes pour permettre une synthétisation de celles-ci et la transformation d’une simple édition de contenu en un réel processus d’affaires. Le développement de mécanismes fortement couplés avec les données de SharePoint peut permettre de répondre à plusieurs objectifs d’affaires, par exemple :

  • Enforcir certaines règles de gouvernance
  • Assurer la qualité de certaines informations cruciales à l’entreprise
  • Gérer le cycle de vie des informations corporatives
  • Intégrer des systèmes internes ou tierces parties
  • Déclencher des flux de travail à court, moyen ou long terme

Bien que la plateforme offre des options et mécanismes permettant le déclenchement de certains de ces événements (majoritairement les flux de travaux), l’utilisation de la plateforme native ne permet pas simplement les gabarits d’événements.  

Prenons l’exemple de la création d’un nouveau site de type « Client ».  Imaginons que le processus doit être déclenché par SharePoint pour aller créer un nouveau dans le « CRM ».  Il sera très complexe d’utiliser les outils natifs à SharePoint (comme SharePoint Designer ou les flux de travaux natifs) pour réagir à la création d’un nouveau site et de permettre la création de ce nouveau client dans votre plateforme de gestion de clientèle.  Le développement de ces événements et de ces automatismes au travers d’une solution SharePoint permettra à tous les sites de bénéficier de la même version du processus et de tous agir de la même façon.

4.    Offre d’un « hub » applicatif

SharePoint peut aussi devenir la plateforme centrale de vos différents systèmes corporatifs et de la collaboration interne. En offrant une série de composantes applicatives à vos usagers, ceux-ci pourront s’approprier la plateforme en la personnalisant à leurs besoins, à ceux de leur équipe et à ceux de l’entreprise. En étant la plateforme centrale de vos activités de production, il devient aussi intéressant de croiser des données de systèmes connexes en dégageant une vue sur vos données. Pensons à l’intégration des données de votre « CRM » avec les documents que vous générez pour vos clients.  Le contexte de consommation de ces données change complètement et génère de la valeur nouvelle pour l’entreprise.

La contextualisation de ces données avec celles de SharePoint aura avantage à être faite au moyen d’une solution SharePoint. Celle-ci s’assurera de préserver la sécurité des données, d’offrir une façon simple de visualiser simplement cette information et de les intégrer de façon transparente.  Cette solution pourra être consommable par le biais d’un « WebPart », d’une page applicative ou d’une application tierce à la plateforme SharePoint.

Les risques qui peuvent nuire au développement personnalisé

Évidemment, de sérieux risques peuvent nuire au développement personnalisé dans le contexte de la plateforme SharePoint.  L’idée n’étant pas de tout développer à même la plateforme, mais d’offrir des mécanismes vous permettant de rehausser la valeur de la plateforme et de l’adapter à vos processus d’affaires.  Le développement reste une activité complexe et peut nuire à l’expérience en générant des effets de bord non prévus et planifiés lors de vos conceptions originales.

Évaluer le coût et l’effort en amont

Il est primordial de bien évaluer les coûts associés à un développement avant de débuter un projet de développement SharePoint. Certains éléments de développement peuvent sembler complexes lorsque comparés avec leur penchant de configuration (création de colonnes, de types de contenu, de création de gabarit de site, etc.). Il est vrai de dire que le développement de certains artéfacts SharePoint peut prendre un certain temps, par contre un développement de qualité permettra de reproduire des structures de données complexes en un temps record et de standardiser l’utilisation et la structure de la plateforme.

Des environnements intermédiaires à mettre en place

Bien que SharePoint offre des mécanismes de mise en place de copie de sauvegarde et de restauration, il devient de plus en plus important de mettre en place des environnements intermédiaires pour ne pas impacter votre SharePoint hébergeant vos activités de production. Ces environnements permettront de tester les déploiements des nouvelles composantes sans altérer l’utilisation de vos données importantes, permettront à vos usagers de tester les nouvelles fonctionnalités et d’assurer un déploiement sans anicroche sur votre environnement de production.

L’importance des environnements dans un déploiement

Sans ces environnements, un déploiement d’une solution SharePoint qui poserait problème pourrait mettre à risque votre environnement, voire même occasionner un arrêt de service non prévu.  Il devient rapidement primordial de mettre en place une série d’environnements permettant de respecter le niveau de service souhaité pour votre plateforme SharePoint :

  • Un environnement de développement où les développeurs ne seront pas limités et pourront effectuer leurs activités sans contrainte
  • Un environnement d’intégration, permettant aux développeurs d’intégrer leur solution dans un environnement similaire à votre production pour s’assurer du bon fonctionnement autre que sur leur poste de développement;
  • Un environnement d’assurance-qualité qui permettra à vos usagers pilotes de tester la solution et d’accepter la solution;
  • Un environnement de production qui sera régi par un niveau de service déterminé et qui sera gouverné de sorte à offrir un service de qualité à vos usagers.

La migration vers une nouvelle version

La mise en place d’une solution personnalisée impliquant du code et reposant sur SharePoint peut mettre en péril un projet de migration vers une nouvelle version de la plateforme. Tous les éléments développés doivent définitivement être étudiés préalablement à la migration. Certains ajustements pourraient être à prévoir dans des cas de modifications majeures des interfaces applicatives de SharePoint.  

Malgré tout, certaines stratégies peuvent être utilisées pour diminuer les risques de mauvaises surprises lors des migrations :

  • Développer des composantes les plus simples et modulaires possibles;
  • Utiliser les API client (CSOM, JSOM, REST) lorsque possibles;
  • Utiliser le modèle des « Apps » et développer le côté applicatif dans une application web hébergée à l’extérieur de SharePoint (développée dans le langage de votre choix);
  • Penser « cloud » et « Office 365 » lors de la conception, même lorsque l’environnement SharePoint est « On-Premises », cela vous forcera à utiliser des technologies diminuant les risques.

On ne peut jamais être assuré d’avoir éliminé tous les risques associés à une migration, mais ces quelques points peuvent vous sauver  quelques nuits blanches.

Quelques conseils

Le succès de SharePoint est indéniable et il devient un incontournable dans l’entreprise. Malgré tout, l’implantation d’une solution d’une telle envergure peut mettre en péril l’adoption en entreprise, autant au niveau des usagers qu’au niveau des dirigeants. Les conseils suivants pourraient vous être utiles lorsque vous prendrez la décision de faire le grand saut et de favoriser la collaboration en entreprise.

1.    Connaître le produit

Il est primordial d’avoir un expert du produit dans une équipe d’implantation d’une solution SharePoint. Une mauvaise connaissance du produit pourrait avoir un impact très négatif sur la qualité des solutions produites. Le produit SharePoint est complexe et est très large. Sa maitrise permet de cibler les bons angles d’attaque pour le personnaliser et pour éviter de développer des éléments offerts nativement.

2.    Mettre en place une architecte de solution

La mise en place d’un architecte de solution ou un responsable de produit permettra de traduire des besoins d’affaires en composantes et en éléments fonctionnels. Les solutions développées avec quelqu’un jouant un rôle aussi important sont souvent plus uniformes, s’intègrent beaucoup mieux et répondent à de réels besoins d’affaires, pas seulement à des besoins technologiques.

3.    Ne pas négliger la gouvernance

La mise en place, mais surtout la communication et la diffusion d’une gouvernance technologique sont les premiers pas vers la réussite d’un projet de développement SharePoint. Les règles qui dictent autant la personnalisation du produit que de son utilisation doivent être connues et comprises par l’équipe de développement pour livrer des solutions qui seront compatibles avec la vision de l’entreprise.

En conclusion

En espérant que cet article puisse vous éclairer sur les raisons pour lesquelles vous devriez favoriser le développement d’une solution SharePoint et surtout comment vous pourrez bénéficier d’une telle stratégie.

Retrouvez-moi, ainsi que Serge Tremblay, formateur SharePoint chez Technologia, lors du SharePoint Saturday 2014 le 8 février à l’ETS de Montréal. Découvrez également les formations SharePoint offertes chez Technologia.