Devise : convaincre les membres de l'équipe que leurs données sont anonymes et utiles pour leur scrum master.
Devise : convaincre les membres de l'équipe que leurs données sont anonymes et utiles pour leur scrum master.
Utilisateur “standard”
Chaque membre de l’équipe reçoit une URL partagée par sont scrum master, par ex. : https://smileagile.io/views/surveys/38df06b0c39b5e13eb136383cf5167226261/votes
Cette page web simple invite chacun à coter :
Scrum Master
En tant que scrum master, un tableau de bord récapitule tes équipes avec les statistiques des sondages passés en en cours, vue desktop :
Vue mobile :
Tu peux avoir une vue rapide des votes et commentaires :
L'icône presse-papiers copie les commentaires et les votes. La case à cocher extrait les commentaires.
Et bien sûr, tu peux suivre la tendance de l’humeur de ton équipe :
Le respect de la vie privée et de l’anonymat des votes sont la clé pour garantir des réponses honnêtes.
Cookie
Un cookie est utilisé pour stocker le jeton d’authentification une fois identifié. Ceci ne s’applique qu’aux scrum masters. Un second cookie est utilisé pour conserver la langue sélectionnée depuis le pied de page. En somme, si tu ne changes pas ta langue par défaut et que tu n’es pas un scrum master, aucun cookie ne sera placé ! Autrement dit, les cookies ne sont absolument pas requis pour voter.
Stockage local
Le stockage local est utilisé pour empêcher un utilisateur de voter 2 fois pour le même sondage. Seul le UUID du sondage y est placé, aucune donnée saisie par l’utilisateur n’y est stockée.
PHP est un langage controversé… j’adore !
PHP
J’ai choisis ce langage car il est de loin celui que je maîtrise le mieux. Cela dit, je n’ai pas codé depuis un bail ! Je voulais un “truc qui marche rapidement” avec un implémentation REST.
Mon MVP était ces 2 end points : POST /surveys/{survey_uuid}/votes
et GET /teams/{team_id}/chart
.
Slim était un choix simple.
Les semaines passants, j’ai demandé à mes équipes d’utiliser une commande cURL pout voter. C’était un succès total auprès de mes développeurs, beaucoup moins avec mes POs ! Il était temps de leur créer une page web simple à l’emploi. J’ai choisi BULMA pour le framework CSS et Twig pour le templating.
PHP est encore moqué, un langage de seconde zone. J’ai fais de mon mieux en tant qu’architecte PHP au sein d’ADP pour utiliser les meilleures pratiques logicielles. Nous n’avions pas à rougir de la comparaison des codes sources avec les équipes légitimes ‘Java’, en particulier en comparant les performance et montée en charge !
Swagger
C’est un item dans mon backlog !
Pour résumer : rester simple !
GUEST
C’est le rôle par défaut, avec évidemment, aucun besoin de s’identifier. Les invités peuvent voir les informations (dont cette page !), mais par dessus tout : peuvent voter grâce au lien Internet créé par le scrum master.
TEAMS.OWNER
Autrement nommé le scrum master. Ce rôle permet au scrum master de gérer ses équipes, les sondages et de visualiser les graphiques.
TEAMS.ADMIN
Ce rôle autorise l’administrateur à modifier toutes les équipes, y compris celles dont il/elle n’est pas le/la propriétaire.
ORGANIZATIONS.OWNER
Un scrum master de plusieurs équipes ou un niveau directeur. Ce rôle donne accès à la vue des départements et ainsi au graphique agrégé.
ORGANIZATIONS.ADMIN
Ce rôle autorise l’administrateur à modifier tous les départements, y compris ceeux dont il/elle n’est pas le/la propriétaire.
USERS.ADMIN
Ce rôle autorise l’administrateur à approuver les comptes des utilisateurs s’étant enregistré.
Prêt à aider et supporter une nouvelle langue ? Tu es plus que bienvenue !
Format
Toujours pas partisan de réinventer la roue. J’ai utilisé gettext pendant des années et m’a tant été utile que je ne me suis pas posé de question !
Outils
Tu peux bien évidemment éditer les fichiers .PO
à la main mais je préfère m’aider d’outils adéquats.
Dans ce cas, j’utilise POEDIT : il est si pratique que je le recommande chaudement.
Pas à pas
Mon repo Git n’est pas encore public, contacte l’auteur pour avoir le dernier fichier .PO
.
Le processus utilisera un Pull Request. Si tu n’es pas un développeur, demander et retourner la mise mise à jour à l’auteur est toujours une option.
Ce pas à pas utilise l’outil POEDIT cité ci-dessus.
Améliorer une traduction existante
Ouvrir l’outil :
Clique le bouton ‘Editer une traduction’ et choisis le fichier .PO
correspondant à la langue que tu veux améliorer :
Mettre à jour les traductions en utilisant ‘Catalogue/Mettre à jour depuis le fichier .POT
…’ :
Corrige/ajouter une traduction manquante :
Une fois les traductions terminées, enregistre ton travail grâce au bouton ‘Enregistrer’ :
Pour une raison qui m’échappe, tu pourrais avoir ce message d’erreur, tu peux l’ignorer :
Le fichier .PO
contient tes mises à jour. L’outil le compile automatiquement en un fichier .MO
.
Si tu peux créer un Pull Request, crée une ‘issue’ de traduction, ensuite un Pull Request s’y référençant. Si tu ne pouvez pas (mettons que le repository n’est pas encore public !), envoie simplement les 2 fichiers à l’autre. J’ajouterai ton nom dans les remerciements.
Traduire une nouvelle langue
Ouvrir l’outil, et choisis le fichier .POT
.
Choisis la langue tu veux proposer une traduction :
En enregistrant les fichiers .PO
et .MO
, la structure doit être la suivante :
~/src/locale/{language}[-{optional region}]/LC_MESSAGES
Et le nom de fichier comme suit : happiness.po
Prêt pour un rapide coup gagnant ?
La page la plus visible est celle des votes. Donc, pourquoi ne pas traduire cette page pour gagner en popularité ?
Mais biensûr ! Au lieu du fichier complet happiness.pot
, utilise vote.pot
!