Quand le besoin métier pilote l'architecture applicative

Quand le besoin métier pilote l'architecture applicative

Comment l’utilisation de Scrum, DDD, BDD et DevOps permet à une application d'absorber facilement des changements et des évolutions fonctionnelles.

Cad0f293595fc534e4ebd1eb7e3f1a1a?s=128

Jean-François Lépine

March 24, 2014
Tweet

Transcript

  1. Quand le besoin métier L'architecture applicative pilote @trompouet & @Halleck45

  2. PHP Tour 2014 23 et 24 Juin à Lyon

  3. Un projet informatique

  4. Réalisation Adminsys Développeur Intégrateur Testeur Product Owner Ergonome Scrum Master

    Tactique Stratégie Décideur
  5. Un projet agile

  6. Délivrer Concevoir Communiquer DevOps Conception pilotée par le métier Développement

    piloté par le comportement
  7. Délivrer De manière agile

  8. Culture DevOps « Deploy better systems at less cost in

    less time at lower risk » – Tim Bray
  9. Principes CAMS Culture l'humain est le plus important Automation les

    outils simplifient la vie Measurement les métriques permettent de s'améliorer Sharing le partage génère du feedback – Damon Edwards & John Willis
  10. OPS : Au service de l'équipe IaaS PaaS Serveur de

    configuration OPS Dashboard Plate-forme de production Décideur Stratégie Tactique Product Owner, Scrum Master Vision projet Plate-forme de recette Dev, testeur, intégrateur Dépôts Plate-forme de dév. PIC Réalisation
  11. OPS : Au service du feedback Production Feedback Dashboard Alerting

    Monitoring ... Dashing, Kibana Zabbix Graphite, New Relic ...
  12. Un exemple d'Ops au service de l'équipe

  13. Screens de Jenkins Un exemple d'Ops au service du feedback

  14. Communiquer De manière agile

  15. UBIQUITOUS LANGAGE Permet d'éviter les ambiguïtés Est élaborée en commun

    Est parlée par tous Représente un glossaire du projet
  16. Une grammaire normalisée Permet d'exprimer les User Stories de Scrum

    Rôle Objectif Bénéfice Gherkin DSL Fonctionnalités divisées en scénario
  17. Des fonctionnalités Fonctionnalité : Se tenir informé de l'actualité En

    tant qu'auditeur Afin de me tenir informé de l'actualité Je peux recevoir en direct un flux d'informations Scénario : écouter France Info Étant donné que ma radio fonctionne Quand j'écoute France Info Alors je reçois des informations sur l'actualité Scénario : ...
  18. Des exemples Fonctionnalité : Se tenir informé de l'actualité En

    tant qu'auditeur Afin de me tenir informé de l'actualité Je peux recevoir en direct un flux d'informations Scénario : écouter France Info Étant donné que le voyant de ma radio est vert Quand j'écoute France Info sur la station 105.5 à 10h00 Alors j'entends l'émission Minute Info Scénario : ... BDD ≠ ATDD
  19. Bonus Testabilité du produit Reporting de l'avancée du Produit Aide

    à la priorisation des fonctionnalités
  20. Bonus : testabilité

  21. Bonus : reporting

  22. Bonus : priorisation Priorité = Valeur métier * Impact Valeur

    métier Impact 5 5 10 15 20 25 4 4 8 12 16 20 3 3 6 9 12 15 2 2 4 6 8 10 1 1 2 3 4 5 1 2 3 4 5
  23. Concevoir De manière agile De manière agile

  24. Qualité postulat de démarche de recherche de

  25. Utilité fonctionnelle Fiabilité Performances Utilisabilité Sécurité Compatibilité Maintenabilité Qualité ISO/CEI

    25000
  26. Principes SOLID Comportements Atomiser les Verrouiller les Spécialiser les Négocier

    les Découpler les
  27. Design Patterns Employer un jargon spécialisé Isoler des typologies de

    problèmes connus Réutiliser des méthodes éprouvées de résolution Anticiper les avantages et les inconvénients
  28. Domain Driven Design L'implémentation technique est le reflet du besoin

    fonctionnel
  29. Consommation Présentation Application Domaine métier Infrastructure Composants graphiques Vues HTML

    View Objects Middleware Contrôlleurs ACL Layer Services Interfaces Entités Persistence Logs ... ... Tests IHM Tests unitaires Tests de protocole Tests de comportement Tests unitaires Analyse statique Tests unitaires Tests d'intégration PhantomCSS, Huxley, Wraight QUNIT, Jasmine, Karma Schémas (JSON, DTD) Behat, Cucumber, Species PHPUnit, Atoum PHPMEtrics, PDepend PHPUnit, Atoum Bash... Isolation des couches
  30. AngularJS RestHalBundle StackPHP Symfony2 framework PHP Symfony2 component Nos outils

    Consommation Présentation Application Domaine métier Infrastructure
  31. Des Questions ? merci @trompouet & @Halleck45