Suite au nouveau schéma directeur pour 2016 du comité de direction, l’Association Nationale pour la Formation Automobile (OPCA basée à Sèvres qui organisme et finance les formations pour les entreprises situées dans le secteur automobile) a demandé à son service support, l’ASFA de veiller à la mise en œuvre et à la cohérence du SI pour les prochaines opérations de collecte de taxe d’apprentissage et de formation continue.
J’interviens dans le cadre de la mise en place du projet de refonte des applicatifs du SI en y apportant de la méthodologie, de l’organisation avec comme première mission d’unifier le Back Office avec les différentes entités. (ASFA, ANFA et le GNFA)
Cette présentation à pour but de décrire la futur organisation pour le développement de nouvelles applications dans le SI tout en privilégiant le Métier.
ASFA - Organisation et Méthodologie du projet COLSA
1. O r g a n i s a t i o n e t M é t h o d o l o g i e d u p r o j e t C O L S A
( r é f o r m e d e l a c o l l e c t e )
F r é d é r i c S a g e z
7 m a i 2 0 1 4 ( m à j : 1 1 j u i l l e t 2 0 1 4 )
4. DÉPARTEMENTRESSOURCESETSUPPORTS
Avec la conception pilotée par le domaine
Page 4
Avec la méthodologie de la Conception pilotée par le domaine (Domain
Driven Design), nous allons intégrer le métier dans le développement.
5. DÉPARTEMENTRESSOURCESETSUPPORTS
Créé un produit final tout en répondant à la
complexité du domaine métier
Page 5
1. Nous avons besoin d’identifier tous les processus pour créer le
Domaine sur la gestion des taxes :
– Les rôles de chaque utilisateur
– Tous les flux possibles (navigations)
Modifier les
informations
d’une entreprise
Changer
l’adresse de
l’entreprise A
L’entrepris
e A existe
dans BE ?
Informations d’une
entreprise mises à jour
Valider la
modification
Créer
l’entreprise A
Oui
Non
Utilisateur Métier
Consulter Contenu
Naviguer
Gérer Contenu
Publier Contenu
Définir Navigation
Base Entreprises - BE
6. DÉPARTEMENTRESSOURCESETSUPPORTS
Utiliser le même langage par tout le monde
Page 6
2. De décrire tous les processus du Domaine :
– Les opérations à définir par le métier
– Les traitements à effectuer par les
développeurs
Collecte de la Formation Continue
DossierEntreprise dossier
Numero lotCourrier
FC.recuperationNumeroLotCourrier(KOFAX, lotCourrier)
FC.lectureAutomatiqueDesDocuments(KOFAX, GED, lotCourrier)
Si FC.verificationLaddInsatisfasante(WEBCO, GED, lotCourrier)
Alors FC.correctionDesDonnes(WEBCO, GED, lotCourrier)
FinSi
Si FC.rattachementDuDossierPossible(BE, lotCourrier, dossier)
Alors FC.actualisationDesDonnesEntrepriseSiNecessaire(BE, WEBCO, dosssier)
Sinon FC.creationDuDossierDansBE(WEBCO, BE, lotCourrier, dossier)
FinSi
FC.calculDuMontantDuVersement(WEBCO, dossier)
Si FC.calculDuVersementEstIncorrect(WEBCO, dossier)
Alors Evenement.RelanceCourrier(WEBCO, GED, dossier)
FinSi
FC.enregistrementDuDossierDansBE(BE, dossier)
Utilisateur
GestionDuLAD (Lot)
GestionEntreprise (NuméroDeSiret)
EncaissementCheque (Entreprise)
Métier
GestionDuLAD (Lot)
CalculDeLaTaxe (NuméroDeSiret, TypeTaxe)
Base
Entreprise
Courrier
0..n 0..nTraite
7. DÉPARTEMENTRESSOURCESETSUPPORTS
3. Mettre en place un serveur de développement qui permettra à
l’équipe de développement de travailler et de montrer ses
réalisations. (Maquettes)
Et d’utiliser des outils pour faire le suivi du projet.
Apache (Serveur HTTP avec PHP) – Wiki – SGBDR (MySQL/MariaDB) – JIRA (Gestion du Story-board et du Backlog) – Subversion (Versionning)
Page 7
Une plateforme commune de communication
8. DÉPARTEMENTRESSOURCESETSUPPORTS
Une visibilité complète sur le planning
Page 8
4. Créer un plan d’activité pour mettre en place le planning et les
attendus
Story To Do In Process To Verify Done
Une entreprise veut
créer un compte
Internet
Une entreprise veut
modifier ses
coordonnées
Code
Formulaire
Code
Données
dans le MCD
Code
charte CSS
Code
Création d’un
compte utilisateur
Test
Les données envoyer
via le formulaire
Code
Messages d’erreur
Test
Inscription
Code
Formulaire
Test
Les données envoyer via
le formulaire
Code
Charte CSS
Code
Messages d’erreur
Test
Déjà Inscrit
Code
Provenance
de la
demande
Code
Données
dans le MCD
SPRINTS…
13,5 jh
2
1
1
0,5
4
4
1
2
0,5
0,5
0,5
0,5
0,5 2
6,5 jh
9. DÉPARTEMENTRESSOURCESETSUPPORTS
Composition d’une équipe
5. Nous avons besoin d’avoir une vision d’ensemble sur le niveau de
compétences fonctionnelles et techniques de chacun afin
d’organiser les équipes.
Faire la matrice des polyvalences nous permettra en un clin d’œil de voir les
points forts et les points faibles des futurs équipes ainsi que exhiber les
polyvalences de chacun.
Page 9
Légende
0 Pas de connaissance Poste actuel
1 Connaissance théorique Capable de
2 Première expérience Potentiel
3 Bonne expérience Polyvalent
4 Niveau Expert
Métier 3 1 4 1 3 4 4 2
SGBDR 2 3 3 2 1 3
Développement 2 4 3 3 1
Architecture 4 2 2 4
Gestion de projet 3 4 3 1
G. Anne-
Laurence
L. Eric M. Isabelle P. ChristianCompétence R. Michel S. Frédéric S. Laurence F. Kevin
10. DÉPARTEMENTRESSOURCESETSUPPORTS
Exemple de méthode de travail
6. Identifier les rôles par catégorisation et du domaine à développer.
: Le Story Board doit être créé par le Chef de Projet (Scrum Master) avec le métier
(Product Owner). C’est le tableau de suivi des activités.
– Toutes les fonctionnalités doivent être identifiées.
– Pour rappel, le Story Board est basé sur des « histoires », et pour chaque histoire il y a des « sous-histoires ».
On doit y indiquer ce qu’il y a à faire pour la fabriquer (développement, test, etc.), ce qui est en cours, ce qu’il
reste à faire et ce qui a été terminé. Chaque « sous-histoire » est identifiée comme un Sprint avec un cycle de
temps déterminé.
: Le développement du projet est découpé par bloc de périodes appelés Sprints.
– Un Sprint peut durer entre 1 semaine et 4 semaine et la période est figé au début du projet. Chaque Sprint
commence par une estimation suivie d'une planification opérationnelle via un tableau de bord tel que JIRA. Le
Sprint se termine par une démonstration de ce qui a été achevé et contribue à augmenter la valeur ajoutée du
produit. Les éléments non faits à la fin du Sprint sont intégrés au Sprint suivant.
: Description du déroulement d’un Sprint :
– Développeur :
• Gestion du MCD avec identification des données (DATA DICTIONARY)
• Développement des processus (USE CASE)
• Tests Unitaires (TDD)
– Scrum Master :
• Identification et écriture des processus métiers (USE CASE MODEL) et exigences métiers (BUSINESS RULES)
• Développement des processus (USE CASE)
• Architecture (DAT, DEX, paramétrages, installation, etc.)
– Product Owner :
• Relecture de documents (USE CASE MODEL , USE CASE, BUSINESS RULES) pour validation (PEER REVIEW)
• Ecrire les cas de test métier et valider les processus développés (TEST CASE)
Chaque rôle est interchangeable dans l’équipe Agile côté développement pour chaque Sprint. (Développeurs
et Scrum Master)
Page 10
12. DÉPARTEMENTRESSOURCESETSUPPORTS
Description des étapes d’un SPRINT
Page 12
Scrum Master
Product
Owner
PEER REVIEW
USE CASE
MODEL
Developer
BUSINESS
RULES
USE CASE
DATA
DICTIONARY
TEST CASE
TEST DRIVEN
DEVELOPMENT
PEER
REVIEW
Documentations
(Spécifications)
SPRINT
Développements
Documentations
(Manuel
d’Utilisations,
Documents
Techniques,
Paramétrages, etc.)
13. DÉPARTEMENTRESSOURCESETSUPPORTS
Page 13
Phases de développement
1. Gestion de la Base Entreprise
Création du Portail Métier : il permettra d’accéder à toutes les
informations relative à la Base Entreprise et à la gestion des entreprises,
établissements, cabinets comptable, etc.
14. DÉPARTEMENTRESSOURCESETSUPPORTS
Page 14
Phases de développement
2. Gestion de la collecte des taxes
La gestion du Courrier : permettre la remontée les informations
contenus dans les courriers et d’effectuer les traitements/calculs dans le
Portail Métier, partie Collecte.
15. DÉPARTEMENTRESSOURCESETSUPPORTS
Page 15
Phases de développement
3. Le Site Internet
Le Portail Web: il permet aux entreprises, établissements et cabinets
comptable de se connecter via un identifiant leur permettant d’accéder
aux informations concernant les collectes effectuées et actuelle.
16. DÉPARTEMENTRESSOURCESETSUPPORTS
Page 16
Composition de l’équipe de développement
Team Lead
oGère le projet et son équipe dans son ensemble. (nearShore et Offshore)
oRend compte des activités et de l'avancement des développements au directeur de projet. (Hebdomadaire et mensuel)
Functional Test Lead
oQualifie, valide et gère les demandes Jira du métier
oEcrit et documente les spécifications
oResponsable des tests fonctionnels et de la validation des développements
Admin/Developer Talend, Ws, Agia
oDéveloppe les flux Talend, Web Services, Agia et Kofax ainsi que les bases de données
Developer Business Portal
oDéveloppe le cœur de métier et de lots Kofax pour la Collecte.
oAdministrateur des bases de données - DBA
Developer Web, Alfresco
oDéveloppe le site Internet, des flux CMIS et Web Services d’Alfresco
Developer Web, MySQL
oDéveloppe de la partie Collecte et met en place des processus
Admin Alfresco
oSécurité des environnements et gestion des flux
oAdministration et développements Alfresco
Admin/Exploitation
oAdministre et supervise les environnements et les serveurs
oAnalyse d'impacts et mises à jour des environnements
Dev
Business
Portal
Dev
Web
Mysql
Dev
Web
Alfresco
Team-Lead
Admin
Alfresco
Functional
Test
Lead
Admin/Run
Linux
Dev/Run
Talend
Ws
Agia
18. DÉPARTEMENTRESSOURCESETSUPPORTS
ANNEXES
Fichiers sur les Méthodologies Agile, DDD et matrice des polyvalences
Exemple de USE CASE MODEL (Identification du domaine)
Exemple de USE CASE (Description de la navigation)
Exemple de TEST CASE (Cas d’utilisation et de test)
Exemple d’Algorithme
Exemple de Story Board
Page 18
21. DÉPARTEMENTRESSOURCESETSUPPORTS
Diagramme de cas d’utilisations
Page 21
Modifier les
informations
d’une entreprise
Changer
l’adresse de
l’entreprise A
L’entreprise
A existe
dans BE ?
Informations d’une
entreprise mises à jour
Valider la
modification
Créer
l’entreprise
A
Oui
Non
22. DÉPARTEMENTRESSOURCESETSUPPORTS
Description du domaine pour les cas de Tests
Page 22
Utilisateur
GestionDuLAD (Lot)
GestionEntreprise (NuméroDeSiret)
EncaissementCheque (Entreprise)
Métier
GestionDuLAD (Lot)
CalculDeLaTaxe (NuméroDeSiret, TypeTaxe)
Base
Entreprise
Courrier
0..n 0..nTraite
23. DÉPARTEMENTRESSOURCESETSUPPORTS
Les équipes métier et développement parlent
le même langage
Page 23
Collecte de la Formation Continue
DossierEntreprise dossier
Numero lotCourrier
FC.recuperationNumeroLotCourrier (KOFAX, lotCourrier)
FC.lectureAutomatiqueDesDocuments (KOFAX, GED, lotCourrier)
Si FC.verificationLaddInsatisfasante (WEBCO, GED, lotCourrier)
Alors FC.correctionDesDonnes (WEBCO, GED, lotCourrier)
FinSi
Si FC.rattachementDuDossierPossible (BE, lotCourrier, dossier)
Alors FC.actualisationDesDonnesEntrepriseSiNecessaire (BE, WEBCO, dosssier)
Sinon FC.creationDuDossierDansBE (WEBCO, BE, lotCourrier, dossier)
FinSi
FC.calculDuMontantDuVersement (WEBCO, dossier)
Si FC.calculDuVersementEstIncorrect (WEBCO, dossier)
Alors Evenement.RelanceCourrier (WEBCO, GED, dossier)
FinSi
FC.enregistrementDuDossierDansBE (BE, dossier)
24. DÉPARTEMENTRESSOURCESETSUPPORTS
Exemple de Story Board
Page 24
Story To Do
In
Process To Verify Done
Une entreprise veut
créer un compte
Internet
Une entreprise veut
modifier ses
coordonnées
Code
Formulaire
Code
Données
dans le MCD
Code
charte CSS
Code
Création d’un
compte utilisateur
Test
Les données envoyer
via le formulaire
Code
Messages d’erreur Test
Inscription
Code
Formulaire
Test
Les données envoyer via
le formulaire
Code
Charte CSS
Code
Messages d’erreur
Test
Déjà Inscrit
Code
Provenance
de la
demande
Code
Données
dans le MCD
SPRINTS…
13,5 jh
2
1
1
0,5
4
4
1
2
0,5
0,5
0,5
0,5
0,5 2
6,5 jh
Notes de l'éditeur
USE CASE MODEL : permet de faire un inventaire des états (USE CASE) et d’identifier les ACTORS (rôle)
ACTIVITY DIAGRAM : identifier tous les cas d’utilisation (USE CASE), le flow principal et ses alternatives
Vision du cœur de métier : le modèle du domaine
Comportement d’un composant métier suivant un évènement du domaine