SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

43
Gouvernance et évolution d'une équipe de développement SharePoint Sébastien Levert Directeur technique, Développement SharePoint, Les Solutions Victrix

description

Présentation donnée lors du SharePoint Summit 2012 de Québec le 18 avril 2012.

Transcript of SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

Page 1: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

Gouvernance et évolution d'une équipe de développement SharePoint

Sébastien LevertDirecteur technique, Développement SharePoint, Les Solutions Victrix

Page 2: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

2

À propos de moi !

Directeur technique,

Développement SharePoint

Les Solutions Victrix

MCTS, MCITP & MCPD

Twitter : @sebastienlevert

LinkedIn : http://ca.linkedin.com/in/sebastienlevert

Blog : http://blog.sebastienlevert.com/

Page 3: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

3

À qui ça s’adresse ?

Chefs d’équipe

Développeurs

Gestionnaires d’équipes techniques

Page 4: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

4

Agenda

La gouvernance d’une équipe de développement

Faire évoluer une équipe de développement grâce à la gouvernance

Questions

Page 5: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

5

Objectifs

Être en mesure de mettre en place une gouvernance relative à une équipe de développement SharePoint

Avoir les outils nécessaires afin de favoriser son adoption

Connaître les étapes permettant à l’équipe d’évoluer

Proposer un plan d’évolution selon le niveau de maturité de votre équipe

Page 6: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

6

Gouvernance

Page 7: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

7

La gouvernance d’une équipe de développement

« La gouvernance d’entreprise est l’ensemble des processus, réglementations, lois et institutions influençant la manière dont l’entreprise est dirigée, administrée et contrôlée. » - Wikipédia

Mise en contexte de la gouvernance aux différents niveaux de gestion

Niveau stratégiqueNiveau tactiqueNiveau opérationnel

Page 8: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

8

Les étapes

L’établissement des rôles et responsabilités

Mise en place de la fondation de la gouvernance

Identification des processus et de leurs outils

Page 9: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

9

Établissement des rôles et responsabilités

Une équipe de réalisation de projet SharePoint contient habituellement les rôles suivants

Gestionnaire de projetAnalyste d’affairesAnalyste fonctionnelArchitecte de solutionDéveloppeurTesteurGestionnaire de livraison

Rôle trop souvent omisExpert en infrastructure

Page 10: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

10

Établissement des rôles et responsabilités

Développeur / IntégrateurPaqueter les éléments natifs de SharePointDévelopper les fonctionnalités supplémentairesCréer une image de marqueScripter le déploiement de la solution

TesteurCréer des scripts de tests fonctionnels appuyés sur l’analyse fonctionnelle du projetÉlaborer et maintenir les tests unitaires / tests d’interface

Gestionnaire de livraisonRôle clé dans le succès et l’adoption de la gouvernance de l’équipe de développement SharePointRécupérer / assembler une version spécifique d’une solutionS’assurer de la validité de la solution à chacun des déploiements

Page 11: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

11

La fondation de la gouvernance

Les objectifsPromouvoir les meilleures pratiques de développementHausser la productivité des développeursLivrer une solution de qualité

CommentStandardiser les environnements de développementÉtablissement de règles de développementCréation de matrice d’accès aux environnements

Page 12: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

12

Standardisation des environnements de développement

Pourquoi ?Être le plus près possible de l’environnement du clientÉviter les problèmes associés à l’environnement (services SharePoint, versions de logiciels, etc.) pendant la phase de réalisationFavoriser le temps de développement au lieu de la configuration de l’environnementPermettre l’initialisation rapide d’un environnement

TechniquementEnvironnement virtuel de base, prêt à cloner

Outils de développement (Visual Studio, SharePoint Designer, etc.)Binaires de SharePointSQL

Scripts de configuration de l’instance de l’environnementConfiguration de la fermeCréation / configuration des applications web nécessaires

Page 13: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

13

Établissement de règles de développement

Pourquoi ?Favoriser un code uniforme et selon les meilleures pratiquesFaciliter la maintenance du codeIntégration de nouvelles ressources simplifiée

TechniquementGestion d’erreur et journalisation des exceptionsÉradication des valeurs forgées dans le code

Nom internes des champs, identifiants, URL, etc.Éviter les valeurs littérales dans le code

Utilisation de fichiers de ressources pour chacune des valeurs littéralesSéparer les responsabilités du code (SoC)

Permet de tester plus facilement les unités de codeGestion de mémoire et disposition des objets

SPWeb, SPSite, etc.Requêtes au contenu optimales (CAML, API de recherche, etc.)

Page 14: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

14

Matrice des accès aux environnements

Pourquoi ?Assurer l’intégrité des environnementsFavoriser la création de scripts et de paquets de déploiement au profit de la configuration manuelle

Techniquement

Page 15: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

15

Identification des processus à gouverner

Le processus de développementProcessus permettant de transformer une analyse fonctionnelle en solution logicielle

Le processus des opérationsProcessus permettant à une solution SharePoint d’être promue d’un environnement à l’autre

Page 16: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

Gestion du cycle de vie d’une solution SharePoint

16

Gouvernance

Développement

Opérations

Idée Déploiement initial Fin de vie

Page 17: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

17

Le cycle de développement

Page 18: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

18

SharePoint Designer ? Oui, mais…

Quand l’utiliser ?Phases de prototypageGénérer des artéfacts réutilisablesFavoriser les méthodologies de développement rapide

AvantagesRapide et simple à manipulerPeut être gouverné par l’établissement d’une sécurité granulaireDéveloppement possible depuis n’importe quel poste

InconvénientsDifficile à faire évoluer d’un environnement à l’autreAucun support pour la localisation (multilinguisme) Ajout d’attributs dans les définitions CAMLPaquets complexes, plus ou moins utilisables tels quelsGénère des solutions « Sandbox »N’offre pas de « vraie » gestion de sourceDifficulté à travailler en équipe

Page 19: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

19

Visual Studio

Quand l’utiliser ?Développer tous les éléments plus complexes (Webparts, événements, etc.)Réutiliser les éléments exportés des paquets générés par SharePoint Designer

AvantagesIntégration à un gestionnaire de sourcesContrôle complet sur le comportement de la solutionUne tonne d’outils existent pour augmenter la productivité

InconvénientsPlus complexe que SharePoint DesignerDemande un environnement complet pour développer avec l’outil

Page 20: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

20

Les outils du développeur

CKS:DEV (http://cksdev.codeplex.com/)

Ensemble de fonctionnalités exclusives aux développeurs permettant d’améliorer le cycle de développement

Plusieurs outils d’extraction de données (Gabarits de page, type de contenu, colonnes, etc.)

Ajout de type d’artéfacts pouvant être créés avec Visual Studio (Colonnes, services web, pages d’application, etc.)

Page 21: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

21

Les outils du développeur

SPDisposeCheck (http://archive.msdn.microsoft.com/SPDisposeCheck)

Traduction de l’article « Best Practices: Using Disposable Windows SharePoint Services Objects » en règles d’analyse de code statique

Intégration aux environnements de développement (Visual Studio) pour garder un contrôle constant

Intégration aux environnements d’intégration continue

Page 22: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

22

Les outils du développeur

Camlex.NET (http://camlex.codeplex.com/)

Système facilitant l’écriture de requêtes CAML

Utilise un interpréteur Linq pour générer la requête CAML utilisée

Élimine les requêtes forgées directement dans le code

vs.

Page 23: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

23

Les outils du développeur

Pex & Moles (http://research.microsoft.com/en-us/projects/pex)Système d’isolation de méthodes .NETUtilisé pour permettre de faire des tests unitaires

ULSViewer (http://archive.msdn.microsoft.com/ULSViewer)Permet de déboguer une application SharePoint efficacementPermet la recherche d’informations par « Correlation Id »

Vos outilsCréer des outils pour vos besoins internes spécifiquesÉviter de répéter les mêmes tâches, encore et encore

Page 24: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

24

Le processus des opérations

Environnement de développement

VM

Développeurs

Extraction / Archivage

DéploiementDéploiement

Testeurs

Clients Tests

Environnement d’assurance-qualité

Environnement de production

Clients

Administrateurs

Utilise

Gère

Déploiement

Gestionnaire de sources

TFSGestionnaire de livraison

Extraction

AnomaliesAnomalies

Anomalies Anomalies

Environnement d’intégration

Testeurs

TestsDéveloppeurs

Page 25: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

25

Le point névralgique du processus d’opérations

Le gestionnaire de source est le point névralgique du processus d’opérations

Il comprend chacune des entrées / sorties

Peut devenir rapidement l’entonnoir

Il s’agit de l’élément permettant l’évolution

d’une équipe de développement

SharePoint

Extraction / Archivage

DéploiementDéploiement

Déploiement

Gestionnaire de sources

TFSGestionnaire de livraison

Extraction

AnomaliesAnomalies

Anomalies Anomalies

Page 26: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

Évolution

26

Page 27: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

27

Évoluer sans la gouvernance

Les objectifs à atteindre sont connus

La façon de s’y rendre est inconnue

L’équipe semble évoluer dans plusieurs directions sans suivre un plan pré établi

ExempleSavoir que nous devons se rendre à Québec

Ne pas savoir par où passerNe pas savoir où est QuébecNe pas savoir par quel moyen se rendre

Page 28: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

28

Évoluer sans la gouvernance

Page 29: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

29

La gouvernance & l’évolution

La gouvernance détermine le cadre de l’évolution d’une équipe

L’évolution d’une équipe de développement se fait à travers la gouvernance mise en place

ExempleSavoir que nous devons se rendre à Québec

S’informer sur les meilleures routes (meilleures pratiques)S’équiper d’un GPS (outils technologiques)Ne pas être à l’abris des entraves routières, mais préparer des itinéraires facultatifs (agilité)S’informer sur le code de la route pour ne pas être pris en défaut (règles)

Page 30: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

30

Évoluer avec la gouvernance

Page 31: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

31

Les points à considérer lors d’un plan d’évolution

Évaluer la maturité de votre équipe avant de procéder à son évolution

Assurer l’évolution par l’adoption de la gouvernance

Placer la gouvernance au centre du processus d’amélioration continue

Page 32: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

32

La maturité de votre équipe en est où ?

Utilisation d’un gestionnaire de source

Assemblages automatisés

Déploiements automatisés

Tests automatisés

Page 33: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

33

Utilisation d’un gestionnaire de sources

SymptômesLe cycle de déploiement est impossible à réaliserAucune centralisation des versionsAucune centralisation des anomalies

SolutionMise en place d’un gestionnaire de sourcesMise en place d’un gestionnaire d’anomalies

Outils à mettre en placeTFS (sources, anomalies, etc.)Visual Studio 2010

GainsCentralisation du code sourceCentralisation des anomaliesFacilité à suivre les activités de développement

Gestionnaire de sources

TFSGestionnaire de livraison

Extraction

Page 34: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

34

Intégration continue

La mise en place de l’intégration continue comporte 3 composantes complémentaires

Serveur d’assemblage automatiséServeur de déploiement automatiséExécution de tests automatisés

Demande l’installation de Team Foundation Server 2010

Très bonne série d’articles de Chris O’Brien sur le sujethttp://www.sharepointnutsandbolts.com/2011/06/sp2010-continuous-integrationpt-1.html

Page 35: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

35

Serveur d’assemblage automatisé

SymptômesLes versions générées par le gestionnaire de livraison n’ont pas la certitude d’être fonctionnelles

SolutionMise en place d’un serveur qui compilera le code source et qui validera que sa construction est valide

GainsLes versions déployées par le gestionnaire de livraison sont toujours validesLes développeurs sont avertis lorsqu’un assemblage a causé une erreurPermet d’avoir une version intégrée de la solution à n’importe quel momentsPermet d’exécuter des règles de code statiques au moment de l’assemblage

Intégration de SPDisposeCheck

Page 36: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

36

Serveur d’assemblage automatisé

Serveur d’assemblage

Gestionnaire de sources

Assemblage d’une version

Gestionnaire de livraisons

Extraction

Archivage du code

Dépôt[Si assemblage = réussi]

Page 37: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

37

Serveur de déploiement automatisé

SymptômesLes versions générées peuvent être compilées, mais ne peuvent être déployéesLes versions générées ne fonctionnent que sur les environnements de développement

SolutionMise en place d’un serveur qui utilisera le dépôt des versions assemblées et tentera de déployer la solution

GainsLes versions déployées par le gestionnaire de livraison ne causent pas d’erreurLes développeurs sont avertis lorsqu’un déploiement a causé une erreurPermet d’avoir une version déployable de la solution à tous moments

Page 38: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

38

Serveur de déploiement automatisé

Serveur d’assemblage

Gestionnaire de sources

Assemblage d’une version

Gestionnaire de livraisons

Extraction[Si déploiement = réussi]

Archivage du code

Extraction

Déploiement

Serveur de déploiement

VM

Dépôt[Si assemblage = réussi]

Page 39: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

39

Exécution automatisée des tests

SymptômesLes versions générées sont déployées, mais ne sont pas fonctionnelles

SolutionConfiguration des serveurs d’assemblage et de déploiement afin de lancer une série de tests (unitaires ou d’interface)

GainsLes versions déployées par le gestionnaire de livraison sont toujours fonctionnelles et validées contre les spécificationsLes développeurs sont avertis lorsqu’un déploiement a soulevé des anomaliesPermet d’avoir une version testée de la solution à tous moments

Page 40: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

40

Exécution automatisée des tests

Serveur d’assemblage

Gestionnaire de sources

Assemblage d’une version + exécution des tests unitaires

Gestionnaire de livraisons

Dépôt[Si assemblage = réussi]

[Si tests = succès]

Archivage du code

Extraction

Déploiement + tests d’interface

Serveur de déploiement

VM

Extraction[Si déploiement = réussi]

[Si tests d’interface = succès]

Page 41: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

41

L’intégration continue

InconvénientsL’implantation d’une telle solution est relativement coûteuseUn expert de la suite TFS doit accompagner l’équipe pour les premières semaines

AvantagesLe gain en temps est immédiat

Ne pas déployer des versions non fonctionnellesTests d’intégration sont faits par le processus d’intégration continueLa rétroaction des anomalies est immédiate

Le gain en qualité est immédiatLa solution est testée en grande partie avant d’être déployée

Faciliter la création de versionsAugmente la cohésion d’équipe

Page 42: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

42

En conclusion…

L’évolution d’une équipe de développement SharePoint est un processus continu

Cette évolution repose sur une gouvernance claire et bien définie

La gouvernance permet à une organisation d’établir Les règles d’utilisation des outils de développementLes rôles et responsabilités des acteurs du développement SharePointLes processus à utiliser

Page 43: SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint

43

Questions ?