SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Industrialiser PHP
           Open World Forum 2011




23/09/11                           1
Qui suis-je ?
           Jean-Marc Fontaine
           Consultant pour Alter Way Consulting
           Président de l'AFUP (Association Française des Utilisateurs de PHP)
           Auteur du blog Industrialisation-PHP.com
           Co-auteur du livre blanc « Industrialisation PHP »




23/09/11                                                                         2
Livre blanc Industrialisation PHP
           Panorama des outils et méthodes
           d'industrialisation des
           développements PHP
           Publié en octobre 2009
           Plus de 2 500 téléchargements




           Téléchargement : http://www.alterway.fr/publications/livre-blanc-industrialisation-php
           Blog           : http://www.industrialisation-php.com/

23/09/11                                                                                            3
Ordre du jour
           Qu'est-ce que l'industrialisation ?
           Mettre en place un environnement de travail
           Former l'équipe
           Éviter de réinventer la roue
           S'assurer de la qualité du code
           Automatiser ce qui peut l'être
           Ce n'est pas que de la théorie




23/09/11                                                 4
Qu'est-ce que l'industrialisation ?




23/09/11                                         5
Constat
           L'utilisation de PHP en entreprise hors des directions métiers et gouvernée par la DSI
           est relativement récente.


           Les DSI se retrouvent désormais confrontées à différentes problématiques :
             Applicatifs hétérogènes
             Bonnes pratiques de développement non définies ou dépendantes des applicatifs
             Qualité de code disparate
             Base de code non testée de manière automatique
             Pas ou peu d'indicateurs de qualité, de performance, de maintenabilité du code
             Pas de processus unifié sur l'ensemble des acteurs
             Pression continue de la production




23/09/11                                                                                            6
Objectifs
           Gagner du temps en automatisant au maximum toutes les tâches
           récurrentes
           Gagner en qualité (documentation, tests unitaires, normes, respect des
           licences, mutualisation…)
           Gagner en réactivité
           Raccourcir les cycles de mise en production
           Suivre l’évolution des projets par des indicateurs clés




23/09/11                                                                            7
Mise en œuvre
           Pas de solution miracle valable pour tous
           Les outils sont nombreux et dissociés
           Il faut du temps pour les mettre en place et les entretenir
           Un accompagnement est souvent nécessaire




23/09/11                                                                 8
Mettre en place un
           environnement de travail




23/09/11                              9
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)




23/09/11                                                     10
IDE
           Éditeur 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



23/09/11                                                                                       11
Quelques IDE
           Eclipse
           Zend Studio
           Netbeans
           Aptana
           Komodo




23/09/11                 12
Environnements
           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é
             Supervisé pour assurer la qualité de service




23/09/11                                                                        13
Former l'équipe




23/09/11                     14
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
           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)
23/09/11                                                                                         15
Eviter de réinventer la roue




23/09/11                                  16
Eviter de réinventer la roue
           Eviter le syndrôme « Pas inventé ici »
           Se concentrer sur sa valeur ajoutée




23/09/11                                            17
Frameworks
           Ensemble de composants éprouvés et prêts à l'emploi
           Cœur technique des projets
           Simplifient, standardisent et accélèrent les développements
           Imposent des règles strictes de développement




23/09/11                                                                 18
Libraries
           Permettent de rapidement mettre en œuvre des fonctionnalités plus
           spécialisées (Génération d'images, de fichiers PDF, etc.)
           Attention à la qualité et à la pérennité




23/09/11                                                                       19
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




23/09/11                                                                  20
S'assurer de la qualité du code




23/09/11                                     21
Conventions
           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é




23/09/11                                                                                  22
Tests automatisés
           Vérifier l'adéquation de l'application avec les spécifications
           Plusieurs types
             Unitaires (PHPUnit, SimpleTest, Atoum)
             IHM (Selenium, Watir, Sikuli)
             Fonctionnels (GreenPepper)
             De montée en charge (JMeter)
             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



23/09/11                                                                    23
Analyse statique du code
           Analyze du code sans le faire fonctionner
           Permet de :
              Vérifier la syntaxe
              Recueillir des métriques
              Analyser les flux de données
           Outils :
              Cornac (Projet Open Source créé par Alter Way)
              PHP_CodeSniffer
              phploc
              Phpcpd
              PHP_Depend
              PHPMD




23/09/11                                                       24
Intégration continue
           Permet de valider, vérifier au fil de l'eau toutes les modifications
           effectuées sur un code source.
           Permet de limiter les effets négatifs des cycles en V.
           Elle met en œuvre tous les outils et concepts vus précédemment
           Tous les processus sont automatisés
           La qualité du code est en permanence mesurée (couverture des tests
           unitaires et fonctionnels)
           Les indicateurs sont rassemblés dans une interface de présentation
           La documentation est aussi générée automatiquement dans ces processus




23/09/11                                                                           25
23/09/11   26
23/09/11   27
23/09/11   28
Automatiser ce qui peut l'être




23/09/11                                    29
Automatiser ce qui peut l'être
           Évite 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é
             Évite 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




23/09/11                                                                                            30
Outils
           Scripts shell
           Phing / Ant
           Capistrano / Webistrano




23/09/11                             31
Webistrano




23/09/11        32
Ce n'est pas que de la théorie




23/09/11                                    33
Alter Way accompagne ses clients pour industrialiser leurs développements




23/09/11                                                                         34
Parcours de formation de 4 mois :
             Un tronc commun : les stagiaires bénéficieront d’un cursus initiatique dispensé par
             l’entité Formation d’Alter Way (organisme de formation leader sur la formation
             professionnelle Open Source) qui leur permettra d’acquérir une vision globale du
             secteur.
             L’apprentissage d’un métier : à l’issue de ce cursus commun les stagiaires auront la
             possibilité de se diriger vers le métier qui leur convient le mieux : développement,
             technicien système et réseau, recherche & développement, chef de projet web,
             etc.
             La contribution : les stagiaires, encadrés par des collaborateurs seniors,
             participeront aux projets contributifs d’Alter Way.
           http://www.alterway.fr/la-libre-academie



23/09/11                                                                                            35
Des questions ?
           jean-marc.fontaine@alterway.fr




23/09/11                                    36

Contenu connexe

Tendances

Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange LabsEmmanuel Hugonnet
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Ippon
 
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache MavenArnaud Héritier
 
Seminaire Portail Open Source
Seminaire Portail Open SourceSeminaire Portail Open Source
Seminaire Portail Open SourceIppon
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration ContinueFrédéric Sagez
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transcolaurent_opnworks
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Industrialisation des développements Java
Industrialisation des développements JavaIndustrialisation des développements Java
Industrialisation des développements JavaChristian Blavier
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes AgilesIppon
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation MavenSOAT
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Ippon
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileIppon
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Jean-Marc Fontaine
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natifHenri Gomez
 
Intégration continue
Intégration continueIntégration continue
Intégration continueJohan Moreau
 

Tendances (20)

Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
 
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Seminaire Portail Open Source
Seminaire Portail Open SourceSeminaire Portail Open Source
Seminaire Portail Open Source
 
Sonar-Hodson-Maven
Sonar-Hodson-MavenSonar-Hodson-Maven
Sonar-Hodson-Maven
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration Continue
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Industrialisation des développements Java
Industrialisation des développements JavaIndustrialisation des développements Java
Industrialisation des développements Java
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes Agiles
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation Maven
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 
20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 

Similaire à Industrialiser PHP - Open World Forum 2011

SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...
SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...
SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...Sébastien Levert
 
Solutions Linux 2010 - Maîtrise du développement PHP
Solutions Linux 2010 - Maîtrise du développement PHPSolutions Linux 2010 - Maîtrise du développement PHP
Solutions Linux 2010 - Maîtrise du développement PHPJean-Marc Fontaine
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgile Toulouse
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011 ALTER WAY
 
Petit DéJeuner Industrialisation 13 10 2011 Eurosites
Petit DéJeuner Industrialisation 13 10 2011 EurositesPetit DéJeuner Industrialisation 13 10 2011 Eurosites
Petit DéJeuner Industrialisation 13 10 2011 EurositesHervé Leclerc
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimLaurent Broudoux
 
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ? TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ? Christophe HERAL
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outilsAgile Tour 2009 Québec
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement MicrosoftChristophe HERAL
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...PimpMySharePoint
 
Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?Frederic Dewinne
 
Mise en place d'une usine logicielle avec TFS et Test Manager 2010
Mise en place d'une usine logicielle avec TFS et Test Manager 2010Mise en place d'une usine logicielle avec TFS et Test Manager 2010
Mise en place d'une usine logicielle avec TFS et Test Manager 2010Microsoft Technet France
 
MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...
MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...
MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...Raynald M
 
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...Sébastien Levert
 
Drupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet DrupalDrupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet DrupalCore-Techs
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiquesJohan Moreau
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...
La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...
La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...PimpMySharePoint
 
TechDays 2012 - Windows Azure
TechDays 2012 - Windows AzureTechDays 2012 - Windows Azure
TechDays 2012 - Windows AzureJason De Oliveira
 

Similaire à Industrialiser PHP - Open World Forum 2011 (20)

SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...
SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...
SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...
 
Solutions Linux 2010 - Maîtrise du développement PHP
Solutions Linux 2010 - Maîtrise du développement PHPSolutions Linux 2010 - Maîtrise du développement PHP
Solutions Linux 2010 - Maîtrise du développement PHP
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFS
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011
 
Petit DéJeuner Industrialisation 13 10 2011 Eurosites
Petit DéJeuner Industrialisation 13 10 2011 EurositesPetit DéJeuner Industrialisation 13 10 2011 Eurosites
Petit DéJeuner Industrialisation 13 10 2011 Eurosites
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - Ensim
 
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ? TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outils
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
 
Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?
 
Mise en place d'une usine logicielle avec TFS et Test Manager 2010
Mise en place d'une usine logicielle avec TFS et Test Manager 2010Mise en place d'une usine logicielle avec TFS et Test Manager 2010
Mise en place d'une usine logicielle avec TFS et Test Manager 2010
 
MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...
MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...
MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...
 
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
 
Drupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet DrupalDrupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet Drupal
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiques
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...
La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...
La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...
 
TechDays 2012 - Windows Azure
TechDays 2012 - Windows AzureTechDays 2012 - Windows Azure
TechDays 2012 - Windows Azure
 

Plus de Jean-Marc Fontaine

Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012Jean-Marc Fontaine
 
Revue de code - PHP Tour Nantes 2012
Revue de code - PHP Tour Nantes 2012Revue de code - PHP Tour Nantes 2012
Revue de code - PHP Tour Nantes 2012Jean-Marc Fontaine
 
Gérer ses environnements de développement avec Vagrant - RMLL 2012
Gérer ses environnements de développement avec Vagrant - RMLL 2012Gérer ses environnements de développement avec Vagrant - RMLL 2012
Gérer ses environnements de développement avec Vagrant - RMLL 2012Jean-Marc Fontaine
 
La qualité au delà du code - Forum PHP 2012
La qualité au delà du code - Forum PHP 2012La qualité au delà du code - Forum PHP 2012
La qualité au delà du code - Forum PHP 2012Jean-Marc Fontaine
 
Reprise sur incident - RMLL 2011
Reprise sur incident - RMLL 2011Reprise sur incident - RMLL 2011
Reprise sur incident - RMLL 2011Jean-Marc Fontaine
 
Organiser efficacement son dépôt de code - RMLL 2011
Organiser efficacement son dépôt de code - RMLL 2011Organiser efficacement son dépôt de code - RMLL 2011
Organiser efficacement son dépôt de code - RMLL 2011Jean-Marc Fontaine
 
Comment monter son business grâce à l'Open Source ?
Comment monter son business grâce à l'Open Source ?Comment monter son business grâce à l'Open Source ?
Comment monter son business grâce à l'Open Source ?Jean-Marc Fontaine
 
Revues de code - Forum PHP 2010
Revues de code - Forum PHP 2010Revues de code - Forum PHP 2010
Revues de code - Forum PHP 2010Jean-Marc Fontaine
 
PHP 5.3 : Une étape importante sur la route vers PHP 6
PHP 5.3 : Une étape importante sur la route vers PHP 6PHP 5.3 : Une étape importante sur la route vers PHP 6
PHP 5.3 : Une étape importante sur la route vers PHP 6Jean-Marc Fontaine
 
Déboguer une application web avec FirePHP
Déboguer une application web avec FirePHPDéboguer une application web avec FirePHP
Déboguer une application web avec FirePHPJean-Marc Fontaine
 
Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPJean-Marc Fontaine
 

Plus de Jean-Marc Fontaine (12)

Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
 
Revue de code - PHP Tour Nantes 2012
Revue de code - PHP Tour Nantes 2012Revue de code - PHP Tour Nantes 2012
Revue de code - PHP Tour Nantes 2012
 
Gérer ses environnements de développement avec Vagrant - RMLL 2012
Gérer ses environnements de développement avec Vagrant - RMLL 2012Gérer ses environnements de développement avec Vagrant - RMLL 2012
Gérer ses environnements de développement avec Vagrant - RMLL 2012
 
La qualité au delà du code - Forum PHP 2012
La qualité au delà du code - Forum PHP 2012La qualité au delà du code - Forum PHP 2012
La qualité au delà du code - Forum PHP 2012
 
Reprise sur incident - RMLL 2011
Reprise sur incident - RMLL 2011Reprise sur incident - RMLL 2011
Reprise sur incident - RMLL 2011
 
Organiser efficacement son dépôt de code - RMLL 2011
Organiser efficacement son dépôt de code - RMLL 2011Organiser efficacement son dépôt de code - RMLL 2011
Organiser efficacement son dépôt de code - RMLL 2011
 
Comment monter son business grâce à l'Open Source ?
Comment monter son business grâce à l'Open Source ?Comment monter son business grâce à l'Open Source ?
Comment monter son business grâce à l'Open Source ?
 
Revues de code - Forum PHP 2010
Revues de code - Forum PHP 2010Revues de code - Forum PHP 2010
Revues de code - Forum PHP 2010
 
PHP : Etat des lieux
PHP : Etat des lieuxPHP : Etat des lieux
PHP : Etat des lieux
 
PHP 5.3 : Une étape importante sur la route vers PHP 6
PHP 5.3 : Une étape importante sur la route vers PHP 6PHP 5.3 : Une étape importante sur la route vers PHP 6
PHP 5.3 : Une étape importante sur la route vers PHP 6
 
Déboguer une application web avec FirePHP
Déboguer une application web avec FirePHPDéboguer une application web avec FirePHP
Déboguer une application web avec FirePHP
 
Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHP
 

Industrialiser PHP - Open World Forum 2011

  • 1. Industrialiser PHP Open World Forum 2011 23/09/11 1
  • 2. Qui suis-je ? Jean-Marc Fontaine Consultant pour Alter Way Consulting Président de l'AFUP (Association Française des Utilisateurs de PHP) Auteur du blog Industrialisation-PHP.com Co-auteur du livre blanc « Industrialisation PHP » 23/09/11 2
  • 3. Livre blanc Industrialisation PHP Panorama des outils et méthodes d'industrialisation des développements PHP Publié en octobre 2009 Plus de 2 500 téléchargements Téléchargement : http://www.alterway.fr/publications/livre-blanc-industrialisation-php Blog : http://www.industrialisation-php.com/ 23/09/11 3
  • 4. Ordre du jour Qu'est-ce que l'industrialisation ? Mettre en place un environnement de travail Former l'équipe Éviter de réinventer la roue S'assurer de la qualité du code Automatiser ce qui peut l'être Ce n'est pas que de la théorie 23/09/11 4
  • 6. Constat L'utilisation de PHP en entreprise hors des directions métiers et gouvernée par la DSI est relativement récente. Les DSI se retrouvent désormais confrontées à différentes problématiques : Applicatifs hétérogènes Bonnes pratiques de développement non définies ou dépendantes des applicatifs Qualité de code disparate Base de code non testée de manière automatique Pas ou peu d'indicateurs de qualité, de performance, de maintenabilité du code Pas de processus unifié sur l'ensemble des acteurs Pression continue de la production 23/09/11 6
  • 7. Objectifs Gagner du temps en automatisant au maximum toutes les tâches récurrentes Gagner en qualité (documentation, tests unitaires, normes, respect des licences, mutualisation…) Gagner en réactivité Raccourcir les cycles de mise en production Suivre l’évolution des projets par des indicateurs clés 23/09/11 7
  • 8. Mise en œuvre Pas de solution miracle valable pour tous Les outils sont nombreux et dissociés Il faut du temps pour les mettre en place et les entretenir Un accompagnement est souvent nécessaire 23/09/11 8
  • 9. Mettre en place un environnement de travail 23/09/11 9
  • 10. 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) 23/09/11 10
  • 11. IDE Éditeur 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 23/09/11 11
  • 12. Quelques IDE Eclipse Zend Studio Netbeans Aptana Komodo 23/09/11 12
  • 13. Environnements 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é Supervisé pour assurer la qualité de service 23/09/11 13
  • 15. 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 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) 23/09/11 15
  • 16. Eviter de réinventer la roue 23/09/11 16
  • 17. Eviter de réinventer la roue Eviter le syndrôme « Pas inventé ici » Se concentrer sur sa valeur ajoutée 23/09/11 17
  • 18. Frameworks Ensemble de composants éprouvés et prêts à l'emploi Cœur technique des projets Simplifient, standardisent et accélèrent les développements Imposent des règles strictes de développement 23/09/11 18
  • 19. Libraries Permettent de rapidement mettre en œuvre des fonctionnalités plus spécialisées (Génération d'images, de fichiers PDF, etc.) Attention à la qualité et à la pérennité 23/09/11 19
  • 20. 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 23/09/11 20
  • 21. S'assurer de la qualité du code 23/09/11 21
  • 22. Conventions 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é 23/09/11 22
  • 23. Tests automatisés Vérifier l'adéquation de l'application avec les spécifications Plusieurs types Unitaires (PHPUnit, SimpleTest, Atoum) IHM (Selenium, Watir, Sikuli) Fonctionnels (GreenPepper) De montée en charge (JMeter) 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 23/09/11 23
  • 24. Analyse statique du code Analyze du code sans le faire fonctionner Permet de : Vérifier la syntaxe Recueillir des métriques Analyser les flux de données Outils : Cornac (Projet Open Source créé par Alter Way) PHP_CodeSniffer phploc Phpcpd PHP_Depend PHPMD 23/09/11 24
  • 25. Intégration continue Permet de valider, vérifier au fil de l'eau toutes les modifications effectuées sur un code source. Permet de limiter les effets négatifs des cycles en V. Elle met en œuvre tous les outils et concepts vus précédemment Tous les processus sont automatisés La qualité du code est en permanence mesurée (couverture des tests unitaires et fonctionnels) Les indicateurs sont rassemblés dans une interface de présentation La documentation est aussi générée automatiquement dans ces processus 23/09/11 25
  • 26. 23/09/11 26
  • 27. 23/09/11 27
  • 28. 23/09/11 28
  • 29. Automatiser ce qui peut l'être 23/09/11 29
  • 30. Automatiser ce qui peut l'être Évite 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é Évite 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 23/09/11 30
  • 31. Outils Scripts shell Phing / Ant Capistrano / Webistrano 23/09/11 31
  • 33. Ce n'est pas que de la théorie 23/09/11 33
  • 34. Alter Way accompagne ses clients pour industrialiser leurs développements 23/09/11 34
  • 35. Parcours de formation de 4 mois : Un tronc commun : les stagiaires bénéficieront d’un cursus initiatique dispensé par l’entité Formation d’Alter Way (organisme de formation leader sur la formation professionnelle Open Source) qui leur permettra d’acquérir une vision globale du secteur. L’apprentissage d’un métier : à l’issue de ce cursus commun les stagiaires auront la possibilité de se diriger vers le métier qui leur convient le mieux : développement, technicien système et réseau, recherche & développement, chef de projet web, etc. La contribution : les stagiaires, encadrés par des collaborateurs seniors, participeront aux projets contributifs d’Alter Way. http://www.alterway.fr/la-libre-academie 23/09/11 35
  • 36. Des questions ? jean-marc.fontaine@alterway.fr 23/09/11 36