AgileTouch

De fablab
Aller à : navigation, rechercher

Cadre du projet

  • Encadrants : François Bérard
  • Étudiants : Jany Belluz, Thibault Friedrich, Cyril Lorenzetto, Youcef Mammar
  • Lieu : le projet aura lieu en salle FabLab à l'Ensimag.

Contexte

Notre projet a pour but d'aider la gestion de projets en méthodes agiles. Ces nouvelles pratiques sont en plein essor. L'une de ces méthodes, Scrum, a ainsi proposé un système de gestion de projet à l'aide de post-its.

Les tâches à réaliser sont représentées par des post-its. Ces post-its sont regroupés par fonctionnalité implémentée. Chaque fonctionnalité est à son tour représentée par un post-it appelé userstory. L'ensemble de ces post-its affichés et qui reste à faire avant la prochaine rencontre avec le client s'appelle ainsi le backlog de sprint.

Le backlog de sprint est ainsi composé de cinq colonnes :

  • une colonne contenant les userstories
  • une colonne TODO, pour les tâches qu'il reste à faire
  • une colonne IN PROGRESS, pour les tâches qui ont été commencées
  • une colonne IN TEST, qui comporte les tâches à tester
  • une colonne DONE, où l'on y dépose toutes les tâches finies.

Le cycle de vie d'un post-it représentant une tâche est tout d'abord de commencer dans la colonne TODO. Le développeur qui s'occupe de la tâche le déplace ensuite vers les colonnes suivantes jusqu'à la colonne DONE, en fonction de l'avancement de la fonctionnalité.

Problématique

À l'heure actuelle, il existe deux moyens de gérer ce backlog de sprint.

La méthode Scrum a introduit le backlog à l'aide de vrais post-its disposés sur un mur (tableau). L'intérêt d'un tel affichage est la facilité de lecture des tâches. Par ailleurs, l'aspect physique est important pour recentrer le projet autour des individus qui composent l'équipe. En effet, les développeurs sont amenés à se déplacer vers le backlog pour modifier l'état d'avancement. Par ailleurs, la composante physique rend l'interface plus conviviale pour un développeur qui a codé toute la journée sur un ordinateur.

Néanmoins, un mur recouvert de post-its a de nombreux désavantages. Tout d'abord, la perte de post-its peut arriver et donc engendrer des incohérences dans la gestion de projet. De plus, il peut arriver que l'équipe soit dispersée à deux endroits différents (géographique). Même si cela est déconseillé dans les pratiques agiles, pour de très gros projets cela est parfois indispensable.

Ces limites sont peut être une raison pour laquelle peu d'équipes utilisent, pour le moment, ce genre de méthodologie en dépit de ces nombreux avantages.

Un scénario d'utilisation (totalement fonctionnel avec le livrable)

Contexte

  • Une équipe est répartie sur deux sites
    • Grenoble : localisée dans les bureaux
    • Pékin : qui se déplace près du client
  • Les deux équipes ont l’habitude des méthodes agiles. Il existe beaucoup de solutions virtuelles pour travailler à distance avec les méthodes agiles aujourd’hui, mais ils ont l’habitude de travailler avec des post-its en papier : heureusement qu’il y a des solutions qui combinent physique et virtuel de façon complètement transparente.
  • Grenoble prend la table tactile et l’utilise comme un backlog physique normal, sans changer ses habitudes. Pékin travaille une version totalement virtuelle.

1. Grenoble commence à travailler

  • ils posent une nouvelle user story:
  • ils ajoutent 2 post-its en TODO
  • un membre de l’équipe prend un post-it, le met en IN PROGRESS

2. Pékin commence à travailler à son tour

  • ils posent une nouvelle user story:
  • ils ajoutent 3 post-its en TODO
  • un membre de l’équipe prend un post-it, le met en IN PROGRESS puis en IN TEST

3. Grenoble voit le post it modifié de l’autre équipe

  • il appuie longtemps sur le post-it pour voir faire appraitre le pop-up et avoir des informations dessus

4. Grenoble se rend compte qu’il y a une erreur sur un post-it TODO

  • Il l'efface, le corrige, et le rajoute en TODO. On voit la magie de synchronisation sur l’écran de Pékin

Matériel utilisé

Nous utilisons 3 dispositifs essentiels : la caméra (ALLIED F131B), la table tactile (DiamondTouch) et un iMac.

Allied Vision Technologies Marlin F131B
Diamond Touch
Vidéo Projecteur


Architecture Globale

Architecture Globale

Objectifs

Dans le cadre de notre projet de spécialité nous avons défini trois versions. La version 0 est la version indispensable et qui représente le socle de notre projet. Les deux autres versions (1 et 2) sont des versions qui apportent des fonctionnalités supplémentaires.

Version 0

- Gestion des backlogs physiques :

  • Ajout de user-stories
  • Ajout des post-its physiques représentants des tâches, rattachés à des user-stories, dans l'état TODO
  • Déplacement des post-its physiques entre les différents états (TODO, IN PROGRESS, IN TEST et DONE)
  • Suppression d'un post-it
  • Suppression d'une user-storie (qui supprime également tous les post-its rattachés à elle)

- Enregistrement des contenus des post-its via une caméra - Version desktop du logiciel (mode lecture seulement)

Version 1

- Synchronisation limitée entre les équipes distantes (i.e. sans modification des post-its de l'autr moitié de l'équipe) - Version desktop du logiciel (écriture) : visibilité des post-its créés par l'autre moitié de l'équipe.

Version 2

- Modification des post-its numériques - Synchronisation complète : Messages d'informations pour signaler que le post-it n'est plus d'actualité (i.e. modification de sa version numérique sur une autre plateforme).

Perspectives d'amélioration

  • Utiliser les triggers des bases de données pour les mises à jour des backlogs
  • Utiliser une caméra couleur HD (qui rendent la détection des post-its plus faciles
  • Utiliser une Table tactile multi-touch (pour détecter plus de gestes et augmenter la robustesse de la détection)
  • Une intégration avec un Gestionnaire de Version
    • pour afficher plus d'informations sur les commits dans les pop-ups
    • ajouter des fonctionnalité de notification. (Grace à des hook par exemple)
  • Avoir un gestionnaire de calibration qui les sauvegarde et les restaure (pour ne pas avoir à recalibrer à chaque lancement du système).
  • Intégrer un moteur d'OCR pour, par exemple:
    • lire les noms des commiteurs sur les post-its
    • ajouter des fonctionnalités de tri ou de recherche dans les post-its

Avancement jour après jour

Du début juqu'au mardi 11 juin

Développement des morceaux de la version 0 :

  • Base de données
  • Calibration
  • Interface graphique
  • Pilotes de périphériques
  • Reconnaissance de gestes

Installation de bibliothèques sur le PowerMac, à compiler pour l'architecture PPC :

  • Qt (1 jour 1/2 de compilation)
  • OpenCV (1/2 journée de compilation)
  • Adaptation de la configuration de CMake pour Mac

Installation des bibliothèques sur l'iMac (à compiler en "universal" pour compatibilité 32 bits de la DiamondTouch) : 1 journée.

Débogage de problèmes réseaux (on aurait pu s'en passer en revoyant à la baisse nos exigences).

Mercredi 12 juin

L'application permet de calibrer, puis de poser un nouveau post-it. On obtient alors une estimation de sa position. Il faut encore le prendre en photo et enregistrer cette photo dans la BDD.

Jeudi 13 juin

  • Construction d'un module pour gérer les calibrations (sauvegarde, restauration, ...)
  • Convertisseur de "Touch Events" en "Click Events"
  • Changement du fonctionnement de serveur de Camera
  • Mise en place de mutex pour prendre plusieurs photos de manière séquentielle
  • Robustesse pour l'extracteur de post-its

Vendredi 14 Juin

  • Présentation de notre projet à Nicole Elysée (chargée de communication)
  • Début de l'implémentation de la gestion à distance des post-its

Lundi 17 juin

  • Détection de cliques doubles
  • Conception de la pop-up quand les post-its sont sélectionnés
  • Finition de la version desktop

Mardi 18 Juin

  • Changement de gesture pour la sélection pour plus d'intuitivité
  • Ajout de seuillage adaptatif des post-its et lissage des bordures
  • Version desktop (i.e. ajout, suppression, déplacement)

Mercredi 19 Juin

  • Préparation de la soutenance
  • Soutenance à blanc