Industrialisation de PHP



Be Zend 2010
Qui suis-je ?

    Jean-Marc Fontaine
    Consultant pour Alter Way Consulting
    Responsable du centre de compétences PHP pour Alter
     Way Solutions
    Formateur pour Alter Way Formation
    Professeur vacataire à l'INSSET de Saint Quentin
    Membre Actif de l'AFUP
    Co-auteur du livre blanc « Industrialisation PHP »




25 mars 2010    ALTER WAY - Industrialisation de PHP       2
Livre blanc « Industrialisation PHP »

    Co-écrit avec Damien Seguy
    Panorama des outils et
     méthodes d'industrialisation
     des développements PHP
    Publié en octobre 2009
    Plus de 1 800 téléchargements
    Livre en préparation




Téléchargement : http://www.alterway.fr/publications/livre-blanc-industrialisation-php
Blog           : http://www.industrialisation-php.com/
25 mars 2010           ALTER WAY - Industrialisation de PHP                              3
Plan

    Qu'est-ce que l'industrialisation ?
    Mettre en place un environnement de travail
    Former l'équipe
    Eviter de réinventer la roue
    S'assurer de la qualité du code
    Automatiser ce qui peut l'être




25 mars 2010    ALTER WAY - Industrialisation de PHP   4
Qu'est-ce que l'industrialisation ?

    PHP a dépassé le stade de l'expérimentation
    Trois phases pour la reconnaissance d'une technologie
     en entreprise :
          la phase de tests
          la phase de missions critiques
          la phase de missions stratégiques




25 mars 2010          ALTER WAY - Industrialisation de PHP   5
Qu'est-ce que l'industrialisation ?

    Une définition : mise en œuvre de pratiques et d'outils
     visant à rendre les logiciels produits plus robustes, tout
     en restant dans des délais et des coûts maîtrisés
    Pas de solution miracle valable pour tous
    Un accompagnement est généralement nécessaire




25 mars 2010     ALTER WAY - Industrialisation de PHP         6
Plan

    Qu'est-ce que l'industrialisation ?
    Mettre en place un environnement de travail
    Former l'équipe
    Eviter de réinventer la roue
    S'assurer de la qualité du code
    Automatiser ce qui peut l'être




25 mars 2010    ALTER WAY - Industrialisation de PHP   7
Dépôt de code

    Facilite le travail en équipe
    Permet d'avoir un historique du code
    Assure la pérennité du code
    Deux approches :
          Dépôts centralisés (CVS, Subversion)
          Dépôts décentralisés (Git, Mercurial, Bazaar)




25 mars 2010          ALTER WAY - Industrialisation de PHP   8
IDE de développement

    Editeur de texte sous stéroïdes
    Fonctions généralement proposées :
          Colorisation syntaxique
          Autocomplétion
          Intégration aux dépôts de code
          Intégration avec un ou plusieurs frameworks
          Débogueur
          Profileur
          Intégration d'outils externes (Tests unitaires, déploiement,
           gestion de base de données, éditeur UML, prototypage, etc.)
    Standardisation des outils
    Intégration dans la chaîne de production




25 mars 2010          ALTER WAY - Industrialisation de PHP                9
Environnements

    Trois types d'environnements classiques :
          Développement
          Pré-production
          Production
    Développement
          En local ou sur un serveur spécialisé
          Débogueur et profileur disponibles
          Affichage des erreurs
    Pré-production
          Identique à la production (performances, configuration, données)
          Permet de recetter les changements
    Production
          Optimisé pour la performance et la sécurité
          Monitoré pour assurer la qualité de service


25 mars 2010          ALTER WAY - Industrialisation de PHP                10
Plan

    Qu'est-ce que l'industrialisation ?
    Mettre en place un environnement de travail
    Former l'équipe
    Eviter de réinventer la roue
    S'assurer de la qualité du code
    Automatiser ce qui peut l'être




25 mars 2010    ALTER WAY - Industrialisation de PHP   11
Former l'équipe

    Formation professionnelle
          Permet de rapidement entrer dans une nouvelle technologie
          Doit être suivie de mise en pratique pour être efficace
          Action ponctuelle
    Veille
          Permet de maintenir et de développer ses connaissances
          Web, livres, magazines, conférences, etc.
          Travail régulier et sur le long terme pour être payant
          Doit être structurée pour être exploitable par la suite
    Mini-conférences internes
          Partage de connaissance au sein de l'équipe
          Valorisation des personnes




25 mars 2010          ALTER WAY - Industrialisation de PHP             12
Former l'équipe

    Programmation en binôme
          Pratique prônée par les méthodes agiles
          Partage informel des connaissances
          Améliore les relations humaines au sein de l'équipe
          Changer régulièrement les binômes
    Revue de code
          Améliore la connaissance du code
          Favorise la collaboration et le partage des connaissances
          Peut être rendue difficile par des aspects humains (timidité,
           orgueil, manque de tact)




25 mars 2010          ALTER WAY - Industrialisation de PHP                 13
Plan

    Qu'est-ce que l'industrialisation ?
    Mettre en place un environnement de travail
    Former l'équipe
    Eviter de réinventer la roue
    S'assurer de la qualité du code
    Automatiser ce qui peut l'être




25 mars 2010    ALTER WAY - Industrialisation de PHP   14
Eviter de réinventer la roue




« Si j'ai vu plus loin que les autres,
c'est parce que j'ai été porté par
des épaules de géants. »
Isaac Newton



25 mars 2010    ALTER WAY - Industrialisation de PHP   15
Eviter de réinventer la roue

    Eviter le syndrôme « Pas inventé ici »
    Se concentrer sur sa valeur ajoutée
    Frameworks
          Permettent de standardiser et d'accélérer les développements en
           donnant un cadre de travail
    Librairies
          Permettent de rapidement mettre en œuvre des fonctionnalités
           plus spécialisées (Génération d'images, de fichiers PDF, etc.)
    Design patterns
          Solutions éprouvées à des problèmes récurrents
          Capitalise sur l'expérience de 40 ans de programmation
          Permet de mettre un nom sur une problématique et sa solution




25 mars 2010          ALTER WAY - Industrialisation de PHP                   16
Plan

    Qu'est-ce que l'industrialisation ?
    Mettre en place un environnement de travail
    Former l'équipe
    Eviter de réinventer la roue
    S'assurer de la qualité du code
    Automatiser ce qui peut l'être




25 mars 2010    ALTER WAY - Industrialisation de PHP   17
Conventions de codage et d'architecture

    Conventions de codage
          Chacun a ses habitudes
          Des conventions pour que la forme ne brouille pas la
           compréhension du fond
          Choisir une convention existante
    Conventions d'architecture
          Définition d'une structure normative pour les projets
          Permet un démarrage plus rapide des projets
          Permet une meilleure intégration dans les processus de suivi de la
           qualité




25 mars 2010          ALTER WAY - Industrialisation de PHP                  18
Tests automatisés

    Vérifier l'adéquation de l'application avec les
     spécifications
    Plusieurs types
          Unitaires
          IHM
          Fonctionnels,
          De montée en charge
          Etc.
    Peuvent et doivent être lancés aussi souvent de
     possible
    Pas d'intervention humaine complexe pour les lancer
    Remontée d'alertes en cas de violation des
     spécifications
    Permet le suivi dans le temps de la qualité du projet


25 mars 2010         ALTER WAY - Industrialisation de PHP    19
Intégration continue

    Concept lié aux méthodes agiles
    Plus l'intégration des nouveaux développements est
     régulière moins elle est coûteuse
    Automatisation processus
    Permet de s'assurer de la qualité du projet avant
     recette manuelle et déploiement en production
    Actions courantes :
          Exécution des tests
          Vérification des conventions de codage
          Extraction de métriques (nombre de tests, couverture de code,
           taille du code, etc.)
          Génération des documentations (technique, utilisateur)




25 mars 2010          ALTER WAY - Industrialisation de PHP                 20
Plan

    Qu'est-ce que l'industrialisation ?
    Mettre en place un environnement de travail
    Former l'équipe
    Eviter de réinventer la roue
    S'assurer de la qualité du code
    Automatiser ce qui peut l'être




25 mars 2010    ALTER WAY - Industrialisation de PHP   21
Automatiser ce qui peut l'être

    Evite des tâches nécessaires mais répétitives,
     fastidieuses et à faible valeur ajoutée
    Génération de code
          Permet de standardiser le code de l'application
          Permet de rendre plus vite autonome une nouvelle personne
    Déploiement automatisé
          Evite les erreurs humaines
          Assure que toutes les étapes seront faites et dans le bon ordre
          Permet de déployer plus vite et sur de nombreux serveurs en
           parallèle
    Tâches répétitives
          Création de dépôt de code pour un nouveau projet
          Création de branches et de tags
          Empaquetage de version


25 mars 2010          ALTER WAY - Industrialisation de PHP                   22
Merci

    Me contacter :
     jean-marc.fontaine@alterway.fr
    Des questions ?




Présentation : http://www.slideshare.net/jmf/industrialisation-de-php-be-zend-2010-3540633
Livre blanc : http://www.alterway.fr/publications/livre-blanc-industrialisation-php
Blog         : http://www.industrialisation-php.com/

25 mars 2010          ALTER WAY - Industrialisation de PHP                           23

Industrialisation de PHP - Be Zend 2010

  • 1.
  • 2.
    Qui suis-je ?  Jean-Marc Fontaine  Consultant pour Alter Way Consulting  Responsable du centre de compétences PHP pour Alter Way Solutions  Formateur pour Alter Way Formation  Professeur vacataire à l'INSSET de Saint Quentin  Membre Actif de l'AFUP  Co-auteur du livre blanc « Industrialisation PHP » 25 mars 2010 ALTER WAY - Industrialisation de PHP 2
  • 3.
    Livre blanc «Industrialisation PHP »  Co-écrit avec Damien Seguy  Panorama des outils et méthodes d'industrialisation des développements PHP  Publié en octobre 2009  Plus de 1 800 téléchargements  Livre en préparation Téléchargement : http://www.alterway.fr/publications/livre-blanc-industrialisation-php Blog : http://www.industrialisation-php.com/ 25 mars 2010 ALTER WAY - Industrialisation de PHP 3
  • 4.
    Plan  Qu'est-ce que l'industrialisation ?  Mettre en place un environnement de travail  Former l'équipe  Eviter de réinventer la roue  S'assurer de la qualité du code  Automatiser ce qui peut l'être 25 mars 2010 ALTER WAY - Industrialisation de PHP 4
  • 5.
    Qu'est-ce que l'industrialisation?  PHP a dépassé le stade de l'expérimentation  Trois phases pour la reconnaissance d'une technologie en entreprise :  la phase de tests  la phase de missions critiques  la phase de missions stratégiques 25 mars 2010 ALTER WAY - Industrialisation de PHP 5
  • 6.
    Qu'est-ce que l'industrialisation?  Une définition : mise en œuvre de pratiques et d'outils visant à rendre les logiciels produits plus robustes, tout en restant dans des délais et des coûts maîtrisés  Pas de solution miracle valable pour tous  Un accompagnement est généralement nécessaire 25 mars 2010 ALTER WAY - Industrialisation de PHP 6
  • 7.
    Plan  Qu'est-ce que l'industrialisation ?  Mettre en place un environnement de travail  Former l'équipe  Eviter de réinventer la roue  S'assurer de la qualité du code  Automatiser ce qui peut l'être 25 mars 2010 ALTER WAY - Industrialisation de PHP 7
  • 8.
    Dépôt de code  Facilite le travail en équipe  Permet d'avoir un historique du code  Assure la pérennité du code  Deux approches :  Dépôts centralisés (CVS, Subversion)  Dépôts décentralisés (Git, Mercurial, Bazaar) 25 mars 2010 ALTER WAY - Industrialisation de PHP 8
  • 9.
    IDE de développement  Editeur de texte sous stéroïdes  Fonctions généralement proposées :  Colorisation syntaxique  Autocomplétion  Intégration aux dépôts de code  Intégration avec un ou plusieurs frameworks  Débogueur  Profileur  Intégration d'outils externes (Tests unitaires, déploiement, gestion de base de données, éditeur UML, prototypage, etc.)  Standardisation des outils  Intégration dans la chaîne de production 25 mars 2010 ALTER WAY - Industrialisation de PHP 9
  • 10.
    Environnements  Trois types d'environnements classiques :  Développement  Pré-production  Production  Développement  En local ou sur un serveur spécialisé  Débogueur et profileur disponibles  Affichage des erreurs  Pré-production  Identique à la production (performances, configuration, données)  Permet de recetter les changements  Production  Optimisé pour la performance et la sécurité  Monitoré pour assurer la qualité de service 25 mars 2010 ALTER WAY - Industrialisation de PHP 10
  • 11.
    Plan  Qu'est-ce que l'industrialisation ?  Mettre en place un environnement de travail  Former l'équipe  Eviter de réinventer la roue  S'assurer de la qualité du code  Automatiser ce qui peut l'être 25 mars 2010 ALTER WAY - Industrialisation de PHP 11
  • 12.
    Former l'équipe  Formation professionnelle  Permet de rapidement entrer dans une nouvelle technologie  Doit être suivie de mise en pratique pour être efficace  Action ponctuelle  Veille  Permet de maintenir et de développer ses connaissances  Web, livres, magazines, conférences, etc.  Travail régulier et sur le long terme pour être payant  Doit être structurée pour être exploitable par la suite  Mini-conférences internes  Partage de connaissance au sein de l'équipe  Valorisation des personnes 25 mars 2010 ALTER WAY - Industrialisation de PHP 12
  • 13.
    Former l'équipe  Programmation en binôme  Pratique prônée par les méthodes agiles  Partage informel des connaissances  Améliore les relations humaines au sein de l'équipe  Changer régulièrement les binômes  Revue de code  Améliore la connaissance du code  Favorise la collaboration et le partage des connaissances  Peut être rendue difficile par des aspects humains (timidité, orgueil, manque de tact) 25 mars 2010 ALTER WAY - Industrialisation de PHP 13
  • 14.
    Plan  Qu'est-ce que l'industrialisation ?  Mettre en place un environnement de travail  Former l'équipe  Eviter de réinventer la roue  S'assurer de la qualité du code  Automatiser ce qui peut l'être 25 mars 2010 ALTER WAY - Industrialisation de PHP 14
  • 15.
    Eviter de réinventerla roue « Si j'ai vu plus loin que les autres, c'est parce que j'ai été porté par des épaules de géants. » Isaac Newton 25 mars 2010 ALTER WAY - Industrialisation de PHP 15
  • 16.
    Eviter de réinventerla roue  Eviter le syndrôme « Pas inventé ici »  Se concentrer sur sa valeur ajoutée  Frameworks  Permettent de standardiser et d'accélérer les développements en donnant un cadre de travail  Librairies  Permettent de rapidement mettre en œuvre des fonctionnalités plus spécialisées (Génération d'images, de fichiers PDF, etc.)  Design patterns  Solutions éprouvées à des problèmes récurrents  Capitalise sur l'expérience de 40 ans de programmation  Permet de mettre un nom sur une problématique et sa solution 25 mars 2010 ALTER WAY - Industrialisation de PHP 16
  • 17.
    Plan  Qu'est-ce que l'industrialisation ?  Mettre en place un environnement de travail  Former l'équipe  Eviter de réinventer la roue  S'assurer de la qualité du code  Automatiser ce qui peut l'être 25 mars 2010 ALTER WAY - Industrialisation de PHP 17
  • 18.
    Conventions de codageet d'architecture  Conventions de codage  Chacun a ses habitudes  Des conventions pour que la forme ne brouille pas la compréhension du fond  Choisir une convention existante  Conventions d'architecture  Définition d'une structure normative pour les projets  Permet un démarrage plus rapide des projets  Permet une meilleure intégration dans les processus de suivi de la qualité 25 mars 2010 ALTER WAY - Industrialisation de PHP 18
  • 19.
    Tests automatisés  Vérifier l'adéquation de l'application avec les spécifications  Plusieurs types  Unitaires  IHM  Fonctionnels,  De montée en charge  Etc.  Peuvent et doivent être lancés aussi souvent de possible  Pas d'intervention humaine complexe pour les lancer  Remontée d'alertes en cas de violation des spécifications  Permet le suivi dans le temps de la qualité du projet 25 mars 2010 ALTER WAY - Industrialisation de PHP 19
  • 20.
    Intégration continue  Concept lié aux méthodes agiles  Plus l'intégration des nouveaux développements est régulière moins elle est coûteuse  Automatisation processus  Permet de s'assurer de la qualité du projet avant recette manuelle et déploiement en production  Actions courantes :  Exécution des tests  Vérification des conventions de codage  Extraction de métriques (nombre de tests, couverture de code, taille du code, etc.)  Génération des documentations (technique, utilisateur) 25 mars 2010 ALTER WAY - Industrialisation de PHP 20
  • 21.
    Plan  Qu'est-ce que l'industrialisation ?  Mettre en place un environnement de travail  Former l'équipe  Eviter de réinventer la roue  S'assurer de la qualité du code  Automatiser ce qui peut l'être 25 mars 2010 ALTER WAY - Industrialisation de PHP 21
  • 22.
    Automatiser ce quipeut l'être  Evite des tâches nécessaires mais répétitives, fastidieuses et à faible valeur ajoutée  Génération de code  Permet de standardiser le code de l'application  Permet de rendre plus vite autonome une nouvelle personne  Déploiement automatisé  Evite les erreurs humaines  Assure que toutes les étapes seront faites et dans le bon ordre  Permet de déployer plus vite et sur de nombreux serveurs en parallèle  Tâches répétitives  Création de dépôt de code pour un nouveau projet  Création de branches et de tags  Empaquetage de version 25 mars 2010 ALTER WAY - Industrialisation de PHP 22
  • 23.
    Merci  Me contacter : jean-marc.fontaine@alterway.fr  Des questions ? Présentation : http://www.slideshare.net/jmf/industrialisation-de-php-be-zend-2010-3540633 Livre blanc : http://www.alterway.fr/publications/livre-blanc-industrialisation-php Blog : http://www.industrialisation-php.com/ 25 mars 2010 ALTER WAY - Industrialisation de PHP 23