20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC_Sonar
1. Ensemble protégeons l’environnement. N’imprimez ce document qu’en cas de nécessité.
Présentation Club Qualité Logicielle
10/12/2013
André Foltier - Hervé Roux - Bouygues Telecom
2. 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é
4. History and key dates
commercial
sept-08 IPTV box launch (TV+DSL)
août-09 125k subscribers
juin-10 Portal update (new GUI)
juin-10 500k subscribers
oct-10 DSL box 2nd source
nov-10 Cable box launch
janv-11 Bbox mediacenter
avr-11 Wifi community
juin-11 Number 1 customer relationship fix/mobile
juin-11 1M subscribers
juil-11 Playing TV Games
mars-12 Mediacenter on Tablets Android/iPad
juin-12 Bbox Sensation DSL, new 3D GUI launch
juil-12 Bbox Sensation Fiber/cable
oct-12 Bbox: Best Broadband Experience Award
oct-12 Bbox games (cloud gaming)
déc-12 Bbox Tab (iPad/Android)
févr-13 1,8M subscribers
mars-13 Bbox Tab: Best TV Experience Enhancement Award
Insourced development & tools
janv-09 insourced STB portal development start
sept-10 RTC chosen as development platform
déc-10 RRC /RQM chosen as req / test platform
janv-11 insourced tablets develoment start
mai-11 insourced middlweware STB & GW development start
mai-11 First source codes in RTC
nov-11 First RTC Build operationnal
avr-12 Scrum / Agile chosen as development methodology
août-12 All code assets in RTC
sept-12 4,0 Jazz Upgrade
sept-12 deliver blocking plugin delivered by IBM
oct-12 CLM "collaborative Lifecycle Management" activation
janv-13 RRC/RTC operationnal for scrum
mars-13 Test and validation department switches on RTC
août-13 4,02 Jazz Upgrade
5. 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
Intégration
continue
Fondations Développement
continu
Imagine
6. 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
Spécificités
7. Environnement de développement
Outils de développement
RTC, RRC, RQM
Fermes de build
Qualimétrie
Mur de box
Cloud
VMs sur mesure
B -LAB
POC
POD
Boucle Locale
Cable - CMTS
Fibre - ONT
DSL - DSLAM
ACS
Smash
CMS
VOIP
PFS
(simulateur/émulateur)
SDK
8. Outils des usines logicielles
RRC
Gestion des
exigences
RTC
PlanificationDashboards
Gestion des
sources
Gestion des
anomalies
Builds
Qualimétrie
QC
Gestion des
tests
9. 9
Jazz in some numbers
Hébergement DSI
4 plateformes (PROD, PREPROD, Recette, Formation)
34 serveurs
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
Utilisateurs 700
Utilisateurs Bytel 530
Sociétés partenaires 22
PLATEFORME PRODUCTION
Redondance actif / passif
Réplication + backup Base Oracle
Bascule sur site secours
Supervision
DataBase 1,4 To
10. Contexte Agilité: Use Cases, User Stories
Capitalisation = RRC
SERVICE - A
SERVICE - B
Besoin : UC
• Call Flow E2E
• Non fonctionnel (sécurité…)
• Ecrans et enchainements
• Non fonctionnel (sécurité…)
• API/STI
• Spec d’Ingénierie
• Spec d’Archi Logiciel
Besoin : UC
Le principe
Réponse au « quoi ? » avec les éléments de
spécifications : techniques, architecture, sécurité… des
Services et Systèmes Techniques.
MW xxxPortail xxx
US USUS
US
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,…
le quoi le comment
Traçabilité
horizontale
Planification = RTC
11. Contexte Agilité: planification
Service UC
Run Run Run
MW
Portail USUS
USUS
US
Le principe
Planification du développement, de la pré-intégration,
de la validation
Contrôle des dépendances, pré-requis.
Pré intégration et validation…
Task(s)
Task(s)
Task(s)
Les User Stories et les Tâches sont planifiées
dans les RUN
Task(s) Task(s)
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
12. Cycle de développement Agile
DEV & INT. LOGICIEL
Release n
DEV & INT. LOGICIEL
Release n-1
DEV & INT. LOGICIEL
Release n+1
CONCEPTION
Release n+1
CONCEPTION
Release n
CONCEPTION
Release n+2
BUG FIXING
Release n-1
BUG FIXING
Release n-2
BUG FIXING
Release n
RUN Mois n-1 RUN Mois n RUN Mois n+1
Before KickOff Rétro,
Démo
Rituels
Release n
Livrables
Releases
Build
Release
Candidate
Livraison Closing
BRC2BRC1
Build
UC
Spec
Fiche de
livraison
Spec de tests
Fiche de
livraison
US réalisés
Spec Sanity
Check
Release
à déployer en
VSR
US
engagées
Spec
Périmètre
du RUN
13. Intégration continue
Blocage du deliver si build en cours ou build KO
Local
Workspace
Local
Workspace
Personal
Build
Personal
Build
13
(1)
OK KO
(1)
(3) (3)
(2) (2)
(4)
(4)
(5)
(6)
(7)
(8)
(9)
15. Architecture Sonar
H. Roux- 09/12/201315
LSN
Serveur de Production
Crypté( BD, code source)
100 Gb en source
50 Gb en base Postgré
Serveur de Tests
Crypté (BD, code
source)
SONAR 4.0 SONAR 4.0
RTC
Postes Développeurs
En chiffres :
• 20 streams de développement
• Plusieurs millions de lignes de
code analysées chaque nuit
• 110 utilisateurs
16. Analyses quotidiennes, poste du développeur,
Intégration continue
16
RTC
Développeurs
Développeurs,
Manageurs
Contrôles
GLP
Sonar
Base Postgré
DAF.STM
GLP.STM
Streams
Developpement
Check-In
Deliver
Build
Notification,
HTTP
HTTP HTTP
User Repository
Workspace
Contrôles
Intégration
Continue
Local Workspace
Poste du
développeur
Manageurs
H. Roux- 09/12/2013
17. • 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.
Focus sur les règles et les plugins
18. Sonar: exemple de tableaux de bord
Domaine 1
1/ Tableau de bord Domaine
2/ Evolution du nombre de violations majeures et du nombre de lignes
de code dans un domaine en Intégration continue
Taille du code
Complexité du
code
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
Commentaires
Cartouche
Transgressions
D1.P1
19. Sonar: cartographie du code - utilisation de Sqale
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.
Analyse des Applications
La navigation dans les modules d’une application permet
de se concentrer sur les point faibles de chaque projet.
Domaine 1
Domaine 2
D2.P1
D2.P1
D1.P1
D1.P1
Domaine 1
Domaine 2
Application 34
Application 34
Module 1
Module 2
Module 3
Module 4
Module 5
Module 6
Module 6
Module 7
Module 8
Module 9
Module 10
Module 11
20. • 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).
Bilan, retour d’expérience