Blog de Philip Doxakis    LinkedIn    GitHub    RSS

Suivi du temps

Les outils à votre disposition

Introduction

Lorsqu’on travaille au bureau, on passe beaucoup de temps sur l’ordinateur pour réaliser plein de tâches. Cela peut être difficile de faire le suivi du temps.

Approche courante

Temps travaillé = heure de fin - heure de début - temps de dîner

Le principal inconvénient est que vous n’avez pas une idée précise du temps que vous avez passé sur chaque tâche.

Pour un suivi plus précis

Il existe des outils qui surveillent votre activité sur l’ordinateur.

Dans le présent article, je vais vous introduire à ManicTime. (Disponible gratuitement sur Windows)

Essentiellement, il s’intéresse à 3 choses.

  • Votre présence (présent ou absent)
  • L’application au premier plan
  • Le document ouvert.

Dans le cas d’un programmeur, l’application pourrait être Visual Studio, le navigateur chrome ou Outlook.

Le document varie selon l’application. Par exemple, si vous êtes sur le navigateur chrome, le document correspond à la page web. Sur Visual Studio, cela correspond au fichier, le projet et la solution. Pour plus de détails, consultez cette page.

Si vous êtes motivé, vous pouvez ajouter des tags sur des intervalles de temps pour identifier les périodes de temps. Vous pourriez alors indiquer que vous avez travaillé par exemple sur le projet A.

Il y a des fonctions plus avancé si vous payez. Par exemple: capture d’écran, version serveur pour surveiller plusieurs ordinateurs.

Enfin, les fonctionnalités de base sont suffisantes pour une utilisation personnelle.

Alternative / Complément pour le suivi des tâches / commits sur Git

Vous n’en avez peut-être pas pris conscience, les dépôts Git contiennent une tonne d’information intéressante pour faire le suivi de vos projets.

Il y a quelques semaines, j’ai travaillé sur quelques scripts Shell pour extraire certaines données des dépôts Git.

Ils sont disponibles ici : https://github.com/doxakis/GitToCsv

Comment l’utiliser?

  • Vous aurez besoin d’un terminal. (sur Windows, vous pouvez utiliser git bash)
  • Se positionner au dossier parent à tous vos dépôts Git.
  • Il est possible que vous ayez à changer la valeur 5 pour une valeur plus élevée. (Cela indique la profondeur maximale pour la recherche des dépôts Git)
  • Exécutez les scripts suivants: (vous pouvez les télécharger localement si vous préférez)
curl https://raw.githubusercontent.com/doxakis/GitToCsv/master/findAllGitFolders.sh | bash -s . gitfolders.txt 5
curl https://raw.githubusercontent.com/doxakis/GitToCsv/master/globalGitCmd.sh | bash -s gitfolders.txt "git pull origin master"
curl https://raw.githubusercontent.com/doxakis/GitToCsv/master/gitToCsv.sh | bash -s gitfolders.txt result.csv

Quelques explications

  1. Le premier script va chercher sur votre poste de travail les dépôts Git à partir du dossier spécifié.
  2. Le deuxième script va mettre à jour les dépôts. (git pull origin master)
  3. Le troisième script va générer un fichier CSV avec les données suivantes : nom du projet, hash du commit, auteur du commit, date du commit, message du commit.

Ensuite, la partie intéressante commence :

  • Ouvrez le fichier CSV sur Excel.
  • Ajoutez un filtre sur la première ligne.
  • Vous pouvez maintenant trier et faire l’analyse.

Prenons un exemple simple :

  • Filtrez par un auteur
  • Trier par date du commit.

Cela vous permet de voir l’activité d’une personne pour l’ensemble des projets.

Prenons un exemple plus intéressant pour votre rencontre hebdomadaire avec votre patron :

  • Ajoutez une colonne “week number”. Utilisez la fonction WEEKNUM sur Excel avec la date du commit.
  • Trier par date du commit. (Le plus récent au début)
  • Alternez la couleur des lignes lorsque “week number” change.

Cela vous permet d’analyser la progression des projets pour chaque semaine en voyant l’activité. Vous pouvez voir les contributions de chaque personne et pour chaque projet.

L’importance d’utiliser une convention dans les messages de vos commits

Évidemment, si les messages de vos commits ne sont pas significatifs ou s’ils ne suivent pas une convention, c’est beaucoup plus difficile de faire le suivi.

Vous pourriez suivre la convention d’AngularJS pour les messages des commits

Cela vous contraint à suivre une convention pour les messages de vos commits.

Au minimum, je vous suggère de vous restreindre au format suivant :

<type de commit>(<portée>): <sujet>

Type de commit:

  • feat (fonctionnalité)
  • fix (correction de bogue)
  • docs (documentation)
  • style (format, manque “;” …)
  • refactor
  • test (s’il manque des tests)
  • chore (maintenance)

Portée: Soyez le plus précis sur la portée du changement.

Sujet: Écrit au présent, pas de point à la fin, pas de majuscule au début.

Conclusion

Pour conclure, voici quelques raisons qui pourraient vous motiver à essayer un meilleur outil pour faire le suivi de votre temps :

  • Permettre de vous améliorer
  • Identifier les tâches sur lesquelles vous passez peut-être trop de temps
  • Mieux estimer les tâches à l’avenir
  • Apprendre à mieux vous connaître

C’est normal d’être un peu mal à l’aise au début. Cela peut donner l’impression d’être “espionner”. Toutefois, sachez qu’avec le temps, on n’y pense plus et qu’il apporte plus de bienfaits que d’inconvénient.