Écrire de la documentation pour un projet libre

Jeudis du libre de Bruxelles, 2011-10-06.

L’auteur : Fabrice Flore-Thebault @themr0c

Partout où il faut documenter les projets, les processus, les infrastructures.

La documentation utilisateur

  • Circulation de la connaissance.

  • Permettre à des personnes extérieures au projet d’utiliser l’outil produit.

  • Donner du sens et expliciter les intentions.

  • Libérer de l’espace de support.

Approche traditionnelle

Traitement de texte et outils de PAO

  • WYSIWYG⇒WYGIWYS What you get is what you see

  • Pas de structure

  • Pas d’historisation

Rédacteur isolé des développeurs

  • Pas de correction de l’application

  • Capture d’écran vs. dynamique d’utilisation

  • Procédure vs. intention

Faire appel à un rédacteur technique

Implication des autres acteurs du projet

Example 1. Jeu des questions-réponses.
Questions réponses sur IRC

Les objectifs humains

S’adapter aux autres acteurs du projet

  • Une composante du projet comme les autres.

  • Traiter la documentation comme le reste du code.

  • Permettre aux contributeurs d’utiliser leurs outils habituels.

Faciliter la vie des auteurs

  • Simplicité pour l’auteur (outil, syntaxe).

  • Ne pas imposer un outil d’édition.

  • Pouvoir travailler à plusieurs.

  • Pouvoir travailler offline.

S’adapter au projet

  1. Contrôle de version

  2. Gestion de projet

  3. Intégration continue

  4. Accessibilité immédiate

  5. Environnement de travail

Contrôle de version

Utiliser le même outil de gestion de version que le reste du projet.

Example 2. Visualisation des activités Git avec Gitorious
Gitorious activities

Gestion de projet

Intégration à la forge du reste du projet.

Example 3. Intégration à Redmine avec Git
Intégration de Git et Redmine

Intégration continue

Utiliser le même outil d’intégration continue que le reste du projet.

Déploiement continu : validation de la publication, mieux qu’un CMS !

Example 4. Intégration continue avec Jenkins, utilisation de Makefile
Intégration continue avec Jenkins

Edition rapide

Un outil simple pour de petites modifications.

Example 5. Edition en ligne avec Github
Editeur en ligne de Github

Votre éditeur de texte habituel

Utiliser votre éditeur de texte préféré.

Example 6. Un fichier asciidoc dans Vim
Un fichier asciidoc dans Vim

Choix de la chaîne de production

La chaîne de production est centrée sur les formats d’édition et de publication.
Figure 1. La chaîne de production est centrée sur les formats d’édition et de publication.

Formats de publication

Deux cibles : le web et l’impression papier.

Formats de publication standards.
Figure 2. Formats de publication standards.

Format pour le web: HTML

Example 7. Version Web de la documentation utilisateur de Rudder
Rudder documentation

Format pour l’impression : PDF

Example 8. Version PDF de la documentation utilisateur de Rudder
Rudder documentation

Prérequis pour les formats et outils d’édition

Structuration

  • Séparation style et contenu.

  • Une source, plusieurs formats de publication.

  • Écriture sémantique vs. machine à écrire.

Maintenable comme du code.

  • Versionné.

  • Gestion des conflits d’édition concurrente.

Simplicité de la rédaction

  • Simplicité de la syntaxe vs. richesse des fonctionnalités.

  • Simple éditeur de texte vs. outil propriétaire.

Formats et outils d’édition standards

La sémantisation du contenu

  • Applications web.

  • OpenDocument.

  • LaTeX.

  • XML: Docbook, Dita.

  • Simple markup: reStructured text, asciidoc.

Les illustrations

  • Captures d’écran (avec parcimonie).

  • Graphiques sémantiques: graphviz.

Applications web, CMS, Wiki

Un outil d’appoint ponctuel appréciable, pas l’outil de travail habituel.

  • Online & synchrone vs offline & asynchrone

    Ma page n’a pas été sauvegardée !

  • Pénible gestion d’édition concurrente.

  • Pas adapté au format papier. Les exports PDF ne sont qu’un pis aller.

  • Formats de balisage simple: ReStructured Text, Markdown, Textile.

  • Rarement intégré aux outils habituels du projet.

Example 9. Le wiki de Redmine
Le wiki de Redmine

Choix des outils : Open document et outils de PAO

Pas un format d’édition maintenable.

  • Impose un outil d’édition lourd.

  • Pas d’édition concurrente.

  • Pénible à versionner.

  • Non adapté à la séparation du style et du contenu.

  • La création de templates de mise en forme ne résout pas les problèmes.

Example 10. Le WYSIWYG par LibreOffice
WYSIWYG

LaTeX

L’incontournable format intermédiaire pour produire le format imprimable

  • Stabilité et qualité exemplaire.

  • Syntaxe pénible pour l’auteur.

  • Impose de facto l’utilisation d’un éditeur spécialisé.

Example 11. LaTeX est complexe pour les auteurs
Un morceau de LaTeX

Choix des outils : XML ? Dita ? Docbook ?

  • Structuré, versionable, réutilisable.

  • Notions clés: topic, ditamap.

  • Syntaxe pénible pour l’auteur.

  • Impose de facto l’utilisation d’un éditeur lourd.

  • Riche, trop riche.

Example 12. DITA est complexe pour les auteurs
DITA XML

Serna, éditeur libre pour DITA

  • Seul éditeur libre

  • Usine à gaz

  • Maintenu ?

  • Disponible pour votre OS ?

Serna,éditeur DITA

Docbook

  • Structuré, versionable.

  • Un bon format intermédiaire.

  • Usage répandu.

Example 13. Docbook est complexe pour les auteurs
Un morceau de Docbook

Langages de markup simple : Asciidoc

  • Structuré, versionable, réutilisable.

  • Syntaxe simple pour l’auteur.

  • Chaîne basée sur Docbook et LaTeX.

  • Support de Graphviz.

Chaîne de publication basée sur le format Asciidoc
Figure 3. Chaîne de publication basée sur le format Asciidoc

Mise en œuvre de Asciidoc

  • Feuille de style pour la sortie XHTML.

  • Feuille de style pour la sortie PDF.

  • Structuration du texte.

  • Structuration en fichiers.

  • Automatisation : Makefile, scripts.

Example 14. Documentation de Asciidoc
FAQ Asciidoc

La syntaxe asciidoc

La syntaxe asciidoc
= Titre
Nom Auteur <email@auteur.tld>
v1.0, octobre 2011: Remarque sur la version

== Section
=== Sous-section
Ceci est du contenu.

* Liste à puces
* Liste à puces

.Titre pour un exemple
====
Ceci est un exemple
====

.Titre pour une image
image::illustration.png[]

Structuration du texte avec Asciidoc

Example 15. Sémantisation en sections, notes, code
exemple de fichierAsciidoc

Découpage en fichiers, génération du document maître

Example 16. Utilisation de scripts externe et d’inclusions
Asciidoc avec script et include

Organisation d’un projet en Asciidoc

Organisation des fichiers de la documentation de Rudder
.
|-- 00_introduction
|   |-- 00_introduction.txt
|   |-- 10_concepts.txt
|   |-- 11_asset_management.txt
|   |-- 12_configuration_management.txt
|   |-- 20_architecture.txt
|   |-- 21_architecture_nodes.txt
|   |-- 22_architecture_root_server.txt
|   `-- 30_architecture_network.txt
|-- 10_install_server
|   |-- 00_install_intro.txt
|   |-- 10_install_root_server.txt
|   |-- 11_install_root_server_debian.txt
|   |-- 12_install_root_server_sles.txt
|   |-- 16_installed_files.txt
|   |-- 17_initial_config.txt
|   |-- 19_validation.txt
|   `-- 20_install_relay_server.txt
|-- 11_install_agent
|   |-- 00_install_agent.txt
|   |-- 10_install_agent_debian.txt
|   |-- 20_install_agent_centos_rhel.txt
|   |-- 30_install_agent_suse.txt
|   `-- 90_validation.txt
|-- 20_usage
|   |-- 00_usage_intro.txt
|   |-- 10_web_interface.txt
|   `-- 20_search_units.txt
|-- 21_asset_management
|   |-- 20_asset_management.txt
|   |-- 21_accept_new_nodes.txt
|   |-- 22_search_nodes.txt
|   `-- 23_groups_of_nodes.txt
|-- 22_configuration_management
|   |-- 30_configuration_management.txt
|   |-- 31_policy_templates.txt
|   |-- 32_list_of_policy_templates.txt
|   |-- 33_policy_instances.txt
|   |-- 34_configuration_rules.txt
|   `-- 35_compliance.txt
|-- 23_administration
|   `-- 50_services_administration.txt
|-- 3_usecases
|   `-- 0_usecases_intro.txt
|-- 4_advanced_usage
|   |-- 0_advanced_usage_intro.txt
|   |-- 1_user_management.txt
|   |-- 2_nodes_communication_detailled.txt
|   |-- 30_reinitialize_node_promises.txt
|   |-- 40_configuration_files.txt
|   |-- 41_node_etc_default_rudder-agent.txt
|   |-- 42_opt_rudder_etc_htpasswd-webdav.txt
|   |-- 42_opt_rudder_etc_inventory-web.properties.txt
|   |-- 42_opt_rudder_etc_logback.xml.txt
|   |-- 42_opt_rudder_etc_openldap_slapd.conf.txt
|   |-- 42_opt_rudder_etc_postgresql_reportsSchema.sql.txt
|   |-- 42_opt_rudder_etc_reportsInfo.xml.txt
|   |-- 42_opt_rudder_etc_rudder-users.xml.txt
|   |-- 42_opt_rudder_etc_rudder-web.properties.txt
|   |-- etc
|   |   |-- htpasswd-webdav
|   |   |-- inventory-web.properties
|   |   |-- licenses
|   |   |   `-- licenses.xml
|   |   |-- logback.xml
|   |   |-- openldap
|   |   |   |-- DB_CONFIG.example
|   |   |   |-- ldap.conf
|   |   |   |-- ldap.conf.default
|   |   |   |-- schema
|   |   |   |   |-- collective.schema
|   |   |   |   |-- corba.schema
|   |   |   |   |-- core.ldif
|   |   |   |   |-- core.schema
|   |   |   |   |-- cosine.ldif
|   |   |   |   |-- cosine.schema
|   |   |   |   |-- duaconf.schema
|   |   |   |   |-- dyngroup.schema
|   |   |   |   |-- inetorgperson.ldif
|   |   |   |   |-- inetorgperson.schema
|   |   |   |   |-- inventory.schema
|   |   |   |   |-- java.schema
|   |   |   |   |-- misc.schema
|   |   |   |   |-- nis.ldif
|   |   |   |   |-- nis.schema
|   |   |   |   |-- openldap.ldif
|   |   |   |   |-- openldap.schema
|   |   |   |   |-- pmi.schema
|   |   |   |   |-- ppolicy.schema
|   |   |   |   |-- README
|   |   |   |   `-- rudder.schema
|   |   |   |-- slapd.conf
|   |   |   `-- slapd.conf.default
|   |   |-- postgresql
|   |   |   |-- reportsBootstrap.sql
|   |   |   `-- reportsSchema.sql
|   |   |-- reportsInfo.xml
|   |   |-- rudder-users.xml
|   |   |-- rudder-web.properties
|   |   `-- uuid.hive
|   `-- node_etc
|       |-- rudder-agent
|       `-- uuid.hive
|-- bibliography.txt
|-- docinfo.xml
|-- generate-map.sh
|-- glossary
|   |-- applied-policy.txt
|   |-- big-red-button.txt
|   |-- cfengine-nova.txt
|   |-- cfengine-server.txt
|   |-- cfengine.txt
|   |-- cf-execd.txt
|   |-- cf-serverd.txt
|   |-- configuration-rule.txt
|   |-- dynamic-group.txt
|   |-- ldap-server.txt
|   |-- policy-instance.txt
|   |-- policy-template.txt
|   |-- port-514.txt
|   |-- port-5308.txt
|   |-- port-5309.txt
|   |-- port-80-nodes.txt
|   |-- port-80-user.txt
|   |-- reference-policy-template-library.txt
|   |-- rudder-node.txt
|   |-- rudder-relay-server.txt
|   |-- rudder-root-server.txt
|   |-- rudder.txt
|   |-- sql-server.txt
|   |-- static-group.txt
|   |-- user-policy-template-library.txt
|   |-- web-server-application.txt
|   `-- web-server-front-end.txt
|-- graphviz
|   |-- agent_workflow.dot
|   |-- agent_workflow.dot.dot
|   |-- asset_management_workflow.dot
|   |-- concepts.dot
|   |-- generate_policy_workflow.dot
|   `-- packages.dot
|-- images
|   |-- Reports.png
|   |-- root-server-components.png
|   |-- RudderHome.png
|   |-- RudderMenuAdministration.png
|   |-- RudderMenuAssetManagement.png
|   |-- RudderMenuConfigurationManagement.png
|   `-- rudder-packages.png
|-- LICENSE
|-- Makefile
|-- preface.txt
|-- README
|-- rudder-doc.conf
|-- rudder-doc.txt
|-- sandbox
|-- style
|   |-- html
|   |   |-- asciidoc.js
|   |   |-- favicon.png
|   |   |-- images
|   |   |   `-- icons
|   |   |       |-- callouts
|   |   |       |   |-- 10.png
|   |   |       |   |-- 11.png
|   |   |       |   |-- 12.png
|   |   |       |   |-- 13.png
|   |   |       |   |-- 14.png
|   |   |       |   |-- 15.png
|   |   |       |   |-- 1.png
|   |   |       |   |-- 2.png
|   |   |       |   |-- 3.png
|   |   |       |   |-- 4.png
|   |   |       |   |-- 5.png
|   |   |       |   |-- 6.png
|   |   |       |   |-- 7.png
|   |   |       |   |-- 8.png
|   |   |       |   `-- 9.png
|   |   |       |-- caution.png
|   |   |       |-- example.png
|   |   |       |-- home.png
|   |   |       |-- important.png
|   |   |       |-- next.png
|   |   |       |-- note.png
|   |   |       |-- prev.png
|   |   |       |-- README
|   |   |       |-- tip.png
|   |   |       |-- up.png
|   |   |       `-- warning.png
|   |   |-- logoRudder.jpg
|   |   |-- rudder.css
|   |   |-- rudder-quirks.css
|   |   |-- RudderSquare.png
|   |   `-- toc2.css
|   |-- latex
|   `-- xsl
|-- writer-guide.txt
`-- xhtml11.conf

25 directories, 173 files

Organisation d’un projet DITA

Organisation des fichiers de la documentation de GLPI
.
|-- conclusion.dita
|-- glpi
|   |-- abstract.dita
|   |-- access_control_intro.dita
|   |-- admin_backup.dita
|   |-- admin_backup_files.dita
|   |-- admin.dita
|   |-- admin_install_plugin.dita
|   |-- administration_backup.dita
|   |-- administration_dictionnary.dita
|   |-- administration.dita
|   |-- administration_entity_delegation.dita
|   |-- administration_entity.dita
|   |-- administration_entity_t_create.dita
|   |-- administration_entity_t_delete.dita
|   |-- administration_group.dita
|   |-- administration_group_import.dita
|   |-- administration_group_t_create.dita
|   |-- administration_group_t_delete.dita
|   |-- administration_history.dita
|   |-- administration_profile.dita
|   |-- administration_rule.dita
|   |-- administration_rule_mailcollector.dita
|   |-- administration_rule_ocs.dita
|   |-- administration_rule_right.dita
|   |-- administration_rule_softwarecategory.dita
|   |-- administration_rule_ticket.dita
|   |-- administration_transfer.dita
|   |-- administration_user.dita
|   |-- administration_user_import.dita
|   |-- administration_user_t_create.dita
|   |-- administration_user_t_delete.dita
|   |-- admin_upgrade.dita
|   |-- admin_upgrade_prepare.dita
|   |-- admin_upgrade_wizard.dita
|   |-- appendix.dita
|   |-- conclusion.dita
|   |-- config_auth.dita
|   |-- config_authentication_t_auth.xml
|   |-- config_auth_imap.dita
|   |-- config_auth_imap_t_create.dita
|   |-- config_auth_imap_t_delete.dita
|   |-- config_auth_ldap.dita
|   |-- config_auth_ldap_t_create.dita
|   |-- config_auth_ldap_t_delete.dita
|   |-- config_auth_ldap_usersgroups.dita
|   |-- config_auth_other.dita
|   |-- config_common_assist.dita
|   |-- config_common_auth.dita
|   |-- config_common_display.dita
|   |-- config_common.dita
|   |-- config_common_mysql.dita
|   |-- config_common_personalize.dita
|   |-- config_common_restrict.dita
|   |-- config_common_sysinfo.dita
|   |-- config_crontask.dita
|   |-- config_device.dita
|   |-- config.dita
|   |-- config_dropdown.dita
|   |-- config_link.dita
|   |-- config_link_t_create.dita
|   |-- config_link_t_delete.dita
|   |-- config_mailcollector.dita
|   |-- config_mailcollector_t_create.dita
|   |-- config_mailcollector_t_delete.dita
|   |-- config_notification_configuration.dita
|   |-- config_notification.dita
|   |-- config_notification_notifications.dita
|   |-- config_notification_notifications_t_create.dita
|   |-- config_notification_notifications_t_delete.dita
|   |-- config_notification_templates.dita
|   |-- config_notification_templates_tags.dita
|   |-- config_notification_templates_t_create.dita
|   |-- config_notification_templates_t_delete.dita
|   |-- config_notification_templates_translations.dita
|   |-- config_ocsng.dita
|   |-- config_plugin.dita
|   |-- discover_interface.dita
|   |-- first_steps.dita
|   |-- glossary
|   |   |-- accepted.dita
|   |   |-- adaptative_rule.dita
|   |   |-- administrative_closure.dita
|   |   |-- alert_threshold.dita
|   |   |-- answer.dita
|   |   |-- automatic_action.dita
|   |   |-- automatic_closure.dita
|   |   |-- bookmark.dita
|   |   |-- budget.dita
|   |   |-- cartridge.dita
|   |   |-- cas.dita
|   |   |-- case.dita
|   |   |-- central.dita
|   |   |-- child_entity_rule.dita
|   |   |-- chipset.dita
|   |   |-- clearance.dita
|   |   |-- close.dita
|   |   |-- computer.dita
|   |   |-- connection_network.dita
|   |   |-- consumables.dita
|   |   |-- consumer.dita
|   |   |-- contact.dita
|   |   |-- contract.dita
|   |   |-- controller.dita
|   |   |-- cpu.dita
|   |   |-- criteria.dita
|   |   |-- damping_type.dita
|   |   |-- default_profile.dita
|   |   |-- device.dita
|   |   |-- dictionnary.dita
|   |   |-- direct_link.dita
|   |   |-- directory_ad.dita
|   |   |-- directory_ldap.dita
|   |   |-- dissociate.dita
|   |   |-- document.dita
|   |   |-- domain.dita
|   |   |-- domain_mail.dita
|   |   |-- drive.dita
|   |   |-- dropdown.dita
|   |   |-- dump.dita
|   |   |-- dynamic_display.dita
|   |   |-- editor.dita
|   |   |-- entity.dita
|   |   |-- entity_right.dita
|   |   |-- evergreen.dita
|   |   |-- expiry.dita
|   |   |-- external_link.dita
|   |   |-- faq.dita
|   |   |-- field.dita
|   |   |-- file.dita
|   |   |-- financial_information.dita
|   |   |-- follow_up.dita
|   |   |-- frequency.dita
|   |   |-- global_management.dita
|   |   |-- global_note.dita
|   |   |-- global_right.dita
|   |   |-- graphiccard.dita
|   |   |-- group.dita
|   |   |-- grouping.dita
|   |   |-- hard_drive.dita
|   |   |-- hive.dita
|   |   |-- ical.dita
|   |   |-- id.dita
|   |   |-- imap_pop.dita
|   |   |-- impact.dita
|   |   |-- incident.dita
|   |   |-- inherited_rule.dita
|   |   |-- intervention.dita
|   |   |-- inventory_object.dita
|   |   |-- knowbase.dita
|   |   |-- landscape.dita
|   |   |-- location.dita
|   |   |-- login.dita
|   |   |-- logs.dita
|   |   |-- mac_address.dita
|   |   |-- manager.dita
|   |   |-- manufacturer.dita
|   |   |-- monitors.dita
|   |   |-- motherboard.dita
|   |   |-- mountpoint.dita
|   |   |-- networkcard.dita
|   |   |-- network.dita
|   |   |-- network_gateway.dita
|   |   |-- network_jack.dita
|   |   |-- network_port.dita
|   |   |-- networks.dita
|   |   |-- new_ticket.dita
|   |   |-- ocsng.dita
|   |   |-- os.dita
|   |   |-- otherserial.dita
|   |   |-- part.dita
|   |   |-- password.dita
|   |   |-- path.dita
|   |   |-- pattern.dita
|   |   |-- personnal_note.dita
|   |   |-- phone.dita
|   |   |-- plan.dita
|   |   |-- plugin.dita
|   |   |-- portrait.dita
|   |   |-- power.dita
|   |   |-- powersupply.dita
|   |   |-- printer.dita
|   |   |-- priority.dita
|   |   |-- private.dita
|   |   |-- processing_assigned.dita
|   |   |-- processing_planned.dita
|   |   |-- processor.dita
|   |   |-- profile.dita
|   |   |-- public.dita
|   |   |-- public_note.dita
|   |   |-- purge.dita
|   |   |-- raid.dita
|   |   |-- ram.dita
|   |   |-- receiver.dita
|   |   |-- recursivity.dita
|   |   |-- refused.dita
|   |   |-- regex.dita
|   |   |-- replicate.dita
|   |   |-- report.dita
|   |   |-- requester.dita
|   |   |-- reservation.dita
|   |   |-- restore.dita
|   |   |-- rights.dita
|   |   |-- root_entity.dita
|   |   |-- rule.dita
|   |   |-- search_engine.dita
|   |   |-- serial_number.dita
|   |   |-- service.dita
|   |   |-- service_pack.dita
|   |   |-- settings.dita
|   |   |-- solved_on.dita
|   |   |-- soundcard.dita
|   |   |-- specific_renewal.dita
|   |   |-- standard_interface.dita
|   |   |-- statistics.dita
|   |   |-- status.dita
|   |   |-- streamlined_interface.dita
|   |   |-- subentity.dita
|   |   |-- subject.dita
|   |   |-- supervisor.dita
|   |   |-- supplier.dita
|   |   |-- tag.dita
|   |   |-- task.dita
|   |   |-- technician.dita
|   |   |-- template.dita
|   |   |-- third_type.dita
|   |   |-- ticket.dita
|   |   |-- transfert.dita
|   |   |-- trash.dita
|   |   |-- tree.dita
|   |   |-- unit_management.dita
|   |   |-- urgency.dita
|   |   |-- user.dita
|   |   |-- validation.dita
|   |   |-- validator.dita
|   |   |-- vcard.dita
|   |   |-- version.dita
|   |   |-- vlan.dita
|   |   |-- volume.dita
|   |   |-- waiting.dita
|   |   `-- webcal.dita
|   |-- glossary.dita
|   |-- helpdesk.dita
|   |-- helpdesk_lifecycle.dita
|   |-- helpdesk_openticket.dita
|   |-- helpdesk_planning.dita
|   |-- helpdesk_stat.dita
|   |-- helpdesk_ticket.dita
|   |-- helpdesk_ticket_followup.dita
|   |-- helpdesk_ticket_solution.dita
|   |-- helpdesk_ticket_task.dita
|   |-- helpdesk_ticket_t_create.dita
|   |-- helpdesk_ticket_validation.dita
|   |-- image
|   |   |-- bookmark.png
|   |   |-- bookmark_record.png
|   |   |-- quicksearch.png
|   |   `-- searchexample.png
|   |-- install_copyfiles.dita
|   |-- install.dita
|   |-- install_download.dita
|   |-- installing.dita
|   |-- install_wizard.dita
|   |-- interface.dita
|   |-- inventory_all.dita
|   |-- inventory_cartridge.dita
|   |-- inventory_computer_component.dita
|   |-- inventory_computer_connection.dita
|   |-- inventory_computer.dita
|   |-- inventory_computer_ocsng.dita
|   |-- inventory_computer_registry.dita
|   |-- inventory_computer_software.dita
|   |-- inventory_computer_t_create.dita
|   |-- inventory_computer_t_delete.dita
|   |-- inventory_computer_t_linktocontract.dita
|   |-- inventory_computer_t_linktodocument.dita
|   |-- inventory_computer_t_read.dita
|   |-- inventory_computer_t_update.dita
|   |-- inventory_computer_volume.dita
|   |-- inventory_connection.dita
|   |-- inventory_consumable.dita
|   |-- inventory.dita
|   |-- inventory_document.dita
|   |-- inventory_link.dita
|   |-- inventory_log.dita
|   |-- inventory_management.dita
|   |-- inventory_monitor.dita
|   |-- inventory_monitor_t_connecttocomputer.dita
|   |-- inventory_monitor_t_create.dita
|   |-- inventory_monitor_t_delete.dita
|   |-- inventory_monitor_t_linktocontract.dita
|   |-- inventory_monitor_t_linktodocument.dita
|   |-- inventory_monitor_t_read.dita
|   |-- inventory_monitor_t_update.dita
|   |-- inventory_network_connection.dita
|   |-- inventory_networking.dita
|   |-- inventory_networking_t_create.dita
|   |-- inventory_networking_t_delete.dita
|   |-- inventory_networking_t_linktocontract.dita
|   |-- inventory_networking_t_linktodocument.dita
|   |-- inventory_networking_t_read.dita
|   |-- inventory_networking_t_update.dita
|   |-- inventory_notcomputer_connection.dita
|   |-- inventory_peripheral.dita
|   |-- inventory_peripheral_t_create.dita
|   |-- inventory_peripheral_t_delete.dita
|   |-- inventory_peripheral_t_linktocontract.dita
|   |-- inventory_peripheral_t_linktodocument.dita
|   |-- inventory_peripheral_t_read.dita
|   |-- inventory_peripheral_t_update.dita
|   |-- inventory_phone.dita
|   |-- inventory_printer_cartridge.dita
|   |-- inventory_printer.dita
|   |-- inventory_printer_t_create.dita
|   |-- inventory_printer_t_delete.dita
|   |-- inventory_printer_t_linktocontract.dita
|   |-- inventory_printer_t_linktodocument.dita
|   |-- inventory_printer_t_read.dita
|   |-- inventory_printer_t_update.dita
|   |-- inventory_reservation.dita
|   |-- inventory_software.dita
|   |-- inventory_software_installation.dita
|   |-- inventory_software_license.dita
|   |-- inventory_software_merge.dita
|   |-- inventory_software_t_create.dita
|   |-- inventory_software_t_delete.dita
|   |-- inventory_software_version.dita
|   |-- inventory_state.dita
|   |-- inventory_ticket.dita
|   |-- management_budget.dita
|   |-- management_budget_hardware.dita
|   |-- management_budget_t_create.dita
|   |-- management_budget_t_delete.dita
|   |-- management_budget_t_linktodocument.dita
|   |-- management_budget_t_read.dita
|   |-- management_budget_t_update.dita
|   |-- management_contact.dita
|   |-- management_contact_supplier.dita
|   |-- management_contact_t_create.dita
|   |-- management_contact_t_delete.dita
|   |-- management_contact_t_linktodocument.dita
|   |-- management_contact_t_linktosupplier.dita
|   |-- management_contact_t_read.dita
|   |-- management_contact_t_update.dita
|   |-- management_contract.dita
|   |-- management_contract_hardware.dita
|   |-- management_contract_t_create.dita
|   |-- management_contract_t_delete.dita
|   |-- management_contract_t_linktodocument.dita
|   |-- management_contract_t_linktoitem.dita
|   |-- management_contract_t_linktosupplier.dita
|   |-- management_contract_t_read.dita
|   |-- management_contract_t_update.dita
|   |-- management.dita
|   |-- management_document.dita
|   |-- management_document_t_create.dita
|   |-- management_document_t_delete.dita
|   |-- management_document_t_linktodocument.dita
|   |-- management_document_t_linktoitem.dita
|   |-- management_document_t_read.dita
|   |-- management_document_t_update.dita
|   |-- management_supplier_contract.dita
|   |-- management_supplier.dita
|   |-- management_supplier_hardware.dita
|   |-- management_supplier_t_create.dita
|   |-- management_supplier_t_delete.dita
|   |-- management_supplier_t_linktocontact.dita
|   |-- management_supplier_t_linktodocument.dita
|   |-- management_supplier_t_read.dita
|   |-- management_supplier_t_update.dita
|   |-- navigate.dita
|   |-- navigate_interface.dita
|   |-- navigate_manageitem.dita
|   |-- navigate_search.dita
|   |-- notes.dita
|   |-- notices.dita
|   |-- plugin.dita
|   |-- preface.dita
|   |-- prerequisite_db.dita
|   |-- prerequisite.dita
|   |-- prerequisite_webserver.dita
|   |-- quickstart.dita
|   |-- scripts_ldap_mass_sync.dita
|   |-- start_browser.dita
|   |-- start.dita
|   |-- start_login.dita
|   |-- start_logout.dita
|   |-- start_password.dita
|   |-- start_pref.dita
|   |-- template.dita
|   |-- tool.dita
|   |-- tool_knowbase.dita
|   |-- tool_knowbase_t_create.dita
|   |-- tool_knowbase_t_delete.dita
|   |-- tool_knowbase_t_linktodocument.dita
|   |-- tool_knowbase_t_read.dita
|   |-- tool_knowbase_t_update.dita
|   |-- tool_ocsng.dita
|   |-- tool_reminder.dita
|   |-- tool_report.dita
|   |-- tool_reservation.dita
|   `-- use.dita
|-- glpi.ditamap
`-- image
    |-- ad_ldap_group.png
    |-- aide.png
    |-- bookmark.png
    |-- bookmark_record.png
    |-- delete.png
    |-- GLPI - accueil.png
    |-- GLPI-Interface personnalisee.png
    |-- GLPI-interface simplifiee.png
    |-- GLPI-Interface standard.png
    |-- interface.png
    |-- logo_livre.png
    |-- menu_add.png
    |-- menu_addtemplate.png
    |-- menu_showall.png
    |-- moins.png
    |-- quicksearch.png
    |-- reservation-3.png
    |-- searchexample.png
    `-- stats_item.png

4 directories, 419 files

Conclusion : L’impact qualité pour le projet

Rapports de bugs

  • Regard extérieur.

  • Tests extensifs de l’application.

Ergonomie

  • Une interface ergonomique demande moins d’explications.

  • Modification de l’interface utilisateur.