SharePoint Framework : le développement SharePoint nouvelle génération
SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développement SharePoint
-
Upload
sebastien-levert -
Category
Technology
-
view
816 -
download
3
description
Transcript of 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
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/
3
À qui ça s’adresse ?
Chefs d’équipe
Développeurs
Gestionnaires d’équipes techniques
4
Agenda
La gouvernance d’une équipe de développement
Faire évoluer une équipe de développement grâce à la gouvernance
Questions
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
6
Gouvernance
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
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
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
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
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
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
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.)
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
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
Gestion du cycle de vie d’une solution SharePoint
16
Gouvernance
Développement
Opérations
Idée Déploiement initial Fin de vie
17
Le cycle de développement
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
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
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.)
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
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.
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
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
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
Évolution
26
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
28
Évoluer sans la gouvernance
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)
30
Évoluer avec la gouvernance
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
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
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
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
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
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]
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
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]
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
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]
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
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
43
Questions ?