Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité

Consultez-les par la suite

1 sur 21 Publicité

Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?

Télécharger pour lire hors ligne

Si les méthodes agiles se concentrent sur l’aspect organisationnel du développement logiciel, elles en disent très peu sur les pratiques de production du code. Or pour valoriser des “logiciels opérationnels” et “adaptables aux changements” (comme le préconise le manifeste agile), la manière de produire le code est essentielle. Le software craftsmanship est avant tout un état d’esprit, mais il repose sur des pratiques concrètes de développement piochées dans d’autres méthodes comme eXtreme Programming. Dans ce retour d’expérience, un développeur et un manager vous présenterons quelques unes des pratiques que nous avons adoptées et qui ont changé notre façon de développer. Nous vous donnerons aussi des pistes pour les transposer (ou pas !) dans votre contexte.

Si les méthodes agiles se concentrent sur l’aspect organisationnel du développement logiciel, elles en disent très peu sur les pratiques de production du code. Or pour valoriser des “logiciels opérationnels” et “adaptables aux changements” (comme le préconise le manifeste agile), la manière de produire le code est essentielle. Le software craftsmanship est avant tout un état d’esprit, mais il repose sur des pratiques concrètes de développement piochées dans d’autres méthodes comme eXtreme Programming. Dans ce retour d’expérience, un développeur et un manager vous présenterons quelques unes des pratiques que nous avons adoptées et qui ont changé notre façon de développer. Nous vous donnerons aussi des pistes pour les transposer (ou pas !) dans votre contexte.

Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Les utilisateurs ont également aimé (20)

Publicité

Similaire à Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ? (20)

Plus récents (20)

Publicité

Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?

  1. 1. Software Craftsmanship : le chaînon manquant de l’agilité ? @CharlesBouttaz @NicoRuffel Photo John Alexander Calderon
  2. 2. Manifeste & Valeur AGILE documentation exhaustive < des logiciels opérationnels les processus et les outils < les individus & interactions négociation contractuelle < collaboration avec les clients le suivi d’un plan < adaptation au changement CRAFTSMANSHIP + des logiciels bien conçus + communauté de professionnels + des partenariats productifs + ajout constant de la valeur
  3. 3. 12 Principes sous-jacent 1 Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée. 2 Accueillez positivement les changements de besoins,même tard dans le projet. Les processus Agiles exploitent le changement pour donner un avantage compétitif au client. 3 Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts. 4 Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet. 5 Réalisez les projets avec des personnes motivées. Fournissez-leur l’environnement et le soutien dont ils ont besoin et faites-leur confiance pour atteindre les objectifs fixés. 6 La méthode la plus simple et la plus efficace pour transmettre de l’information à l'équipe de développement et à l’intérieur de celle-ci est le dialogue en face à face. 7 Un logiciel opérationnel est la principale mesure d’avancement. 8 Les processus Agiles encouragent un rythme de développement soutenable. Ensemble, les commanditaires, les développeurs et les utilisateurs devraient être capables de maintenir indéfiniment un rythme constant. 9 Une attention continue à l'excellence technique et à une bonne conception renforce l’Agilité. 10 La simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle. 11 Les meilleures architectures, spécifications et conceptions émergent d'équipes autoorganisées. 12 À intervalles réguliers, l'équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie son comportement en conséquence.
  4. 4. Des pratiques, des techniques, des outils ! ● Clean Code ● Simple Design ● Refactoring ● SOLID ● Pair programming ● Integration continue ● DevOps ● Prog fonctionnelle ● Root cause analysis ● Object Oriented Design ● Livraison continue ● Mob programming ● TDD ● ATDD ● BDD ● DDD
  5. 5. Les pratiques ne sont que des outils !
  6. 6. Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée.
  7. 7. Tests automatisés, Test Driven Development ● Automatisé : fiabilité & gain de temps ● TDD : couverture, testable, documentation, qualité FEEDBACK
  8. 8. Les tests face à la dure réalité ● C’est difficile ! ○ Code hostile ○ Besoin de bonnes notions de design ● Les mauvais tests coûtent cher ○ Instables, trop longs, trop liés a l’implémentation ● Difficile de “vendre“ le test unitaire COURAGE
  9. 9. Accueillez positivement les changements de besoins, même tard dans le projet. Les processus Agiles exploitent le changement pour donner un avantage compétitif au client.
  10. 10. Intégration continue Chaque tâche de développement terminée est automatiquement compilée, testée et intégrée à l’application Les plus... Tous les tests sont repassés à chaque tâche terminée Détection rapide des problèmes d'intégration La version courante est toujours disponible FEEDBACK
  11. 11. La dure réalité de l’intégration continue Coût de l'automatisation Plate-forme d’intégration et lien avec le Système de Management du Code Déploiement en un clic ! Construction de la suite de tests 10 minutes build Maintenir la rapidité et fiabilité du feedback Nouvelle organisation du travail : intégration CONTINUE COURAGE
  12. 12. Accueillez positivement les changements de besoins, [...] pour donner un avantage compétitif au client. Une attention continue à l'excellence technique et à une bonne conception renforce l’Agilité. Les meilleures architectures, spécifications et conceptions émergent d'équipes auto-organisées. La simplicité [...] est essentielle.
  13. 13. Architecture : Big Design Up Front Définir l’architecture et les technologies utilisées avant la phase de développement. BDUF + Agile = Problèmes ● Nécessite des besoins fonctionnels figés ● Choix et décisions les plus impactant au pire moment ● Les erreurs coûtent cher
  14. 14. Architecture : Design émergent Minimum d’architecture au début. Faire émerger le design lors du développement via le refactoring. Refactoring = améliorer le code : factorisation, encapsulation, cohésion, couplage, etc. Design souple et évolutif ● Maintenabilité ● Extensibilité ● Prendre les décisions quand on a le plus d’information SIMPLICITÉ
  15. 15. Les pièges du Design émergent Ne veut pas dire qu’on ne fait plus d’architecture ! On ne refait pas toute l’application à chaque fonctionnalité ! Difficile à faire accepter COURAGE
  16. 16. Une attention continue à l'excellence technique et à une bonne conception renforce l’Agilité. La méthode la plus simple et la plus efficace pour transmettre de l’information à l'équipe de développement et à l’intérieur de celle-ci est le dialogue en face à face.
  17. 17. Travail en binôme (Pair Programming) Les tâches de conception / programmation sont abordées à deux COMMUNICATIONTransfert de connaissance Le développeur n’est pas seul face aux problèmes Intérêt Meilleur design FEEDBACK
  18. 18. Le travail en binôme : c’est pas si simple… Difficile à vendre Organisation du travail Equipe répartie / multi sites Choc culturel RESPECT
  19. 19. Être agile plutôt que faire de l’agile ! Les valeurs de eXtreme Programming ou les manifestes sont de bons refuges FEEDBACK COURAGE SIMPLICITÉ COMMUNICATION RESPECT
  20. 20. Références Manifeste Agile : http://agilemanifesto.org/iso/fr/ Principles of craftsmanship : http://blog.8thlight.com/uncle-bob/2013/02/10/ThePrinciplesOfCraftsmanship.html Design émergent : http://software-craftsman.fr/2014/04/28/concepts-de-larchitecture-logicielle-introduction/ Intégration continue : http://referentiel.institut-agile.fr/ci.html Pair Programming : http://www.davefarley.net/?p=261 @CharlesBouttaz @NicoRuffel

×