Avant-propos

Avis au lecteur : Cet article avait été initialement publié sur le Blog de Cellenza il y a quelques mois. Suite à de nouveaux travaux sur le sujet, je le publie à nouveau agrémenté de quelques mise à jour et commentaires complémentaires. Bonne lecture.

Les solutions de gestion de projet

Des organisations de toutes tailles, très souvent par souci de contrôle des risques et des coûts, « gèrent », avec plus ou moins de succès d’ailleurs, des projets, du plus basique au plus complexe.

Afin de contrôler et piloter ces processus de production, ces structures s’orientent souvent vers la création d’un PMO (Project Management Office), représenté par des chefs de projets dédiés.

Cette démarche, certes louable, se heurte souvent à la problématique de l’outillage de l’EPM (Enterprise Project Management). Le choix de cet outillage passe par la prise en compte d’un certain nombre de facteurs, notamment :

  • La complexité des projets : de la simple organisation d’une réunion à la construction d’un immeuble en passant par la réalisation d’un logiciel…
  • Les méthodes de gestion de projets et de support en vigueur : Waterfall, Agiles, Scrum, CMMI…
  • Les réglementations et procédures applicables : réglementations sectorielles comme SOX ou ITAR, processus de validation et d’approbation…
  • La typologie des informations associées : papier, documents, tableaux, livrables, fichiers techniques…
  • L’outillage existant et l’historique des informations : nombreux fichiers Excel normalisés ou non, bases de données d’applications legacy…
  • Le niveau de maturité des équipes face aux outils : Culture projet, formations suivies…

Je n’ai naturellement pas ici l’impudence de penser fournir une grille de choix complète sur le sujet, et ce n’est pas l’objet de cet article. Pour ce faire, il eut fallu constituer une matrice d’aide à la décision, tenant compte par exemple de critères de sélection pondérables :

  • Simplicité de la prise en main et besoins en formations
  • Rapidité de mise en œuvre et charge de déploiement opérationnel au sein des équipes
  • Coûts des licences
  • Présence de fonctions spécifiques telles que la gestion de portefeuilles ou les budgets prévisionnels

Plus humblement, j’ai souhaité positionner SharePoint comme une des solutions envisageables au sein des différents types d’offres disponibles sur le marché. Pour ce faire, j’ai établi cette matrice selon deux axes, la richesse fonctionnelle des outils et la complexité de mise en œuvre :

Comme vous pouvez le constater, plusieurs de ces solutions reposent directement sur SharePoint (sur fond mauve), et sont situées au centre de notre radar. Ce n’est naturellement pas un hasard, SharePoint est une plateforme souple, idéale pour de nombreux usages intermédiaires en termes de complexité et de fonctionnalités (et par corollaire plus délicate à manier pour des besoins plus avancés… mais c’est un autre sujet…).

Je réponds par avance aux experts qui m’opposeront que Project Server est désormais une solution (Service Application) SharePoint, c’est vrai mais son historique technologique en fait une solution très spécifique, dotée de nombreuses particularités vis-à-vis de SharePoint. C’est pourquoi j’ai ici choisi de ne pas l’intégrer à mon étude.

La démarche

Dans cet article, je vais détailler une procédure envisageable de mise en œuvre de deux des implémentations les plus simples, sur la base des technologies SharePoint, à savoir une solution native reposant sur SharePoint Foundation, puis une solution plus intégrée avec MS Project.

Une solution globale de portail projet reposant sur  SharePoint Server pourra être étudiée par la suite. De même, les solutions tierces telles que BrightWork ou Project Server, sont trop spécifiques et sortent du cadre de cet article. Vous trouverez d’ailleurs toute la documentation nécessaire à leur implémentation sur Internet.

Je veux créer des espaces projets avec SharePoint !

Présentation du sprint

Les éléments retenus dans notre sprint backlog :

  • En tant que chef de projet, je peux créer un site collaboratif pour gérer les informations liées à mon projet
  • En tant que membre de l’équipe projet, je peux travailler sur une liste de tâches partagées pour créer, affecter ou reporter l’avancement des travaux
  • En tant que membre de l’équipe projet, je peux partager des documents et autres informations projet avec les autres membres de l’équipe
  • En tant que chef de projet, je peux au sein du site définir des indicateurs simples sur l’avancement du projet, pour communiquer simplement avec mon équipe

En résumé, il s’agit d’une extension des espaces collaboratifs standards de SharePoint, adaptés à la gestion des informations projets (PIM : Project Information Management).

La démarche

La démarche de mise en œuvre que je vous propose d’adopter est la suivante :

  1. Créer un espace collaboratif standard à partir du modèle « Site d’équipe »
  2. Le personnaliser en fonction des exigences exprimées
  3. L’enregistrer en tant que modèle de site afin de pouvoir le réutiliser comme base pour chaque espace projet

La mise en œuvre

Au sein de votre portail, commencez par créer un nouveau site en utilisant le modèle de site « Site d’équipe » :

Ce site propose, de par le modèle qu’il utilise, un certain nombre de fonctionnalités basiques, telles que des bibliothèques de documents, ainsi que des listes permettant de gérer des calendriers partagés et des tâches.

Vous pouvez naturellement ajouter ou supprimer des fonctionnalités en ajoutant ou supprimant des bibliothèques ou listes du site.

Nous allons ensuite ajouter une liste de tâches à partir du modèle « Tâches du projet » :

Cette liste de tâches est tout à fait similaire à la liste de tâches standard, si ce n’est que son affichage par défaut n’est pas un simple tableau de valeurs, mais un diagramme de Gantt, offrant une représentation visuelle du planning.

Une fois alimentée, cette liste offre une représentation visuelle des tâches sous la forme d’un diagramme de Gantt :

Fonctionnellement, cette liste intègre :

  • Deux types de tâches, standard et récapitulatives
  • Un système de gestion basique des dépendances entre tâches
  • Des méta données permettant de décrire assez finement la tâche : titre, description, affectation, échéances…
  • Un système de notification automatisé des personnes spécifiées dans le champ « Affecté à »
  • Plusieurs vues permettant une meilleure lecture : « Toute les tâches », « Mes tâches »
  • La possibilité de créer des vues spécifiques sur les tâches, par des tris, filtres ou regroupements
  • Une collaboration simple autour des tâches entre les différents acteurs du projet

Une fois votre site configuré, vous pouvez l’enregistrer en tant que modèle afin de pouvoir le réutiliser pour tous vos projets.

Pour ce faire, naviguez jusqu’aux paramètres de site :

Puis cliquez sur « Enregistrer le site en tant que modèle » :

Saisissez le nom que vous souhaitez donner à votre modèle puis cliquez sur « OK » :

Votre site est désormais présent les la galerie des modèles de sites utilisables.

Afin de créer un nouveau site projet à partir de ce modèle, sélectionnez « Nouveau site » depuis le menu action du site :

Saisissez les informations nécessaires à la création du site pour votre projet :

Mais en créant ainsi de multiples sites, généralement un par projet, il deviendra assez rapidement nécessaire de disposer d’une vue synthétique des projets et de leur avancement, directement depuis la page d’accueil du site, sans imposer à l’utilisateur de naviguer au sein des différentes listes.

Pour ce faire, différentes solutions sont envisageables. La plus simple consistant à ajouter une Web Part « Editeur de contenus » sur la page d’accueil et laisser le chef de projet saisir les informations nécessaires. Mais il ne s’agirait alors que d’un simple bloc de texte, mis en forme selon des préférences personnelles, et donc non normalisé, ce qui ne simplifiera pas la lecture de différentes synthèses sur de multiples sites.

Afin de standardiser la présentation de cette synthèse, je vous propose de créer une liste normalisée dédiée à cet effet.

Il suffit pour cela, depuis le site racine de votre portail, de créer une liste « Synthèse », de type « personnalisée » :

Puis de lui ajouter les colonnes nécessaires au stockage des informations de synthèse :

Par exemple :

  • Nom / Code du projet
  • Budget (Euros)
  • Avancement (%)
  • Echéance (Date)
  • Responsable (Personne)

Vous pourrez alors alimenter votre tableau de synthèse simplement depuis un formulaire de création standard SharePoint :

Pour obtenir une liste lisible semblable à celle-ci :

Vous pourrez alors ajouter un élément à votre liste décrivant votre projet de manière structurée et standardisée pour chaque site projet utilisant votre modèle.

L’étape suivante consiste à afficher cette vue de synthèse directement sur la page d’accueil du site. Pour cela, passez votre page d’accueil en mode édition :

Cliquez sur « Ajouter un composant web part » :

Ajoutez le composant correspondant à votre liste de synthèse à votre page :

Puis enregistrez les changements effectués :

Votre page d’accueil dispose désormais d’un tableau synthétique d’avancement pour vos projets :

Les limites de cette solution

Cette solution, reposant essentiellement sur les listes de tâches projets des espaces collaboratifs SharePoint, est idéale lorsque les chefs de projets ne sont pas habitués à manipuler des outils de gestion de projet plus formalisés, et permet déjà de répondre à un grand nombre de besoins, de par les multiples fonctionnalités offertes en standard.

Cependant, lorsque les besoins en planification sont plus complexes (gestion de dépendances avancée, suivi des écarts planifiés et du réalisé, suivi des coûts et des charges sur les ressources…), passer par une solution de gestion de projets plus complète devient nécessaire.

Mes chefs de projets utilisent MS Project !

Sprint 2

Pour pallier les limitations de notre première implémentation, l’utilisation d’un logiciel de planification comme MS Project devient nécessaire.

Les éléments retenus dans notre sprint backlog :

  • En tant que chef de projets, je peux publier et mettre à jour le planning des tâches partagées avec l’équipe depuis MS Project, pour piloter finement la planification
  • En tant que membre de l’équipe projet, je peux reporter l’avancement de mes travaux directement dans mes affectations afin d’éviter les multiples saisies

La mise en œuvre

Nous sommes ici dans le cadre de l’utilisation des capacités standard de MS Project 2010 quand à la synchronisation des éléments de planification avec les listes de tâches de SharePoint.

Comment cela fonctionne ? Imaginez un planning, crée par un chef de projets, semblable à celui-ci :

Afin de partager son planning avec l’équipe, le chef de projets peut passer dans le menu « Fichier », section « Enregistrer et envoyer », puis cliquer sur « Synchroniser avec une liste de tâches » :

Puis renseigner les informations nécessaires sur le site SharePoint et la liste à utiliser :

Une fois le projet synchronisé, le planning apparaît sur le site SharePoint spécifié sous cette forme :

Désormais, les membres de l’équipe peuvent consulter et modifier les données directement depuis SharePoint, comme pour toute liste standard. De plus le chef de projets peut à tout moment répercuter les changements effectués par l’équipe sur sa planification en utilisant le bouton « Synchroniser » de la section « Informations » de MS Project :

Par ce même écran, en utilisant le bouton « Gérer les champs », le chef de projets peut définir les champs de son fichier MS Project qui seront synchronisés avec la liste SharePoint, et même créer de nouvelles associations :


A noter que dans notre scénario, le chef de projets publie un planning existant dans SharePoint à partir de MS Project, retenez que l’inverse est aussi possible, à savoir importer une liste de tâches SharePoint directement dans MS Project.

Restrictions des fonctionnalités de synchronisation entre MS Project et SharePoint

Cet usage de MS Project avec SharePoint est assez séduisant, mais présente un certain nombre de limitations qu’il conviendra de prendre en compte avant toute implémentation.

  • Les tâches récapitulatives sont supportées dans le cadre de la synchronisation, mais apparaîssent dans SharePoint comme des dossiers (ou des éléments parents), qui nécessitent donc de naviguer de la tâche parente aux niveaux inférieurs.
  • La plupart des champs custom peuvent être synchronisés via l’ajout de champs depuis le menu « Gérer les champs »
  • La synchronisation MS Project avec SharePoint nécessite SharePoint Foundation ou SharePoint Server 2010 côté serveur
  • La synchronisation MS Project avec SharePoint nécessite que MS Project Professional ne soit pas connecté à Project Server. En effet, la synchronisation de MS Project avec SharePoint est une fonctionnalité de MS Project 2010 et non pas de MS Project Server 2010. Une fois un client Project Pro 2010 connecté à MS Project Server 2010, les fonctionnalités de synchronisation avec SharePoint seront désactivées.
  • Les tâches à planification automatique seront converties lors de la première synchronisation en tâches à planification manuelle
  • Afin de pouvoir synchroniser dans SharePoint les affectations de ressources réalisées depuis MS Project, les utilisateurs concernés représentant ces ressources devront être référencés dans le site SharePoint avec exactement le même nom (login).
  • Les plannings synchronisés ne supportent que les contraintes de type « Début à fin », à savoir qu’une tâche dépendante (B) ne peut pas se terminer tant que la tâche dont elle dépend (A) n’a pas commencé.
  • Les plannings synchronisés ne supportent pas les « leads » ni les « lags », à savoir les intervalles de temps séparant deux tâches liées par une interdépendance.

Ces deux derniers points sont particulièrement problématiques lors de la reprise de projets complexes.

Résoudre les problèmes de synchronisation

Voici quelques problèmes fréquemment rencontrés lors de la mise en œuvre de la synchronisation MS Project / SharePoint :

Problème : La liste SharePoint de destination contient un champ obligatoire, mais le planning projet ne contient pas le même champ.

  • Solution : Ajouter ce champ en tant que champ personnalisé dans MS Project

Problème : La liste SharePoint contient un champ calculé

  • Solution : Ajouter ce champ en tant que champ personnalisé dans MS Project

Problème : Mauvaise prise en compte des relations avec les prédécesseurs

  • Solutions : Supprimer les « boucles fermées » entre prédécesseurs, supprimer les parents des prédécesseurs des tâches, transformer les contraintes d’autres types en contraintes de type « Début à fin »

Problème : Assignations multiples de ressources sur une même tâche

  • Solution : Vérifier dans SharePoint que le champ d’assignation permet la saisie de valeurs multiples

Problème : Nom de tâche récapitulative invalide

  • Solution : Appliquer les mêmes règles de nommage pour les tâches récapitulatives que pour les dossiers dans SharePoint (C’est d’ailleurs par ce biais que SharePoint représente les tâches récapitulatives…), plus les contraintes suivantes : un nom ne peut contenir deux virgules à la suite, un espace à la fin, ni aucun des caractères suivants :/ : * ? < > |

Problème : Erreur sur un champ recherche (lookup)

  • Solution : Les champs lookup (recherche) ne doivent contenir que des valeurs de type « string / text »

Problème : Nom de liste invalide

  • Solution : Les noms de listes synchronisées avec MS Project ne peuvent contenir les caractères suivants : !.[]’

Les limites de cette solution

Vous disposez déjà d’une solution fonctionnellement riche et permettant une collaboration efficace autour de vos projets. Désormais votre système fonctionne très bien… trop bien même… Vous n’aviez pas anticipé un usage aussi massif de ces espaces, et vous avez maintenant 150 sites projets par personne… Autant dire que vous avez un sérieux problème de gouvernance de votre plateforme.

En effet, plus l’usage de votre solution se développera, plus se révéleront certaines contraintes liées au nombre des espaces projets, notamment :

  • Comment m’y retrouver dans les nombreux espaces projets que nous avons crée ? Créer un annuaire de sites ? Comment gérer la navigation ?
  • Comment naviguer efficacement et rechercher des informations sur de multiples espaces en une seule requête ?
  • Comment consolider les synthèses de mes différents projets sur un seul et même écran et ainsi obtenir une vue transverse de l’avancement et des indicateurs de mes projets ? Comment gérer des portefeuilles de projets ?

Afin d’éviter de tels écueils, la mise en œuvre d’un plan de gouvernance simple permettra d’anticiper la majeure partie des problèmes de scalabilité. Ce plan devra notamment couvrir :

  • La gestion du cycle de vie des modèles de sites projets (publication des évolutions, stratégie d’upgrade et de rétro-compatibilité…)
  • La politique de sécurité par défaut et stratégie d’audit
  • Politique de gestion du cycle de vie des projets (Approbation, création, archivage, destruction…)
  • Stratégie de recherche transverse

Conclusion

Les utilisateurs avancés et les professionnels de MS Project se sentiront rapidement frustrés par les limitations de la synchronisation entre MS Project et SharePoint, notamment sur les aspects :

  • Reprise de projets existant
  • Capacités de consolidation

Ceci étant, comme à son habitude, SharePoint se révèle parfaitement adapté pour mettre en oeuvre rapidement des solutions collaboratives de complexité intermédiaire, dans ce cas précis pour des plannings relativement simples et des besoins collaboratifs standards de partage de documents et de publication.

Et vous, quelles sont vos expériences en la matière ?

Publicités