Je vais lui montrer qui c'est Raoul !
Épisode 4/8
Mon préféré, ne serait-ce que pour le titre. C'est le début du raisonnement comme un programmeur : découper en sous ensemble les problèmes, les tâches, les interventions, les recettes complexes afin de s'en faciliter la tâche et son planning.
Je vais lui montrer qui c’est Raoul. Aux quatre coins de Paris qu’on va le retrouver, éparpillé par petits bouts, façon Puzzle. Moi, quand on m’en fait trop je correctionne plus : je dynamite, je disperse, je ventile! [note] Michel Audiard, Les Tontons flingueurs (1963) de Georges Lautner[/note]
Et bin moi, c'est pareil ou presque avec le boulot. Sous ce titre plus abscons que jamais, je veux juste vous parler d'une habitude à prendre : le découpage en tâches. On repart donc de la gestion de projet pure mais pas que.
Raisonner comme un programmeur
Donald E. Knuth [https://fr.wikipedia.org/wiki/Donald_Knuth]est une sorte de dieu pour les n3rds comme moi. Ce fondateur de l’algorithmie, c'est à dire l'art créer une suite finie et non-ambiguë d’instructions permettant de donner la réponse à un problème, va me donner les bases du bon découpage de tâches. Je vais donc, oh sacrilège, me permettre de détourner les cinq propriétés qui sont largement reconnues comme les pré-requis d'un algorithme:
Finitude
"Un algorithme doit toujours se terminer après un nombre fini d'étapes." Donc notre découpage de tâche aussi, pour simplifier, il faut un nombre de tâches défini à l'avance et pas un champ libre sans fin. Je ne dis pas que l'on ne peut pas ajouter ou retirer des tâches pendant le projet (ou autre). Il ne faut pas broder non plus tout les 4 matins.
Définition précise
"Chaque étape d'un algorithme doit être définie précisément; les actions à transposer doivent être spécifiées rigoureusement et sans ambiguïté pour chaque cas." Votre liste de tâches doit donc contenir uniquement des instructions, des actions compréhensibles par celui ou ceux qui devront l’exécuter. Cette définition doit se faire à plusieurs personnes et rester en rapport avec le rendement, j'y reviens plus tard.
Entrées
"...des quantités qui lui sont données avant qu'un algorithme ne commence. Ces entrées sont prises dans un ensemble d'objets spécifié." Pour faire claire, les tâches ont une entrée, un input pour faire jeune. Pour rester dans notre contexte et dans nos cas, il peut s'agir de ressources ou de la sortie d'une tâche précédente. Cela plus clair lorsque l'on parlera des dépendances entre les tâches.
Sorties
"...des quantités qui ont une relation spécifiée avec les entrées.". Ne pas perdre de vue que chaque tâche doit avoir un livrable dans le projet, sinon c'est une tâche qui ne sert à rien.
Rendement
"... toutes les opérations que l'algorithme doit accomplir, doivent être suffisamment basiques pour pouvoir être en principe réalisées dans une durée finie par un homme utilisant du papier et un crayon." Toute la difficulté réside ici, ce qui est vrai en algo ne l'est pas dans la vie. C'est un des thèmes essentiels : comment découper les tâches de façon efficace sans tomber dans le détail absurde ?
Niveau pertinent de découpage
Comme pour les cartes (ou les plannings) , tout dépend du zoom dont vous avez besoin. Si vous êtes l'opérateur ou le directeur général, vous n'avez pas besoin du même degré de précision. Partons d'un exemple, commun à tous et que l'on retrouve régulièrement en démo dans les sites (à force de voir toujours les mêmes exemples, on finirait par penser que cela ne s'applique qu'à ce cas... mais bon, je digresse) : construction de maison. Quand je dis commun à tous, je ne parle pas de moi, car je n'ai pas construit, je ne suis donc inspiré de planning tout fait sur le web pour créer des tâches.
La présentation couplée à des outils informatiques peut permettre de tirer les tiroirs jusqu'à plus soif. Je n'ai pas tout détailler ce n'est qu'un exemple.
Je vous livre fichier freeplane pour ceux qui veulent..
Ce que l'on voit ici, c'est par exemple, le premier niveau va correspondre à ce qu'attend votre banquier, le maire du village ou autres, le niveau 2 à la famille, 3 à vous avec votre architecte ou constructeur, ...niveau ultime du détail que j'ai illustré étant pour le mur du sous-sol où l'on peut détailler jusqu'à la mise en place des agglos. Exagéré, peut-être, un peu, mais pas tant que ça, en fait, si vous êtes le maçon, ou le contrôleur qualité, c'est le genre de truc qui est fait. Pas forcément écrit pour le maçon, mais peut-être pour la démarche qualité.
Maintenant est-ce pertinent pour vous qui êtes maître d'ouvrage de cette construction ?
Oui, si vous êtes un psychopathe de la surqualité et que vous avez beaucoup de temps à consacrer aux moindres détails...Sinon, non. Mais alors jusqu'où aller trop loin ? Il n'y a pas de méthode, ou de trucs magiques, il faut :
- être rigoureux et méthodique, penser le détail pour l'ignorer, se poser systématiquement les mêmes questions : pour faire ça, j'ai fait quoi avant ? penser aux sorties : dans mon exemple : pour faire une maison, il faut quoi ? pour faire un mur, il faut quoi ? (démarche itérative). Vous pouyvez limiter le nombre de niveau en vous disant, je ne dépasse pas le 3.
- marcher à l'intuition, être curieux et poser des questions : jamais 2 personnes n'aurait fait la même carte que moi dans l'exemple, il n'y a pas de bon ou de mauvais découpage,
- être plusieurs, impossible de penser à tout tout seul, réunissez ceux qui ont déjà fait (experts) et ceux qui ne l'ont jamais fait pour être candide;
- l’expérience aide beaucoup, une fois que l'on a commencé à penser découpage, on a tendance à le faire plus facilement (Dexter dit ça aussi...).
Cela sert à ?
Je parle du découpage des tâches et que du découpage en tâche, viendra ensuite les délais ou le coût des tâches (je vous parleria plus tard d'un de mes outils préférés le WBS).
- C'est évidemment le prérequis à la planification et à ordonnancement des tâches.
- avoir une estimation de la complexité du projet
- estimation plus facile des délais, du personnel et des ressources nécessaires
- aide à choisir les outils, de planification ou de réalisation
- mieux composer l(es) équipe(s),
- Cela évite les dérives, et l'effet tunnel [note]impossible de connaître l’état d’avancement d’une tâche ou d’un projet et que vous n’avez pas d’autre solution que d’attendre que le travail soit terminé[/note]
- Implication dans le projet pour le chef de projet et les experts consultés
- plus grande motivation, au départ du projet et durant le projet, on mesure l'avancement, on sait ce qu'il reste à faire
- etc
Est-ce un grand principe ?
Universalité : citer moi un domaine dans lequel on ne peut pas appliquer le découpage. recette de cuisine à l'industrialisation du saucisson ou des parpaings, Méthode de résolution de problème ou autre, décomposer en tâche simple est même un principe de Descartes. Allez soyons fou, je vais l'appeler : principe de Raoul
Par ailleurs, il me semble évident que tout projet passe par cette étape, pour moi, elle est à faire dès le départ car finalement, elle peut décider si le projet se fait ou pas.
Quelques trop rares liens
http://pise.info/algo/introduction.htm http://www.xdocs400.com/spip.php?article2
Série "Principes"