Présentation Club Qualité Logicielle 10/12/2013 André Foltier - Hervé Roux - Bouygues Telecom Ensemble protégeons l environnement. N imprimez ce document qu en cas de nécessité.
Agenda Développement s Bbox Outils et environnements de dev Mise en place d un cycle de dev Agile Intégration continue Inspection continue Sonar Conclusion: modèle de maturité
Bouygues Telecom Products Tablets, smartphones xdsl FTTH Cable Set Top Box (TV portal + firmware) Gateway (firmware) > 10 HW products
History and key dates commercial Insourced development & tools sept-08 août-09 juin-10 juin-10 oct-10 nov-10 janv-11 avr-11 juin-11 juin-11 juil-11 mars-12 juin-12 juil-12 oct-12 oct-12 déc-12 févr-13 mars-13 IPTV box launch (TV+DSL) 125k subscribers Portal update (new GUI) 500k subscribers DSL box 2nd source Cable box launch Bbox mediacenter Wifi community Number 1 customer relationship fix/mobile 1M subscribers Playing TV Games Mediacenter on Tablets Android/iPad Bbox Sensation DSL, new 3D GUI launch Bbox Sensation Fiber/cable Bbox: Best Broadband Experience Award Bbox games (cloud gaming) Bbox Tab (ipad/android) 1,8M subscribers Bbox Tab: Best TV Experience Enhancement Award janv-09 sept-10 déc-10 janv-11 mai-11 mai-11 nov-11 avr-12 août-12 sept-12 sept-12 oct-12 janv-13 mars-13 août-13 insourced STB portal development start RTC chosen as development platform RRC /RQM chosen as req / test platform insourced tablets develoment start insourced middlweware STB & GW development start First source codes in RTC First RTC Build operationnal Scrum / Agile chosen as development methodology All code assets in RTC 4,0 Jazz Upgrade deliver blocking plugin delivered by IBM CLM "collaborative Lifecycle Management" activation RRC/RTC operationnal for scrum Test and validation department switches on RTC 4,02 Jazz Upgrade
Stratégie logicielle 2010 2011 2012 2013 2014 Plan Build Deploy Improve Delight Choix Fournisseurs Proof of concept du logiciel unifié Plan de mise en place Mise en place Appropriation logiciels Programme BBOX sensation BBOX SENSATION Portail 3D BBOX TAB Méthodes agiles Amélioration QeC & QoS Mise en place LSF Imagine Fondations Développement continu Intégration continue
Spécificités Logiciel et technologies «embarqué» Ecosystème et produits complexes 2 gammes de produit: STB, GW Nombreuses déclinaisons hardware (chipsets, réseaux) 2 souches logicielles STB (MW / Portail) Développements applicatifs sur PC, Smartphones, Tablettes 4 équipes de développement Différents langages, environnements
Environnement de développement RTC, RRC, RQM Fermes de build Outils de développement PFS (simulateur/émulateur) ACS Smash CMS VOIP SDK Cloud Qualimétrie Boucle Locale Mur de box Cable - CMTS Fibre - ONT VMs sur mesure DSL - DSLAM B -LAB POD POC
Outils des usines logicielles QC Gestion des tests RTC RRC Gestion des sources Builds Gestion des anomalies Gestion des exigences Dashboards Planification Qualimétrie
Jazz in some numbers Hébergement DSI 4 plateformes (PROD, PREPROD, Recette, Formation) 34 serveurs PLATEFORME PRODUCTION DataBase 1,4 To Utilisateurs 700 Utilisateurs Bytel 530 Sociétés partenaires 22 Projets RTC 42 WI 47 550 Anomalies 24 300 User Story 5200 Projets RRC 26 Artéfacts 11 800 Documents 1 145 Use Cases 1 400 API 1900 Redondance actif / passif Réplication + backup Base Oracle Bascule sur site secours Supervision 9
Contexte Agilité: Use Cases, User Stories Le principe Réponse au «quoi?» avec les éléments de spécifications : techniques, architecture, sécurité des Services et Systèmes Techniques. Capitalisation = RRC L objectif Décrire le Comment (spécification de la solution) Capitaliser sur les Services et les Systèmes Techniques (référentiel de spécifications) Justifier la traçabilité besoins/spécifications Analyser les impacts : évolution, régression, SERVICE - A SERVICE - B Besoin : UC Besoin : UC Traçabilité horizontale Call Flow E2E Non fonctionnel (sécurité ) US US US Portail xxx Planification = RTC MW xxx US Ecrans et enchainements Non fonctionnel (sécurité ) API/STI Spec d Ingénierie Spec d Archi Logiciel le quoi le comment
Contexte Agilité: planification Le principe Planification du développement, de la pré-intégration, de la validation Contrôle des dépendances, pré-requis. Service UC L objectif Décrire le Quand? (planification) Gérer le Backlog de Sprint (état des US) Un UC est complètement implémenté lorsque toutes les US qui s y rattachent sont implémentées Allocation Portail US US US Task(s) Task(s) Task(s) MW US US Les User Stories et les Tâches sont planifiées dans les RUN Task(s) Run Run Run Task(s) Pré intégration et validation
Cycle de développement Agile RUN Mois n-1 RUN Mois n RUN Mois n+1 Releases CONCEPTION Release n CONCEPTION Release n+1 CONCEPTION Release n+2 DEV & INT. LOGICIEL Release n-1 DEV & INT. LOGICIEL Release n DEV & INT. LOGICIEL Release n+1 BUG FIXING Release n-2 BUG FIXING Release n-1 BUG FIXING Release n Rituels Release n Before KickOff Build Livraison Rétro, Démo Closing Livrables Périmètre du RUN Build Release Candidate BRC1 BRC2 UC Spec US engagées Spec Fiche de livraison US réalisés Fiche de livraison Spec de tests Release à déployer en VSR Spec Sanity Check
Intégration continue Blocage du deliver si build en cours ou build KO P e r s o n a l B u i l d OK (6) (2) (2) P e r s o n a l B u i l d KO (7) (5) (8) (3) (3) (4) (1) (4) (9) L o c a l W o r k s p a c e (1) L o c a l W o r k s p a c e 13
Inspection globale Sonar
Architecture Sonar En chiffres : 20 streams de développement Plusieurs millions de lignes de code analysées chaque nuit 110 utilisateurs SONAR 4.0 SONAR 4.0 Serveur de Production Crypté( BD, code source) 100 Gb en source 50 Gb en base Postgré Serveur de Tests Crypté (BD, code source) LSN RTC 15 H. Roux- 09/12/2013 Postes Développeurs
Sonar RTC Analyses quotidiennes, poste du développeur, Intégration continue Base Postgré User Repository Workspace Deliver Streams Developpement Contrôles Intégration Continue Build DAF.STM Contrôles GLP GLP.STM Check-In Poste du développeur Notification, HTTP Local Workspace HTTP HTTP 16 H. Roux- 09/12/2013 Développeurs Développeurs, Manageurs Manageurs
Focus sur les règles et les plugins Plugin Views 2.3 pour agréger et différencier le code Bbox selon son origine (code développé par Bytel, Open source, BSP, code provenant de fournisseurs externes, code d origine externe modifié par Bytel) Plugin SQALE 2.0 pour suivre globalement l amélioration de la qualité du code Plugin C ++ 1.3 avec 36 règles en production Plugin AS avec 42 règles en production Plugin Javascript 1.4 avec 35 règles en production Certaines de ces règles ont été adaptées, d autres développées pour répondre au besoin spécifique de Bouygues Telecom.
Sonar: exemple de tableaux de bord Transgressions Taille du code D1.P1 Domaine 1 Cartouche Commentaires Complexité du code 1/ Tableau de bord Domaine Evolution du Rule Compliance Index et du nombre de lignes de code Liste des versions d analyse Evolution des métriques par version d analyse 2/ Evolution du nombre de violations majeures et du nombre de lignes de code dans un domaine en Intégration continue
Sonar: cartographie du code - utilisation de Sqale Domaine 1 Domaine 1 D1.P1 D1.P1 Comparaison de la note SQALE des projets : Quelque soit : Leur technologie, Leur volume. En rapport avec le risque : Le calcul du RCI (Rule compliance Index) permet d estimer la qualité des applications. Domaine 2 Domaine 2 D2.P1 D2.P1 Application 34 Application 34 Analyse des Applications La navigation dans les modules d une application permet de se concentrer sur les point faibles de chaque projet. Module 1 Module 2 Module 3 Module 4 Module 5 Module 6 Module 6 Module 7 Module 8 Module 9 Module 10 Module 11
Bilan, retour d expérience Utilisation de SONAR sur le software Bbox depuis plus de 2 ans, par plusieurs équipes, co-localisées sur le même site. SONAR permet de diminuer la dette technique par la mise en place d une intégration continue et le lancement des analyses par le développeur sur son poste de travail, avant de livrer sur le stream de développement Bon accueil de certaines équipes qui voient en Sonar un outil bénéfique pour améliorer la qualité, grâce à l indication des violations directement dans le code. D autres sont plus réticentes par résistance au changement. Outils adapté au niveau du développeur (Analyses sur le poste du développeur), comme au niveau du manager (Agrégations permises par le plugin Views, notations fournies par le plugin SQALE) SONAR est facile à déployer et c est un outil flexible (permet le développement et l adaptation de règles spécifiques).
Conclusion modèle de maturité
Bilan - maturité usine
Questions / réponses