[Traduction] La documentation vous apprend 12 choses

Ce qui suit est une traduction libre du billet Twelve Lessons From Writing Documentation de Jeff Staddon, paru en novembre 2007.

Nous croyons tous qu’une bonne doc est importante, mais qui la fait réellement ? La documentation typique d’un système informatique d’entreprise consiste habituellement en un regroupements de notes, de quelques documents LISEZMOI abandonnés sur le partage réseau et peut-être de quelques lignes de commentaire dans le code.

Il y a quelques années, j’en ai eu assez du “processus de documentation” standard et j’ai commencé à réellement documenter ce que je faisais.

Voici ce que j’en ai retiré :

  1. Comme toute compétence, pour écrire de la doc, on s’améliore avec la pratique. Au fur et à mesure que l’on s’améliore, cela devient de plus en plus amusant. (Oui, j’ai dit amusant. Cela peut vraiment être amusant).
  2. Quelques uns des documents “classiques” (minimum requis par exemple) semblent avoir un temps de vie vraiment court. Les autres documents - étapes pour lancer un script compliqué - tendent à être très utilisés.
  3. La doc est meilleur en petits fragments. J’utilise un wiki - cela facilite le type de “jet d’idée” rapide, c’est pourquoi les wikis sont très souvent le plus pratique. Ecrire en petits fragments préserve la tâche de l’ennui.
  4. La doc doit être facile à mettre à jour. Autrement, elle sera périmée et perdra sa fiabilité. A nouveau, j’aime beaucoup le wiki pour cela.
  5. On doit pouvoir chercher facilement dans la doc. Quelque chose qui est difficile à référencer — comme le format de document traditionnel utilisé sur le partage — ne doit tout simplement pas être utilisé.
  6. La documentation est pour les développeurs et les utilisateurs, pas pour le management. Laissez la professionnelle (même s’il semble que le document sur le multi-threading est compliqué), mais cool.
  7. Gardez la documentation réduite. Je préfère 1 ou 2 pages imprimées. Si un document est plus long que 3 pages, il couvre trop de sujets et peut être divisé en plus petites parties. C’est plus facile de naviguer dans des documents courts et il est plus facile de faire des recherches dedans (moins de fausses réponses). Appuyez vous sur la puissance des hyperliens !
  8. Réduisez la documentation. Les systèmes sont naturellement hiérarchiques. Les systèmes se divisent en sous-systèmes, qui deviennent des classes, etc. Laissez la doc divisée de la même façon que l’architecture ou l’utilisation de votre système.
  9. C’est pas grave d’avoir la document en dehors du code. La documentation qui est liée à une partie spécifique du code - documentant la classe et ses méthodes, par exemple - devrait être dans le code. Mais la doc sur le système et ses sous-systèmes fonctionneront mieux dans un wiki. La chose importante est que la documentation doit être facilement accessible et universellement reconnue comme le lieu où aller.
  10. Tout la doc n’est pas relative au code. (Par exemple, un lexique des termes business ou acronymes). Il faut un endroit où stocker la documentation ne concernant pas le code.
  11. La doc doit répondre aux questions sur “Quoi ? Où ?” et “Pourquoi ?”. Le code répond déjà à la question “Comment ?”. Pour ceux qui pensent que le code est “auto-documenté”, essayé juste d’écrire du code qui explique pourquoi une conception ou une architecture a été choisie plutôt qu’une autre…Les commentaires les plus utiles sont ceux comme “nous essayons de faire…mais cela a semblé être une mauvaise idée parce que…”
  12. La documentation doit être partagée. Plus de paires d’yeux la voient, plus elle devient valable.

Mais pour finir, la plus grande leçon - celui qui utilise le plus ma documentation est : moi. Je suis étonné de la fréquence. Je reviens lire quelque chose que j’ai écrit pour me rafraîchir la mémoire sur un certain système, processus ou autre. Le temps que j’ai passé à écrire a été facilement rentabilisé, juste pour le temps gagné à ne pas re-rechercher.

Déchaînée

En me baladant sur mes blogs favoris, j’ai atteint celui d’Aymeric Jacquet, toute joyeuse, voulant participer, je laissais un commentaire. Le thème du blog étant le web, la construction et la conception de sites web.

Quelle idée saugrenue j’avais là, me voilà enchaînée à non pas une, mesdames et messieurs, mais à deux chaînes de blog.
Comme je ne suis pas une mauvaise fille, je vais donc les faire…

Première chaine alakon : Mentionner six choses/habitudes/tics non importants sur vous-même

  • Mettre le lien de la personne qui vous tague
  • Mettre les règlements sur votre blog
  • Mentionner six choses/habitudes/tics non importants sur vous-même
  • Taguer six personnes à la fin de votre billet en mettant leurs liens
  • Aller avertir directement sur leurs blogs les personnes taguées
  1. Je tape au clavier aussi vite que j’écris sur papier.
  2. J’aime dormir dans des draps propres qui sentent la lessive.
  3. Je n’ai pas de monnaie sur moi, juste ma CB. (La monnaie, c’est old school, sérieux).
  4. Je bois du café uniquement au travail, je n’aime pas le goût, mais ça me donne le petit coup de fouet nécessaire.
  5. J’ai eu une machine à coudre pour mon dernier anniversaire, et ça me fait ultra plaisir.
  6. Les animaux sont mes amis : les chiens inconnus me sautent dessus, les chats ronchons acceptent mes caresses, mais on peut compter sur les moustiques, puces, tiques et autres trucs qui piquent pour me rendre visite. En fait, je suis le meilleur anti-moustique pour les autres.

Deuxième chaine alakon : Pas de titre mais ça parle de nourriture.

Quel aliment (produit) n’aimez vous pas du tout ?

La noix de coco. Et je la détecte même en petites quantités. Ce goût écoeurant, ce parfum affreux et cette consistance fibreuse, pouah !

Nommez 3 de vos aliments-produits favoris ?

Tomate à cueillir

  1. La tomate
  2. La mangue
  3. Le chocolat

Votre recette favorite ?

  • Ce que je sais bien faire : la mousse au chocolat
  • Ce que je peux manger sans faim : tout ce qui est à la carte dans le resto de ma belle-soeur (la dernière fois : bar et son crumble de légumes)

Votre boisson de prédilection ?
Le jus de cranberry frais

Le plat que vous rêvez de réaliser, mais que vous n’avez toujours pas réalisé ?
Une recette de gâteau au chocolat trouvée sur le web, mais elle est pour 10 personnes (http://www.marmiton.org/recettes/recette.cfm?num_recette=27502) ou alors des caramels au beurre salé.

Votre meilleur souvenir culinaire ?
En voyage, en Géorgie, on nous a emmené manger des khinkalis. Ce sont des raviolis gros comme le poing, qui contiennent une boulette de viande et son bouillon. Quand on croque dedans, il faut aspirer le jus brûlant sous peine de se tâcher, ensuite, on peut manger la viande et la pâte. Note, j’ai la recette, et je n’en ai toujours pas fait !

Maintenant, je taggue quelques innocentes victimes, niâârk niaaaârk ! Ce sont des gentils bloggueurs dont je suis le flux RSS, qu’ils en soient remerciés.

Signez la pétition pour l’accessibilité des services publics

Les services publics sont modernisés, on peut effectuer beaucoup de démarches en ligne. Malheureusement, tout le monde n’est pas égal pour l’accès à ces services en ligne, si vous êtes trop myope, pas assez jeune, vous ne pouvez pas toujours agrandir la police ou cliquer sur des liens de 3 caractères. Alors, si en plus vous êtes handicapé moteur ou aveugle et utilisez un navigateur adapté à votre handicap, cela peut devenir la croix et la bannière d’effectuer vos démarches en ligne.

Un site Internet accessible garantit que son contenu est utilisable par n’importe qui, quelle que soit sa situation, son handicap (visuel, auditif, moteur…) et le matériel (ordinateur, navigateur Internet, logiciels spécialisés) utilisé pour y accéder.

Comme je le dis souvent à mes stagiaires, si vous êtes égoïstes, pensez à vous dans le futur, vous aussi, serez vieux, myope et malhabile, prenez en compte ces données dès maintenant.

Le plus ironique est qu’il y a trois (3) ans a été publiée une loi pour l’égalité des droits et des chances, et à ce jour, on attend encore les modalités d’application.

http://www.web-pour-tous.org/spip.php?page=petition-accessibilite

14 mai 2008 : PHP et Silverlight, développement d’applications riches

Après avoir eu des interventions sur XUL, Flex et Ajax, l’AFUP vous propose le 4è concurrent web 2.0 : Silverlight.

Des intervenants spécialistes de PHP, de chez Microsoft viennent présenter Silverlight. Une occasion unique de poser vos questions !

Après nos rendez vous sur XUL, Flex et Ajax/HTML5 venez suivre avec nous ce dernier opus sur la technologie de Microsoft : Silverlight.

Informations sur le contenu sur le blog de Christophe Lauer

La conférence s’adressera principalement à une audience technique et nous montrerons pas ma le code : du PHP bien entendu, mais aussi du XAML, du JavaScript, et sans doute du C# et du VB.NET ;)

Inscrivez vous sur le site de l’AFUP (le nombre de places est limité)

Forum PHP 2008 : Appel à conférences

Le forum PHP 2008 aura lieu les 8 et 9 décembre 2008, au même endroit que l’année précédente, à l’ASIEM, dans le 7è arrdt. Il s’agit de deux journées de conférences et d’atelier sur PHP, avec du technique autant que des rapports d’expériences.

Les deux thèmes de cette année sont :

Web services professionels
et

Grands projets en PHP : organisation, méthodes et bonnes pratiques.

L’AFUP lance son appel à conférences. Cette année, vous devez proposer votre conférence en ligne.

29 avril 2008 : Industrialiser les développements PHP, le cas e-TF1

Un nouveau RendezVous AFUP avec un retour d’expérience de e-TF1.

Il y a 50 places, et ce RendezVous a lieu à la FIAP (Paris 14è).

Inscrivez vous vite tant qu’il reste de la place !

e-TF1 vous propose de découvrir sa méthodologie et ses outils permettant une réelle industrialisation des projets PHP.

[+ d'infos] site AFUP

La rencontre suivante sera le 14 mai 2008, sur Silverlight.

Evénements PHP en avril : à vos agendas

Idée trouvée en lisant la récap sur le site de Sébastien de Bollivier.

16 avril : Ingres et PHP (Contribuez à PHP et Ingres au travers du driver PECL)

17 avril : journée ezPublish - 14h à 8h30

22 avril : apéro PHP - 20h

29 avril : Industrialiser les développements PHP, le cas eTF1 - 20h00 à 21h30