18
Documentation intrinsèque Human Talks Lyon – Mars 2014 – Hébergé par l’INSA Clément Bouillier - @clem_bouillier

20140311 - Documentation intrinsèque - Human Talks

Embed Size (px)

DESCRIPTION

Comment produire de la documentation technique et fonctionnelle, sans y consacrer des activités à part entière durant le projet (activités souvent écourtées/supprimées sous la pression des délais/des charges du projet). La documentation intrinsèque se matérialise par la production d'une documentation de qualité inhérente à votre processus de développement (qui ne peut être lui supprimés, c'est le résultat final) : User Story, BDD, TDD, code explicite. NB : des commentaires expliquent les slides -> téléchargez la présentation

Citation preview

Page 1: 20140311 - Documentation intrinsèque - Human Talks

Documentation intrinsèque

Human Talks Lyon – Mars 2014 – Hébergé par l’INSAClément Bouillier - @clem_bouillier

Page 2: 20140311 - Documentation intrinsèque - Human Talks

Qui suis-je ?

Architecte/chef de projet/consultant mais avant tout ARTISAN DEVELOPPEUR

> Twitter : @clem_bouillier

Membre actif des groupes suivants> DevLyon : groupe de développeurs partageant une vision de

l’informatique créant de la valeur http://devlyon.fr> MUG Lyon : groupe de passionnés de technologies en

environnement Microsoft sur Lyon> Fier d’être développeur : groupe visant à promouvoir le métier

de développeur en France http://fierdetredeveloppeur.org/

Page 3: 20140311 - Documentation intrinsèque - Human Talks

La documentation,

c’est un peu comme la qualité…

(…tout le monde en parle, très peu en font…)

Page 4: 20140311 - Documentation intrinsèque - Human Talks

…on vous explique les processus à suivre pour

y arriver (ou pas!)

Exemples typiques :Qualité = spécifications exhaustives, plans de tests, usine de tests manuels…

Documentation = spécifications exhaustives upfront, code commenté, wiki après avoir codé…

Tout ça au bon moment dans le cycle projet évidemment !

Page 5: 20140311 - Documentation intrinsèque - Human Talks

…et pourtant le résultat est régulièrement le

même…

Page 6: 20140311 - Documentation intrinsèque - Human Talks

Qualité en apparence (pour

le client, à la « recette »)

Aller vers la QUALITE

INTRINSEQUE

Documentation désynchronisée de la

réalité (voire le néant) Aller vers la

DOCUMENTATION INTRINSEQUE

Page 7: 20140311 - Documentation intrinsèque - Human Talks

Qualité et documentation

intrinsèque vont de pairNe demande pas d’activités spécialisées ayant un autre but que :

« Produire un logiciel opérationnel PLUS QU’une documentation exhaustive »

Page 8: 20140311 - Documentation intrinsèque - Human Talks

1. Documentation fonctionnelle

Page 9: 20140311 - Documentation intrinsèque - Human Talks

Développement piloté par l’expérience utilisateur User

Story

Page 11: 20140311 - Documentation intrinsèque - Human Talks

…puis outillez légèrement

Conserver les éléments notés autour des User Story lors de la réalisation (1 User Story = 3C : carte, conversation, confirmation)

+ Regrouper les User Story par Theme/Activité fonctionnel(le)

+ Gérer les User Story obsolètes (suppression/évolutions)

+ Taches…

+ Test Cases…

Page 12: 20140311 - Documentation intrinsèque - Human Talks

…et documenter avec une démarche BDD

Piloter vos développements par la description du comportement métier désiré« Conversation » et « confirmation » (cf. 3C) sont intimement liés

Le code est fonctionnellement lié à la User Story

Page 13: 20140311 - Documentation intrinsèque - Human Talks

2. Documentation technique

Page 14: 20140311 - Documentation intrinsèque - Human Talks

Code explicite PLUS QUE code

commentéEviter les commentaires quand vous pouvez expliciter la même chose dans le codeReprenez les termes métiers dans votre code

/!\ aux abstractions et aux APIs : à documenter (JavaDoc…)

// check to see if employee is eligible for full benefitsif ((employee.flags & HOURLY_FLAG) && employee.age > 65)

if (employee.isEligibleForFullBenefits())

Chapitre 4 de Clean Code – Uncle Bob

Page 15: 20140311 - Documentation intrinsèque - Human Talks

TDD = Test Driven Development, mais aussi DESIGN (= conception)

Conception incrémentale PLUS QUE « upfront »+

Documentation des intentions plus que la structure+

BONUS : tests automatisés non-régression

Page 16: 20140311 - Documentation intrinsèque - Human Talks

Et en complément…

Commentaires de commit propres (liés au User Story en BONUS)+

Un wiki pour documenter 1. les pratiques de l’équipe2. les exigences transverses

Page 17: 20140311 - Documentation intrinsèque - Human Talks

Toutes ces pratiques portent la documentation= Documentation

intrinsèqueUser Story/Story Mapping

BDDTDD

Code explicite

PLUS QUE des processus de documentation complémentaires

Vous ne les connaissez pas ? Etudiez, entrainez-vous au plus vite…

Page 18: 20140311 - Documentation intrinsèque - Human Talks

MERCI

QUESTIONS ?

ROTI ?