diff --git a/content/conduite_projet/1_intro/imgs/6_artefacts.svg b/content/conduite_projet/1_intro/imgs/6_artefacts.svg deleted file mode 100644 index 7949455..0000000 --- a/content/conduite_projet/1_intro/imgs/6_artefacts.svg +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/content/conduite_projet/1_intro/index.md b/content/conduite_projet/1_intro/index.md deleted file mode 100644 index 61072e5..0000000 --- a/content/conduite_projet/1_intro/index.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: "Conduite de projet: introduction" -date: 2024-09-10 -tags: [""] -categories: ["Conduite de projet", "Cours"] -mathjax: true ---- - -Les projets informatiques peuvent prendre plusieurs formes: - - * **Projet de développement logiciel** pour livrer la première version - utilisable du logiciel. - * **Projet de tierce maintenance applicatice** pour en assurer la maintenance. - * **Projet de mise en production** pour assurer la production (exploitation). - - Mener à bien ces différents projets est un long chemin, il est facile de se - perde surtout *si les contours sont flous*. Et pour ça nous allons avoir - besoin d'un peut de **formalisme**. - -## Projet de développement - - 1. Tout part **d'un utilisateur** qui a un besoin, il peut ne pas en être - conscient ou l'exprimer. - 2. Le **propriétaire** (ou le *producteur*) exprime ce besoin dans un *cahier - des charges*. - 3. Le **développeur** va spécifier le besoin dans *la réponse au cahier des - charges* - 4. Le **propriétaire** accepte la réponse. - 5. Le **développeur** réalise le développement et le livre. - 6. Le **propriétaire** mets à disposition le logiciel à *l'utilisateur* - -Nous utilisons les termes de *MOA* pour *Maître d'ouvrage* (le propriétaire) et -*MOE* pour *Maître d'œuvre* (le développeur). - -Le cycle de développement se décompose en 3 phases: - - 1. **l'analyse**: le *MOE* spécifie ce qu'il peut réaliser, mais aussi ce qu'il - ne peut pas; - 2. **la conception**: le *MOE* organise son développement; - 3. **le développement**: le *MOE* développe les différents composants. - -## L'analyse - -Le cahier des charge représente un peu *la lettre au père noël* du *MOA* au -*MOE*. Ce dernier doit alors spécifier ce qu'il est capable de réaliser mais -aussi **le chiffrer**. Le *MOE* peut refuser de aire telle ou telle -spécification du budget et de ses capacités. - -Au niveau du chiffrage, on évalue en **jour/homme**, c'est une tâche qui demande -de l'expérience car semée de pièges. - -## La conception - -C'est l'écriture du code des différents composants de l'application, il y a -alors plusieurs points de vies: - - * application **monolithique**; - * composition en **modules**, ils permettent aussi de découper en tâche. Il - faut aussi définir les différentes interactions entre les modules. - -Il faut aussi choisir **une architecture** (3 tiers, en couche, par service). - -## Les besoins - -Nous pouvons utiliser la méthode sur **6 artefacts**: - -![Schéma: les six artefacts](./imgs/6_artefacts.svg) - -L'expression des besoin contient elle aussi des pièges: - - * les besoins fantômes; - * les besoins mal exprimés. - -Un besoin se caractérise par deux stades: - - 1. en cours de rédaction; - 2. rédigé et en attente de qualification. - -6 bonnes pratiques: - - * un besoin doit être identifié par un numéro de besoin - * un besoin doit être précis - * un besoin doit être qualifié (type, difficulté, priorisé) - * un besoin doit être planifié (échéance, unité de temps) - * un besoin doit être clos (à un moment donné) - * les besoins doivent être homogénéisés - -Nos besoins contiennent dont un *identifiant*, une *description*, un *objectif* -et un *contrôle*. Il faut absolument **tuer tout espace laissé au flou et à -l'interprétation**. Nous avons besoin de précision. - -**Homogénéiser**: chacun des besoins doivent avoir le même point de vue, exprimé -de la même façon avec la même granularité. - -Un besoin doit être **priorisé** selon 3 critères: `élevé`, `normal`, `bas` - -### 4 types de besoins - - * Nouvelle fonctionnalité. - * Bugfix / amélioration - * Amélioration de performances - * Refactoring (visibilité du code) - - diff --git a/shell.nix b/shell.nix index 57483a5..9cd9806 100644 --- a/shell.nix +++ b/shell.nix @@ -5,8 +5,8 @@ let src = pkgs.fetchFromGitHub { owner = "vimux"; repo = "mainroad"; - rev = "13e04b3694ea2d20a68cfbfaea42a8c565079809"; - sha256 = "sha256-td8xQhAz/TnjZmOKIEiQjRgzdoicRrVN9h41Uxnnaso="; + rev = "af0dc2e1207f7676bc2abf878f3671ff32b02c32"; + sha256 = "172lvvh2xiam5m58criywwaq15db84zi3g5f325v5aywm8607b8v"; }; installPhase = '' cp -r $src $out