De l’UX dans un bouton

Il existe trois règles impératives dans le circuit de validation de Timmi :

  • une feuille de temps ne peut être déclarée sans que toutes les précédentes le soient également
  • une feuille de temps ne peut être validée sans que toutes les précédentes le soient également
  • une feuille de temps ne peut être refusée sans que toutes les suivantes, en attente de validation, le soient également

Ces règles, qui contraignent l’ordonnancement du workflow sont une protection contre un problème bel et bien courant : le calcul d’éléments variables sur des périodes à cheval sur deux feuilles de temps.

En effet, les éléments variables dans Timmi sont calculés dès la déclaration de la feuille de temps. Un tel fonctionnement découle d’un des principes fondamentaux de l’application : tous les éléments relatifs aux temps du salariés ne doivent en aucun cas changer une fois la feuille de temps déclarée, ce qui est une garantie de fiabilité supplémentaire pour le salarié. Les éléments variables sont donc calculés à la déclaration, et dans le cas où ils sont calculés sur une période à cheval sur deux feuilles de temps, ils le seront sur la seconde. Toute modification a posteriori de la première feuille de temps doit donc entraîner un recalcul de la seconde, d’où les contraintes d’ordonnancement.

Maintenant que ce préambule est terminé, laissez-moi vous parler d’une petite évolution que nous avons apporté à Timmi. Auparavant, la contrainte d’ordonnancement de la déclaration des feuilles de temps se matérialisait par la désactivation du bouton « Déclarer », devenu impossible à cliquer. A compter d’aujourd’hui, Timmi est plus intelligent et dégrisera le bouton, pour proposer la déclaration groupée des feuilles de temps précédentes à son clic.

declarer

Il s’agit d’une implémentation beaucoup plus élégante, et bien moins pénible, de la contrainte de déclaration ordonnée. S’il ne s’agit que d’un bouton, cette évolution représente à nos yeux un pas supplémentaire vers notre objectif de réaliser la meilleure expérience utilisateur possible.