Étude et mise en place d’une plateforme web facilitant la gestion de projets entre mandants et équipes de développeurs indépendants
Aujourd'hui, la gestion de projets informatiques respecte la plupart du temps le même processus :
- Un mandant soumet une liste de fonctionnalités et un délai pour la production d’un produit
- Un vendeur (et/ou directeur, chef de projet) décrit un cahier des charges et propose un devis au mandant
- Le vendeur négocie avec le mandant la forme du projet
- Le mandant accepte et signe un devis comprenant un coût, une qualité et un délai
- Le vendeur impose un cahier des charges et des délais de réalisation à une équipe de développeurs
- L’équipe de développeurs implémente le projet et crée un livrable
- Le vendeur livre le produit fini
- Le mandant paie le projet (et les dépassements de coûts/qualité/délai !)
Les problèmes rencontrés lors de ces projets sont nombreux, les principaux et les plus problématiques sont les suivants :
- Pour le mandant : Dépassement des coûts, non-respect des délais, diminution des fonctionnalités… → Au final le mandant se retrouve le jour du délai demandé avec aucun livrable ou un livrable ne contenant qu’une partie des fonctionnalités et avec un coût planifié atteint voir dépassé.
- Pour les développeurs : Cahier des charges, problèmes technologiques, manque de temps… → Au final les développeurs doivent fournir un livrable bâclé présentant des bugs dus au manque de temps, avec une documentation faible ou inexistante.
La solution envisagée se base sur la communication directe entre le mandant et l’équipe de développeurs. Le processus se simplifie alors comme suit :
- Un mandant met en concours une liste de fonctionnalités et un délai pour la production d’un produit
- Différentes équipes de développeurs décrivent un cahier des charges comprenant une liste de fonctionnalités réalisables, un choix technologique, une qualité et un coût dans le délai donné
- Le mandant accepte et signe un des cahiers des charges proposés
- L’équipe de développeurs implémente le projet pour lequel elle s’est engagée et livre un produit final que le mandant paie
Pour mettre en relation les mandants et les développeurs, faciliter la communication, proposer des devis, gérer les délais et les flux financiers la solution s’apparente à créer et développer une plateforme web.
Au travers de cette plateforme, les équipes de développeurs sont en "compétition sociale" entre elles. Le fait de choisir ses coéquipiers, de définir les technologies, les prix, les choix laissés aux équipes et la dimension sociale motivent et permettent de lisser la plupart des problèmes. En cas de livraison d’un produit final exemplaire ou au contraire d’un échec (non-respect d’un délai d’un projet, diminution des fonctionnalités, abandon, etc.) les équipes sont notées publiquement. Ainsi la réputation d’une équipe permet à celle-ci de grandir, de décrocher plus de projets et assure la qualité et la réussite des projets.
- Le code source compilable de la partie back-end de l’application réalisé avec Express est disponible dans le dossier 5.Projet/back-end.
- Le code source exécutable de la partie front-end de l’application réalisé avec Vue.js est disponible dans le dossier 5.Projet/front-end.
- Le code source du containeur Docker utilisant docker-compose est consultable dans le dossier 5.Projet/docker.
Ce projet est documenté dans un rapport, la dernière version de celui-ci se trouve dans le dossier 2.Documentation.
- Un journal de travail, sous la forme d'un tableur Excel, est disponible dans le dossier 2.Documentation/Annexes : TB_Planning_Alt-Thibaud.xlsx.
- Des maquettes HTML statiques ont été réalisées, les sources de celles-ci sont disponibles dans le dossier 3.Maquettes.
- La définition des routes de l'API réalisé à l'aide de Postman : MoonFish - Express.js REST API with JWT
- Pour les suivis des tâches, un Trello est mis à jour à l'adresse suivante : trello.com/b/meyHR8e8/heig-vd-travail-de-bachelor.
- Le résultat des tests de bout en bout, sous la forme d'un tableur Excel, est disponible dans le dossier 2.Documentation/Annexes : Tests_End-to-end.xlsx.
- L'état actuel du projet peut être consulté via l’URL suivant heig-tb-moonfish.netlify.app.