March 9, 2019

950 mots 5 mins

Ecrire un diagramme de Gantt

Ecrire un diagramme de Gantt

Pour produire un diagramme de Gantt il est courant d'utiliser un atelier de gestion de projet, un outil de création de diagrammes, ou bien un tableur. Cet article explore une alternative moins courante : l'utilisation d'un fichier texte et d'une application mobile iOS.

Le diagramme de Gantt est un outil utilisé en ordonnancement et en gestion de projet et permettant de visualiser dans le temps les diverses tâches composant un projet. Il s’agit d’une représentation d’un graphe connexe, valué et orienté, qui permet de représenter graphiquement l’avancement du projet. - Wikipedia

note: L’article Diagramme de Gantt de Wikipedia contient un paragraphe sur l’offre logicielle.

Regardons la solution utilisant un fichier texte et une application de transformation en diagramme :

  • Le texte formaté
  • Comment y noter les tâches d’un projet
  • Comment transformer les notes en diagramme

C’est parti :

Le texte formaté

Outillé et collaboratif

Le fichier texte est facilement partageable, lisible et modifiable par tous, sans logiciel ni coût supplémentaire. 1

Il s’intègre naturellement à tous les environnements collaboratifs 2 (gMail, gDocs, Teams, SharePoint …). Nous pouvons donc :

  • travailler à plusieurs simultanément
  • consulter les modifications de chacun dans le temps

Le fond et la forme

Par essence un fichier texte ne contient que la structure et les idées. Pendant l’écriture, en écartant ainsi d’éventuelles questions sur la forme et la mise en page, l’attention reste centrée sur les idées. Ce principe est utilisé pour l’écriture de thèses, d’articles, ou de livres. Leurs auteurs utilisent une syntaxe MarkDown 3 pour écrire, puis un modèle LaTeX4 pour la mise en forme.

Les langages à balises

Bien qu’il séparent le contenu et la présentation, bien qu’ils restent modifiables en tant que texte, les langages à balises n’entrent pas dans la même catégorie : il sont beaucoup moins lisibles. Beaucoup de métiers ont développé leurs propres Markup Langage, parfois accompagnés de feuilles de style XSL pour la mise en forme. La présence des balises augmente la taille du fichier et diminue la lisibilité. Ils laissent parfois place à d’autres fichiers textes de type json,yaml.

Le langage naturel

Le langage naturel (français, anglais, etc) est-il le plus évolué et précis des langages ?

Pour notre diagramme de Gantt, nous allons exprimer les tâches d’un projet le plus simplement possible.

Noter les tâches

Les notes sont prises dans un fichier texte.

Il s’agit d’une une photo à un instant t d’un projet.

remarque: En utilisant un environnement collaboratif 2 ces ‘images’ se trouve conservées / historiées.

Exemple

Voici un exemple, puis son explication.

# Team work;;2019/05/12
* Specification
> 1. Technical infrastructure ; Create initial document ; 2019/04/01 ; Smith,10,10 ; Smith,5,5
> 2. Business model ; Improve part 4, add more choices ; 2019/04/01 ; John,12,12 Smith,4,4 ; John,3,3 Smith,1,1 ; 1
! Paper board ; Buy a new blue pencil ; 2019/03/28 ; Arthur
- After eight;;;;;1
* Production
. Project committee ; Waiting confirmation ; 2019/04/10 ; Client
= Signature ; Check legal stuffs ; 2019/04/10 ; Lawyer
- Construction ; Find teammates ; 2019/04/16 ; Me,15,0 
/ Delivery ; Planification ; 2019/04/16 ; PO,10,0

La première ligne commence par # pour indiquer qu’il s’agit d’un thème. Les lignes à suivre feront partie du thème.

La deuxième ligne commence par * pour indiquer qu’il s’agit d’un objectif. Les lignes à suivre feront partie de l’objectif.

Les autres lignes sont des tâches. Le premier caractère de chaque ligne indique un status.

Pour résumer, le premier caractère qualifie la ligne :

# : c'est un theme, un tâche principale qui regroupe les lignes à suivre
* : c'est un objectif, sorte de sous-theme, qui aussi regroupe les lignes à suivre
- : tâche à faire
> : tâche en cours
/ : tâche terminée
. : étape, jalon
= : en attente
! : risque

Format

Toutes les lignes suivent ce format :

[status] {identifiant}. [sujet] ; {action} ; {date fin souhaitée} ; {estimation}… ; {consommation}… ; {dependance}

Seules les informations entre [] crochets sont obligatoires. Celles entre {} accolades sont facultatives. Les informations sont séparées par un ; point-virgule.

{identifiant} est toujours suivie d’un .point. L’identifiant sert à noter noter une dépendance, s’il est reporté dans le champs {dependance} d’une autre tâche (en fin de ligne)

{date fin souhaitée} est au format `aaaa/mm/jj``

{estimation} et {consommation} ont pour format : text,nombre,nombre .... Chaque triplet identifie une resource text, une charge, une durée. Plusieurs triplets peuvent se suivre séparé par un espace.

Les autres informations sont des champs texte. Le caractère ; n’est pas utilisé car il sert de séparateur d’informations.

Transformation en diagramme

Lorsque l’application TaskNote est installée sur un appareil iOS et que le texte ci-dessus est envoyé (par mail, par airDrop, etc), l’application TaskNote s’ouvre et permet d’exporter le diagramme et la liste des tâches au format pdf.

Voici un aperçu :

Voici le lien vers l’AppStore : AppStore

L’application est écrite en langage swift et pourrait être convertie en ligne de commande.


À propos d’éditeur de texte

Ils sont déjà présents en standard :

  • sous Windows, quelque soit la version, l’application notepad est disponible
  • sous MacOS, il s’agit de TextEdit
  • sous Linux Ubuntu, ce serait gEdit
  • sous iOS, pourquoi pas Notes ou [Memocode](../memocode)
  • sous chromeOS, il y a Text

Ils sont gratuits, à installer sur Windows, MacOS ou Linux :

  • Microsoft [vsCode](https://code.visualstudio.com)
  • [SublimeText](https://www.sublimetext.com)
  • [Atom](https://atom.io)

Il est toujours possible de forcer l’export/import sans format avec

  • LibreOffice
  • Google Docs
  • Microsoft Office 365
  • Pages

Il est confortable d’être équipé d’un correcteur orthographique et grammatical. En ce moment j’utilise vsCode et son extension Spell Right.


  1. Voir la dernière partie sur cette page à propos des éditeurs de texte. ↩︎

  2. Travailler en équipe sur un projet versionné ↩︎

  3. MarkDown ↩︎

  4. LaTeX ↩︎