Les journées SQL Server 2013 Un événement organisé par GUSS #JSS2013 Les journées SQL Server 2013 Pratiques et expériences du Projet BI Agile (Biml/NBi) Florian Eiden Thomas Morisson Jordan Mootoosamy Un événement organisé par GUSS #JSS2013 Merci à nos sponsors #JSS2013 Les speakers • Florian Eiden • Architecte décisionnel / MVP SQL Server • Blog : La BI ça vous gagne (fleid.net) • Twitter : @fleid_bi • Jordan Mootoosamy • Consultant décisionnel • Thomas Morisson • Senior Consultant BI #JSS2013 Introduction • Agilité ? – Valeurs, priorités – Des méthodes de gestion de projet ET des techniques de développement • Un des objectifs premiers – Atteindre une fréquence de livraison la plus fluide possible sans risque sur les fonctionnalités livrées • Notre session – Retour d’expérience, SCRUM en équipe BI – Développements automatiques : BIML – Tests automatiques : NBi #JSS2013 Retour d’expérience, SCRUM en équipe BI • Remarques Michel Perfetti à 17h en salle Rubis – Ceci n’est pas un cours sur l’agilité – Ceci est une interprétation de l’agilité, dans un cas particulier => Identifier les points positifs, les points à améliorer => Proposer des solutions #JSS2013 Retour d’expérience, SCRUM en équipe BI • Plan – – – – Contexte Rôles Outils Evènements #JSS2013 Retour d’expérience, SCRUM en équipe BI • Contexte – – – – – – Suivi d’activité : Réalisé, Objectifs Technologies MS : SSIS, SSAS, SSRS Portail SharePoint / BI Personnelle Besoins évolutifs Maturité décisionnelle du client Maturité technique de l’équipe #JSS2013 En quoi un processus agile est-il différent ? • Méthode itérative, incrémentale et adaptative – Réactivité aux demandes du client – Priorité à la satisfaction réelle du client • Méthode Agile vs Cycle en V #JSS2013 Les rôles dans l’équipe • Scrum Master : 1 personne – garant du respect des principes de l'agilité – anime les différents évènements • Product Owner (PO) : 4 personnes – définit les User-Story (US) en collaboration avec les utilisateurs • Développeurs : 11 personnes – réalisent les US – équipe indépendante techniquement #JSS2013 Outils Le mur de post-it Mingle : la version virtuelle du mur #JSS2013 Le sprint 1/ Revue 2/ Planification 1 sprint = 3 semaines 4/ Rétrospective 3/ Stand-Up Meeting #JSS2013 Evènements Evènement Qui Revue de sprint Scrum Master Objectifs Outils PO Dev Mingle 0,5 jour Présenter les US Chiffrage Définir objectif principal Planification Dev Création des post-it Attribution des tâches Post-it Stand-up meeting Scrum Master PO Dev Avancement Attribution des tâches Mur de post-it Rétrospective Scrum Master PO Dev Bilan Présentations Axe positifs / à améliorer Mingle 0,5 jour Quotidien 0,5 jour #JSS2013 Retours d’expérience Positifs Management Développeurs Utilisateurs A surveiller + Chiffrage collégial + Vision globale du sprint grâce au mur = Bon pilotage à l’itération - Planning global + Interventions de tous les acteurs aux stand-up meeting = Partage de la connaissance facilité - Temps de parole - Seuls les PO sont en contact avec les utilisateurs - Documentation, Versionning + Adaptation aux évolutions du besoin + Priorisation dans la livraison des fonctionnalités = Satisfaction - Etendue des modifications sur le périmètre déjà développé #JSS2013 Biml et Mist pour une BI plus agile • Malgré toutes les qualités de la suite MSBI, on trouve toujours certains aspects qui freinent le respect des bonnes pratiques de développement: – SSIS ne facilite pas la réutilisation du code – SSIS ne permet pas réellement une abstraction du développement • Biml et Mist ont été créés pour pallier à ces inconvénients #JSS2013 Biml • Business Intelligence Markup Language • Langage basé sur XML, créé et maintenu par Varigence • Permet de décrire des solutions MSBI de manière déclarative et facilement lisible • Possibilité d’injecter du code BimlScript pour générer dynamiquement des objets • Intégré à BIDS Helper depuis 2011 #JSS2013 Biml – principe de base <Biml> <Connections> <Connection Name=« C1 » […] /> </Connections> <Packages> <Package Name=« P1 » […]> […] <Tasks> <Dataflow Name=« DFT1 » […]> […] </Dataflow> </Tasks> </Package> </Packages> </Biml> Connection C1 Package P1 […] Dataflow Task DFT1 #JSS2013 Mist • • • • IDE créé par Varigence pour développer des solutions MSBI Permet de développer de manière visuelle à partir de Biml Versioning et source control Permet de rajouter un niveau d’abstraction entre le design des packages et leur implémentation #JSS2013 Présentation de BIML #JSS2013 TODO • Une base Source, une base de Staging • Pour chaque table de la base Source: – – Récupérer les données de toutes les colonnes de la table Charger les données dans une table identique en Staging • On veut récupérer les données de toutes les tables sources et charger les données dans la base de Staging • Phase 1 : Premier script Biml de package statique • Phase 2 : Automatisation des packages avec du BimlScript #JSS2013 Conclusion Points positifs • Une abstraction du code pour une réutilisabilité facilitée • Un coût réduit du changement sur les packages déjà développés • Permet une qualité de développement constante Points négatifs • Des compétences préalables sont nécessaires sur les différents outils • Un certain temps d’apprentissage du langage • Coût de licence de Mist – Abo mensuel : 250$ / mois – Abo perpétuel : 4 000$ #JSS2013 Pourquoi des tests automatiques? • Monde idéal: – On me demande une nouvelle fonctionnalité – Je développe – Je déploie … le tout en moins d’1 journée? #JSS2013 Pourquoi des tests automatiques? • Pour le rendre possible: – On me demande une nouvelle fonctionnalité – Je développe > Je teste en un clic: ma fonctionnalité et toutes mes régressions > Si c’est valide: je livre en un clic – Je déploie … le tout en moins d’1 journée! #JSS2013 Pourquoi des tests automatiques? • Effet bonus: – On me demande une nouvelle fonctionnalité – Je développe > Je teste en un clic: ma fonctionnalité et toutes mes régressions > Si c’est valide: je livre en un clic – Je déploie Je reviens 6 mois plus tard, je n’ai pas peur de toucher au code ! • Je sais qu’il est propre • Je sais que si je casse quelque chose, je le détecterai tout de suite #JSS2013 Les outils à disposition • Un minimum de code : Frameworks Open Source sur Codeplex – BI.Quality : très facile, très limité, abandonné :’( – NBi : on va en parler, vivant, contributeur francophone: Cédric! • Avec du code: Visual Studio, et donc en bonus toute l’intégration ALM – Session à suivre: Tests automatiques pour SSAS avec Visual Studio – Article de Charles-Henri Sauget et Fabrice Michellonet #JSS2013 NBi : Composants • Framework Microsoft .NET • NUnit – Framework de tests unitaires Open Source pour Microsoft .NET – Source : http://www.nunit.org • ADOMD.NET – Fournisseur ADO.NET complémentaire à .NET pour interroger les métadonnées et données de SSAS – Source: Microsoft SQL Server 2008R2 SP2 Feature Pack • NBi – Framework complémentaire à NUnit, utilisant ADOMD.NET pour implémenter des tests spécifiques à SQL Server et SSAS – Source : http://nbi.codeplex.com – Attention : il existe un tutorial pour l’installation mais un peu pénible quand même #JSS2013 NBi : Structure du projet de test • Projet de Tests : Déclaration des projets côté NUnit Répertoire du projet NUnit #JSS2013 NBi : Structure du projet de test • Projet de Tests : Déclaration des projets côté NUnit Répertoire du projet NUnit #JSS2013 NBi : Structure du projet de test • Projet de Tests : Déclaration des projets côté NUnit – Pointe vers le framework NBi Framework NBi Répertoire du projet NUnit Répertoire d’installation de NBi #JSS2013 NBi : Structure du projet de test • Projet de Tests : Déclaration des projets côté NUnit – Pointe vers le framework NBi – Pointe vers un fichier de config qui définit la solution de test Framework NBi Répertoire du projet NUnit Répertoire d’installation de NBi Fichier config qui pointe vers les .nbits #JSS2013 NBi : Structure du projet de test • Projet de Tests : Déclaration des projets côté NUnit • Création des tests: NotePad++ ou autre éditeur XML – Fichiers XML : .nbits Répertoire d’installation de NBi #JSS2013 NBi : Structure du projet de test • Projet de Tests : Déclaration des projets côté NUnit • Création des tests: NotePad++ ou autre éditeur XML – Fichiers XML : .nbits – Format documenté sur http://nbi.codeplex.com Répertoire d’installation de NBi #JSS2013 NBi : Structure du projet de test • Projet de Tests : Déclaration des projets côté NUnit • Création des tests: NotePad++ • Exécution des tests : NUnit #JSS2013 Structure XML des .nbits • Nouveau fichier texte > NotePad++ > Enregistrer sous .nbits <? en <t te xm </ #JSS2013 Structure d’un test • Une suite contient plusieurs tests #JSS2013 Contenu d’un test : System-Under-Test et Assert Ce qui va être testé Les critères du test #JSS2013 NBi : Eventail de tests (non exhaustif) System-Under-Test Execution • Query (SQL,MDX,DAX) • Paramétrables • Variabilisables (code dynamique) • Assembly (dll.class.method) Assert equalTo • Valeurs en dur • CSV • Query (SQL,MDX,DAX) fasterThan syntacticallyCorrect • Check par le moteur associé Structure exists contain Members count / contain / ordered matchPattern (Regex) • (Multidim) Measure, MG, Hierarchy, Dimension • (Tabular) Column, Table • (Multidim) Hierarchies, Dimensions • (Multidim) Level, Hierarchy #JSS2013 NBi : Exemple #JSS2013 NBi : Démonstration #JSS2013 NBi : Industrialisation • Scriptabilité de l’exécution – – • Métadonnées des tests – • Paramètres et Variabilisation du code, dans le test ou via le fichier de config Partage des sources – • Ignore, Description, Auteurs, Changelists, Catégorisation… Paramétrage des Query : – • Via ligne de commande NUnit (nunit-console monprojet.nunit) Via MSBuild Fichiers XML hébergeables sur TFS/SVN Génération automatique de tests : Genbi – Génère des séries de test à partir d’un CSV #JSS2013 Stratégies de test • Cahiers de tests, de recette • Approche exhaustive : – Flux (Sources vs ODS, ODS vs DWH) • Données agrégées dans le flux : Comptages distincts, sommes, moyennes… • Données non agrégées : Comptages, répartitions sur les clefs, match 1:1… – DWH vs Cube • Agrégations de haut niveau (CA 2012…) • Structure des dimensions, hiérarchies, indépendamment des faits • Valeurs des mesures à chaque clef de chaque dimension indépendamment des autres • Des scénarios de référence, bien connus de tous. Si possible prendre les pires cas métiers possibles • Toutes les requêtes d’identification de bug générés naturellement dans le projet #JSS2013 NBi : mon avis • Outil simple qui fait le job : j’aime • Mais encore du chemin avant le scénario idéal : intégré à l’IDE, visuel, automatique… #JSS2013 Conclusion • Etat de l’art : BI Agile – Méthodologies projet : enfin la légitimité – Outillage pour le développement : • Ça s’améliore, mais par des initiatives externes à MS • La BI, toujours la 5ème roue du carrosse ALM .NET • Quid des nouveaux produits Power BI? Quid de SSRS? • Les autres sujets à ne pas rater: – Le TDD, Test Driven Development : à suivre tout de suite! – Tests automatiques avec Visual Studio : session suivante! #JSS2013 #JSS2013 #JSS2013
© Copyright 2024 Paperzz