• Save
PHP : Une Plateforme Industrialisable Au Service De L'Agilité
Upcoming SlideShare
Loading in...5
×
 

PHP : Une Plateforme Industrialisable Au Service De L'Agilité

on

  • 6,395 views

Puisque je suis dans les présentations en ce moment, j'ai décidé de refactorer un draft de présentation que j'avais réalisé pour l'Université du Système d'Information et que finalement j'avais ...

Puisque je suis dans les présentations en ce moment, j'ai décidé de refactorer un draft de présentation que j'avais réalisé pour l'Université du Système d'Information et que finalement j'avais abandonné pour une version plus "light". Attention, c'est une histoire, beaucoup de texte, pressé s'abstenir... ou presque ;)

Statistics

Views

Total Views
6,395
Views on SlideShare
3,730
Embed Views
2,665

Actions

Likes
9
Downloads
0
Comments
0

18 Embeds 2,665

http://www.willdurand.fr 1558
http://willdurand.fr 365
http://blog.phppro.fr 316
http://www.phppro.fr 240
http://phppro.fr 93
http://www.bonbudget.com 45
http://www.scoop.it 12
http://www.slideshare.net 9
http://localhost 7
http://translate.googleusercontent.com 5
http://www.linkedin.com 4
https://demo.cms.zeni.fr 3
http://webcache.googleusercontent.com 3
https://www.lesnuanceurs.com 1
http://192.168.19.1 1
http://rss.knah-tsaeb.org 1
http://feeds.feedburner.com 1
https://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

PHP : Une Plateforme Industrialisable Au Service De L'Agilité PHP : Une Plateforme Industrialisable Au Service De L'Agilité Presentation Transcript

  • Agile
    Software
    INSIDE
    Une plateforme industrialisableau service de l’Agilité
    Olivier Hoareau – PHPPRO
    28 Septembre 2009
    www.phppro.fr
  • A FAIRE
    EN COURS
    FINI
    Tour de
    Table
    Agilité ?
    5’
    5’
    Il étaitune fois…
    PHP ?
    30’
    5’
    PHP =
    Agile !
    ?
    5’
    10’
  • A FAIRE
    EN COURS
    FINI
    Tour de
    Table
    Agilité ?
    5’
    5’
    Il étaitune fois…
    PHP ?
    30’
    5’
    PHP =
    Agile !
    ?
    5’
    10’
  • Qui suis-je ?
    Animateur Méthodologies Agiles
    Animateur Equipes Technique
    Expert Certifié PHP 5
    Consultant Indépendant (PHPPRO)
    10 ans de développement Web/PHP/OSS
    5 ans de projets Grands Comptes
    2 ans de Coaching Agile
    Bordeaux / Paris / Montpellier…
    Bloggeur / AFUP / Conférencier
  • qui êtes-vous ?
  • A FAIRE
    EN COURS
    FINI
    Tour de
    Table
    Agilité ?
    5’
    5’
    Il étaitune fois…
    PHP ?
    30’
    5’
    PHP =
    Agile !
    ?
    5’
    10’
  • La philosophie « agile »
    Servir avant tout la satisfaction client
    Livrer une application qui fonctionne / est utile
    Travailler ensemble
    Privilégiez les interactions entre les personnes
    Collaborer plutôt que contractualiser
    S’adapter constamment plutôt que suivre un plan
    Livrer régulièrement, un logiciel n’est jamais fini
    Faire (toujours le plus) simple
    S’améliorer constamment (feedback)
    Cultiver la motivation
    Source : Agile Manifesto, http://agilemanifesto.org/
  • Les pratiques agiles
    Itération / Sprint
    Stand Up Meeting (10min: quotidien, même heure, debout)
    Engagement / Responsabilisation
    TDD : Test DrivenDevelopment
    Pair Programming
    « Commits » sur barre verte
    Refactoring
    Intégration Continue
    Design Patterns
    TDR : Test DrivenRequirements
    LEAN : Amélioration des Processus
    Dojo

  • A FAIRE
    EN COURS
    FINI
    Tour de
    Table
    Agilité ?
    5’
    5’
    Il étaitune fois…
    PHP ?
    30’
    5’
    PHP =
    Agile !
    ?
    5’
    10’
  • PHP : kezako ?
    Langage de programmation de script dynamique(interprété)
    Engendré par le web, exploitéaussidans le SI
    Plus de 15 ansd’existence
    5 millions de développeurs
    Procédural (> 1000 fonctions) et Objet (>300 interfaces)
    3ième technologieaprès Java et C/C++ (Tiobe)
    Langage de script préféré des développeurs
    50 % des serveurs web mondiaux
    200 AO du gouvernementFrançais
    1500 contributeurs
    100 % CAC 40, 90 % fortune 500 et 2000
    45% des sites Web en France
    30 conférencesinternationales par an

    Source : « Oui ! PHP est industriel ! », Damien Seguy, Olivier Hoareau
  • Au commencement, il y avait ça !Chez nous, chez vous, partout !
    Pas beau + Pas maintenable + Pas robuste + Pas testable + Pas « WHATEVER youwant »
  • Maintenant PHP c’est aussi ça !
  • Mais surtout, PHP c’est…
    Démarrer
    Simplement
    Démarrer
    Rapidement
    Monter en complexité à votre rythme
  • A FAIRE
    EN COURS
    FINI
    Tour de
    Table
    Agilité ?
    5’
    5’
    Il étaitune fois…
    PHP ?
    30’
    5’
    PHP =
    Agile !
    ?
    5’
    10’
  • Il était une fois…
    Damien, qui est ingénieur et travaille chez X depuis plusieurs années, et qui a la charge développer une application innovante pour son employeur.
    Olivier, qui est ingénieur et viens d’arriver chez X depuis quelques semaines, il connait encore peu le fonctionnement chez X, et doit travailler avec Damien
    Tous les deux doivent réaliser une application innovante dans un délai assez court (quelques semaines), dont l’enjeu semble à première vue sans importance pour l’entreprise…
    * Toute ressemblance ne serait que fortuite…
  • Oui mais…
    Damien de part son expérience connait bien les technologies traditionnelles du Système d’Information de X : Java, .NET, C++…
    Olivier quant à lui ayant plutôt travaillé dans le domaine du web, n’est pas très à l’aise avec ces technologies…
    Il y a bien une technologie avec laquelle Olivier pourrait réaliser l’application, mais ce n’est ni Java ni .NET : c’est PHP
    Damien se souvient avoir fait un peu de PHP pour son site internet personnel, à l’époque il avait trouvé ce langage assez abordable, mais est-ce une vraie technologie professionnelle ?
    De toute façon, il n’a pas trop le choix car Olivier ne maîtrise pas suffisamment les technologies traditionnelles de son entreprise et il doit « sortir » l’application rapidement : Banco pour PHP !
    De toute façon, Damien se dit qu’il s’agit encore d’une de ses applications « jetables » que tout le monde aura oublié 6 mois après la fin du projet…
  • Acte IFaire (vite)
  • « Je code sous VI (« vi-aille ») »
    Damien: « Bon, j’ai écrit les specs de l’appli dans ce document word sur le partage réseau, tu vas le lire ce matin, me poser tes questions en début d’après-midi et commencer à développer cette après-midi, de toute façon il faut qu’on y aille »
    Olivier: « Pas de problème ! J’ai déjà lu le doc rapidement, j’ai récupéré les codes d’accès FTP, créé mon fichier index.php qui fait « hello world » sur le serveur, je suis prêt, tu peux y accéder avec ton navigateur à cette adresse http://... !
  • « Délai tenus »
    Voix Off: Quelques semaines plus tard…
    Damien: « Bravo Olivier ! J’ai vu Robert hier, avec ces 2 collègues ils ont regardés ton appli, bon ils ont quelques remarques mais globalement ils sont content car c’est simple et très rapide et ils peuvent commencer à l’utiliser »
    Olivier: « Merci ;) Oui Robert m’a appelé hier matin, j’ai dû modifier un ou deux trucs sur l’écran principal et changer des libellés qui n’étaient pas clair, 3-4 lignes de code PHPpar contre j’ai noté pas mal d’améliorations qu’ils demandent, tout seul ca va être long pour moi…
    Damien: « J’en ai parlé au patron, il y a Adrien le nouveau stagiaire, qui a fait un peu de PHP à l’école, qui vient t’aider dès demain matin, tu pourras lui montrer comment l’appli tourne et lui montrer ton code pour qu’il t’aide
  • Résumé Acte I« Faire vite avec les moyens du bord »
    Equipe
    1 développeur
    1 chef de projet
    Quelques utilisateurs
    Développements
    « VI », Editeur PHP / Texte
    Navigateur Web
    Déploiement
    Edition directe en prod
    FTP manuel
    Exécution
    (Poste local)
    Serveur mutualisé
    Méthodologie
    Aucune ou marginale
    Caractéristique
    Chaotique
    Relation Utilisateurs
    Orale
    Age Projet
    Nouveau-né
    Niveau de service
    Mono-service
    Satisfaction client
    Haute: « C’est simple mais rapide ! »
  • Acte IOutillage
    Editeur et IDE (Environnement de développement intégrés)
    Notepad, VI, Notepad++, Emacs, Komodo, PHPEdit…
    Navigateurs Web
    Internet Explorer 6-7-8, Firefox 3, Google Chrome, Safari, Opera
    Client FTP et SCP
    FileZilla FTP Client, WinSCP,…
    Plateforme de développement
    PHP 5.2+ (5.2.11 actuellement)
  • Acte IIFaire à plusieurs
  • « J’utilise Subversion »
    Voix Off: Une semaine plus tard…
    Damien: « Alors ca avance avec Adrien ? »
    Olivier: « Oui ! On a mis en place une gestion de source via Subversion pour se synchroniser, Adrien m’a montré Eclipse PDT 2et son support de PHP que je commence à utiliser et on fait tourner l’appli sur notre poste de développeur via WAMP Server »
    Damien: « Vous perdez pas trop de temps avec tout ça ? »
  • « Je fais des tests (pas encore unitaires) »
    Olivier: « Ca nous a pris seulement une demi-journée ! Par contre, je me rends compte que certaines partie sont à réécrire, on en a discuté avec Adrien et on va simplifier le code. Mais pour éviter de rajouter trop de bugs on est en train de coder 1 ou 2 tests de PHPTpour vérifier que tout se passe bien…»
    Damien: « Au fait, le service DDRAQ à commencé à utiliser votre appli, ils sont environ une quarantaine, j’ai une liste de bugs je les mets où ? Et ils m’ont demandé une doc, j’ai envoyé les specs v1.12, c ’est la bonne ? C’est celle que j’ai testé la semaine dernière suite à votre livraison… Et puis il y a 2 autres développeurs du service R&D qui aime bien PHP qui vont vous aider ce mois-ici !
    Olivier: « On t’a mis en place Mantis pour les bugs, si tu veux on te montre… »
  • « On veut faire mieux »
    Olivier: « On aimerait bien utiliser un framework et faire des tests plus automatisés, mais on est pas expert… On pourrait y arriver mais on sait pas trop par quel bout le prendre pour notre projet »
    Damien: « J’ai entendu parlé de ces coach techlead qui viennent vous aider à mettre en place une usine de développement en quelques jours lors d’un séminaire, je vais voir avec le patron si je peux pas en faire venir un rapidement pour vous aider à mettre en place tout ça…
    Olivier: « On a regardé un peu le Zend Framework et Symfony, et on a posé quelques questions sur la mailing list de l’AFUP. On ne sait pas trop lequel choisir… Pareil entre SimpleTest et PHPUnit, leur aide nous serait précieuse ! »
  • Résumé Acte II« S’organiser, à plusieurs »
    Equipe
    2-3 développeurs
    1 chef de projet
    Quelques dizaines d’utilisateurs
    Développements
    Editeur PHP, Eclipse-like, VI
    WAMP-like
    Déploiement
    FTP / SCP scripté
    Exécution
    Poste local
    Serveur mutualisé
    Méthodologie
    Cycle Cascade
    Caractéristique
    Actif
    Relation Utilisateurs
    Email
    Age Projet
    Enfant
    Niveau de service
    Plusieurs services
    Satisfaction client
    Haute: « On me prends au sérieux, on m’écoute ! »
  • Acte IIOutillage
    Les outils du Niveau 0 avec en plus :
    Editeur et IDE (Environnement de développement intégrés)
    Eclipse PDT 2.0 (Open Source), Zend Studio for Eclipse 7+ (Commercial)
    Gestion de sources
    Subversion 1.6+
    Plateforme de développement
    L(inux)AMP / W(indows)AMP / M(ac)AMP : Apache 2.2+, MySQL 5.1+, PHP 5.2+
    WAMP Server 5+, Zend Server Community Edition, EasyPHP
  • Acte IIIFaire de la qualité
  • « Notre nouvelle usine de développement open source »
    Voix Off: Le Coach Tech Lead PHP est rapidement venu et à aidé Olivier, Adrien et les autres développeurs à commencer à mettre en place une usine de développement adaptées à leurs besoins, contraintes et façon de travailler, qui sera basée (progressivement, et à leur rythme) sur :
    PHP 5 (Procédural et Objet)
    SVN
    Tests Unitaires (ex: PHPUnit)
    Intégration Continue (ex: Hudson + Phing)
    Bug Tracker (ex: Mantis)
    Framework Socle (ex: Zend Framework, ExtJS)
    Dépôt central pour stocker les releases (ex: PEAR Channel)
    Tests fonctionnels exécutables (ex: Fitnesse)
    Tests IHM (ex: Selenium)
    Rapports Qualité (ex: Métriques de PHPUnit, PHPLOC, PHPMD, PHPCS…)
    Voix Off: Grâce à l’UDD* on peut faire ressortir plus facilement des briques réutilisables sous forme de services, on créé une librairie maison car d’autres projets ont des besoins similaires…
    *Usine de développement
  • « Framework, Tests Unitaires et Intégration Continue »
    Damien: « Alors ces nouveaux outils, vous vous en sortez ? »
    Olivier: « Oui ! C’est très intéressant, quand on commit sur SVN, on a des tests qui sont joués automatiquement et on reçois des mails quand il y a un problème ! »
    Damien: « Et cette nouvelle méthodologie agile, comment vous trouvez? »
    Olivier: « C’est pas mal, en plus on fait les tests avant de coder grâce au coach ! D’ailleurs on aura plein de trucs à vous montrer lors du bilan d’itération de vendredi, on est train d’installer Fitnesse pour que tu écrives les fonctionnalités dans le wiki ca sera mieux qu’un document word qui n’est pas à jour !»
  • Résumé Acte III« Une vraie usine de développement »
    Equipe
    3 à 10 développeurs
    1 Product Owner
    0 à 1 Scrum Master ou éq.
    Quelques centaines d’utilisateurs
    Développements
    Tests Unitaires / Fonctionnels
    Librairie(s) maison
    Déploiement
    Edition directe en prod
    FTP manuel
    Exécution
    Plusieurs serveurs en prod
    Méthodologie
    Itérative (XP / Scrum…)
    Caractéristique
    Efficace
    Relation Utilisateurs
    Documentation Wiki
    Age Projet
    Adolescent
    Niveau de service
    Clients / Utilisateurs
    Satisfaction client
    Haute: « Je peux me passer de cahier des charges ! »
  • Acte IIIOutillage
    Les outils du Niveau 1 avec en plus :
    Tests Unitaires PHP
    PHPUnit 3.4+, SimpleTest
    Tests Unitaires Javascript
    JSUnit
    Frameworks
    Zend Framework 1.8+, Symfony 1.2+, CodeIgniter, CakePHP, Doctrine, …
    Intégration Continue
    PHPUnderControl (CruiseControl + Plugin), Hudson, Xinc, Sonar
    Tests Fonctionnels exécutables
    Fitnesse + PHPFit, GreenPepper + PHPSud
    BugTracking
    JIRA (Commercial), Mantis, FlySpray, …
    Dépôt centralisé
    PEAR (channel), Maven 2
    Outils de métriques qualités
    PHP Code Sniffer, PHP Mess Detector, PHP Depend, PHP Copy / Paste Detector PHP LOC, PHP Code Ratio, PHP Tree Match,…
  • Acte IVMontrer et tirer partie de la qualité
  • « Apprendre de nos erreurs, s’améliorer sans cesse et mettre la barre toujours plus haut »
    Voix Off: Quelques mois plus tard…
    Damien: « J’ai vu que vous aviez 250 erreurs de convention de codage sur la couche services, vous pensez les traiter ? »
    Olivier: « Oui, on vient de rajouter une règle de plus dans le système de vérification de la qualité de code, on met à jour nos conventions cette semaine ! Tu vois tout ! »
    Damien: « Vous avez remarqué les temps de chargement sur les pages ? Ca devient un peu long non ? »
    Olivier: « On doit mettre en place le composant Cache du framework, on devra gagner 300% à la prochaine mise en prod . Pour le déploiement on vient de mettre en place Capistrano, ca nous facilite le déploiement sur les 3 serveurs, c’est fait automatiquement maintenant depuis hudson »
  • « Mesurer la qualité et l’usage pour maîtriser le projet sur le long terme »
    Damien: « Donc faisons le point, 100% des 548 tests unitaires passent au vert, 25 tests fonctionnels restent à coder pour la fin de l’itération, 50 violations de conventions de codage sont à rectifier, … tiens, je vois un taux de complexité accrue sur cette partie du code, c’est normal ?  »
    Olivier: « Tu as raison, on a vus ça avec l’équipe, on doit complètement recoder cette partie, lors de la prochaine itération, on est au courant, on estime ça à une complexité de 7 sur notre échelle habituelle. On profitera des évolutions sur les user story X et Y pour le faire»
    Damien: « L’équipe de production vient de finir de paramétrer la nouvelle plateforme de production, l’installation sera faite demain matin, on devrait passer dans une autre dimension en terme de performance ! »
    Olivier: « Depuis qu’on propose l’application en marque blanche c’est vrai qu’on a un accroissement de 20% du nombre d’utilisateur par mois, d’ici à la fin de l’année, il faudra peut être penser à des solutions comme Amazon ElasticComputing, non ? »
  • Résumé Acte IV« Une application réellement utilisée sur laquelle je capitalise »
    Equipe
    > 10 développeurs
    plusieurs Product Owner
    1 Scrum Master ou éq.
    Plusieurs milliers d’utilisateurs
    Développements
    Librairie(s) métier
    Tests fonctionnels
    Déploiement
    Automatisé
    Exécution
    > 3 serveurs
    HA, Failover, Equilibrage, Cache, système de pré-prod
    Méthodologie
    Itérative parallélisée sur plusieurs projets
    Caractéristique
    Réactif
    Relation Utilisateurs
    Articles, Blog, Feed RSS
    Age Projet
    Adule (raisonné, raisonnable)
    Niveau de service
    API Publique, Marque Blanche, Plateforme pour d’autres
    Satisfaction client
    Haute: « Ca tiens la charge ! »
  • Acte IVOutillage
    Les outils du Niveau 2 avec en plus :
    Tests IHM
    Selenium RC, SimpleTest
    Déploiement automatisé
    Capistrano + SSH, Hudson/CruiseControl + Phing, PEAR + SSH
    Modules de Frameworks
    Cache, …
  • Acte VDépasser les frontières de l’entreprise
  • « Partager son savoir pour grandir ensemble »
    Damien: « Le Subversion et le channel/dépôt PEAR publics sont opérationnels ? »
    Olivier: « Oui, Tim de Hollande commit déjà dessus, Le Projet SourceForge est accessible en ligne, on a déjà eu 15 tickets de bugs, et 5000 téléchargements, ca va vite ! Le projet Symfony via d’intégrer notre plugin de gestion de XYZ »
    Olivier: « On a conçu un nouveau processus de déploiement qui devrait nous permettre de déployer en continue sur un commit, si tous les tests sont verts, ca permettra d’être extrêmement réactif et de mettre en prod dans la journée les traitements de bug et évolutions, on pourrait peut être faire des itérations d’une semaine ? car à chaque fois on est finalement obligé d’attendre 2 semaines pour livrer les évolutions aux clients… »
    Damien: « Vous êtes fort les gars ! Au fait, le contrat avec Amazon est ok, on aura les identifiants pour créer les machines virtuelles du cloud dans la journée, préparez le champagne ! »
  • Résumé Acte V« Être un acteur incontournable du marché, de la communauté »
    Equipe
    > 10 développeurs
    >1 Product Owner
    >=1 Scrum Master ou éq.
    > 1000 utilisateurs
    Communauté Open Source
    Développements
    SVN Public
    API Publique, RFC
    Déploiement
    En continue
    Exécution
    Cloud Computing
    Amazon, …
    Méthodologie
    Itérative et Open Source
    Caractéristique
    Proactif
    Relation Utilisateurs
    Listes de diffusions, News Groups, Séminaires
    Age Projet
    Mûr (établi, sur de soi)
    Niveau de service
    Du code source libre
    Satisfaction client
    Haute: « Je vais pouvoir l’intégrer avec mon autre application… !»
  • Acte VOutillage
    Les outils du Niveau 3 avec en plus :
    Hébergement Gestion de Projet Open Source
    Sourceforge, Google Code, GitHub, Berlios, Codeplex, Channel PEAR privé…
    Hébergement Plateforme
    Amazon Web Services, …
  • …Fin de l’histoire
    Voix Off: Damien, qui a su mener à bien son projet et en faire une réussite pour son entreprise, à eu une belle promotion. Olivier qui venait d’arriver chez X, est devenu en quelques mois la référence sur les projets PHP chez X et a réussi à convaincre toute l’entreprise que PHP était un choix pertinent. La société X a su tirer partie de son investissement et revendre en marque blanche son application dont elle a su faire une réussite, application qui représente maintenant une part non négligeable de son chiffre d’affaires…
    Damien, Olivier, Adrien, Robert… sont donc maintenant convaincus que « PHP est une plateforme industrialisable qui aide à être Agile » !
  • A FAIRE
    EN COURS
    FINI
    Tour de
    Table
    Agilité ?
    5’
    5’
    Il étaitune fois…
    PHP ?
    30’
    5’
    PHP =
    Agile !
    ?
    5’
    10’
  • Parce que PHP, c’est…
    Fun !
    Tout le monde connait
    Ticket d’entrée faible
    Courbe d’apprentissage progressive
    Un outil pour prototype rapidement
    Un outil aussi pour faire du durable, du refactorable
    Outillé
    Industrialisable
    Mature
    Une Biodiversité inégalée (webmasters, geeks, architectes, experts, chef de projets, chef de produits ou simples passionnés !)

    Image : El Roubio – www.elroubio.net
  • Mettez PHP au service de l’Agilité !
    • Servir avant tout la satisfaction client
    • Livrer une application qui fonctionne / est utile
    • Travailler ensemble
    • Privilégiez les interactions entre les personnes
    • Collaborer plutôt que contractualiser
    • S’adapter constamment plutôt que suivre un plan
    • Livrer régulièrement, un logiciel n’est jamais fini
    • Faire (toujours le plus) simple
    • S’améliorer constamment (feedback)
    • Cultiver la motivation
    Qu’attendez-vous pour faire des projets agiles de qualité professionnelle avec PHP ?
    Agile
    Software
    INSIDE
  • A FAIRE
    EN COURS
    FINI
    Tour de
    Table
    Agilité ?
    5’
    5’
    Il étaitune fois…
    PHP ?
    30’
    5’
    PHP =
    Agile !
    ?
    5’
    10’
  • des questions ?
  • Merci !
    olivier@phppro.fr
    06.31.20.74.79
    http://blog.phppro.fr
    http://www.phppro.fr
    Merci à Damien Seguy…