6.b Collaboration, implémentation, outils - sean-vergauwen/tattooReactJS GitHub Wiki

Résumé coaching 6.b

ORGANISATION DU GROUPE [A COMPLETER CI-DESSOUS]
+ Le groupe présente sur le wiki la manière dont le groupe s'organise : planification des échanges et rencontres, déroulement et timing des réunions et séances de travail, outils de communication utilisés, …
+ Le groupe applique au quotidien l'organisation décrite dans le wiki
+ L'ambiance est bonne dans le groupe et chacun a l'occasion de s'exprimer et de s'investir.

WIKI ET COACHING [A VERIFIER]
+ Le wiki est correctement complété au fur et à mesure
+ Les coachings sont bien préparés à l'avance, pour rapidement présenter les points prioritaires du jour et poser les bonnes questions
+ Le fichier de suivi est bien complété par tous les membres du groupe avant chaque coaching
+ La bibliographie est bien présentée, présente des liens intéressants et montre que les étudiants se sont bien documentés. 
+ Les ressources sont directement référencées dans le texte lorsque cela fait sens. 
+ Le groupe n'attend pas : s'il a des questions techniques, il les pose d'abord directement sur le chat.

GIT [A VERIFIER]
+ Le groupe applique concrètement le workflow git prévu

GESTIONNAIRE DE TACHES [A COMPLETER CI-DESSOUS ET VERIFIER]
+ Les colonnes du gestionnaire de tâches sont appropriées (Backlog, todo, doing, to review, Done...)
+ Les tâches dans le gestionnaire sont appropriées et dans le bon état
+ Chacun s'assigne lui-même ses tâches et les place dans les bonnes colonnes.
+ Tout travail réalisé par un étudiant se trouve bien en tant que tâche dans le gestionnaire.
+ On peut facilement faire la différence entre les US et les tâches techniques ou autres.

TEMPS [A VERIFIER]
+ Pour ce projet il est possible de savoir combien de temps a été passé sur quelles parties du projet (backend, DB, API, frontend, test, analyse, + + + réunion, formation, rédaction, ...)
+ Il est possible de savoir combien de temps chaque membre a travaillé sur le projet.

OUTILS communication, développement, partage et autres [A COMPLETER CI-DESSOUS]
+ Le groupe présente les outils qu'il utilise pour communiquer, partager des fichiers, assurer les réunions, etc…
+ Le groupe présente les outils qu'il utilise pour développer
+ Le groupe présente éventuellement d'autres outils utilisés et présente leur utilisation

QUALITE DU CODE [A COMPLETER CI-DESSOUS]
+ Un linter est connu, utilisé et maitrisé
+ Une convention de codage a été définie et documentée sur le wiki
+ Le code respecte la convention de codage, le style est uniforme
+ Le code respecte les bonnes pratiques de programmation (nommage des variables, limitation du niveau d'imbrication, etc.)
+ Le code est adéquatement documenté, éventuellement selon la programmation par contrat (pré/post conditions)
+ Le code est lisible et facilement compréhensible par un développeur non impliqué dans le projet
+ Le groupe a mis en place des reviews de code systématiques et peut le démontrer

1. Organisation du groupe

Dans le cadre de notre projet de groupe, nous avons mis en place une organisation rigoureuse et collaborative, principalement basée sur des réunions récurrentes sur Discord. Cette plateforme nous a permis de tirer parti de ses nombreux avantages, tels que la création de différents channels dédiés à des aspects spécifiques du projet, facilitant ainsi une communication ciblée et efficace. Les outils de réunion et de partage d'écran offerts par Discord ont grandement amélioré notre travail en groupe, permettant des échanges en temps réel et une collaboration instantanée.

Notre groupe a adopté une structure sans leader, ce qui a permis à chacun de profiter des connaissances et des compétences des autres membres. Cette approche horizontale a favorisé une communication libre et ouverte, où chaque idée pouvait être exprimée sans crainte de jugement. L'absence de hiérarchie a également encouragé une prise de parole équitable, renforçant notre dynamique d'équipe et la qualité de nos discussions.

Nous avons mis un point d'honneur à maintenir un environnement respectueux, où aucune idée n'était jugée de manière négative. Chacun des membres a fait preuve de maturité en mettant son ego de côté, ce qui nous a permis d'aborder sereinement les sujets sensibles et de résoudre les désaccords de manière constructive. Cette attitude a été essentielle pour avancer ensemble et atteindre nos objectifs communs dans une ambiance harmonieuse et productive.

2. Ambiance dans le groupe

Dans l'ensemble, le déroulement de notre projet de groupe s'est bien passé, avec une ambiance amicale et conviviale qui a renforcé notre esprit d'équipe. La répartition de la charge de travail a été globalement bien équilibrée entre les membres, chacun comprenant clairement les tâches qui lui étaient assignées. Cette bonne compréhension des rôles a contribué à notre efficacité et à la progression harmonieuse de notre projet.

Cependant, nous avons rencontré quelques difficultés. Parfois, une mauvaise estimation de la charge de travail assignée à un seul membre a conduit à des retards et à des deadlines non respectées.

Un autre défi a été notre dépendance aux plannings individuels, étant donné que ce projet s'inscrit dans un cursus avec d'autres cours. Certains membres ne pouvaient pas toujours se rendre disponibles en raison de leurs autres engagements académiques. exemple : Maxime qui s'occupait du CSS en début de projet avait commencé à utilisé Bootstrap pour la mise en page, il a ensuite eu sa semaine internationale et en raison du manque de formation des autres membres, Bootstrap a été mis de côté au profit d'une refonte graphique totale en CSS natif

Malgré ces obstacles, tout le monde dans le groupe a l'impression que nous sommes suffisamment organisés et que les efforts de chacun sont appréciés.

3. Outils utilisés

3.1 Gestionnaire de tâches

Pour organiser notre gestion des tâches, nous avons utilisé GitHub Projects. Nous avons décidé de garder les colonnes par défaut du tableau Kanban parce qu'elles nous semblaient cohérentes avec l'état d'avancement du projet.

3.2 Gestionnaire de temps

Pour la gestion du temps, nous avons établi des deadlines en accord avec tous les membres du groupe. Cette méthode collaborative a assuré que chaque échéance était réaliste et tenait compte des autres engagements académiques de chacun.

3.3 Outils de communication et de partage

Notre principal outil de communication et de partage a été Discord. Nous avons utilisé différents channels pour organiser les discussions par thème et aspect du projet, tels que des channels dédiés à la planification, au développement, et au partage de ressources. Discord nous a également permis de partager des tutoriels et des formations sur les différents aspects de la stack MERN, facilitant ainsi l'apprentissage et la résolution de problèmes techniques en temps réel

3.4 Outils de développement

Pour le développement, nous avons utilisé plusieurs outils essentiels :

  • Postman pour tester nos API et garantir leur bon fonctionnement.
  • VPS (Virtual Private Server) pour héberger nos applications et permettre des tests en conditions réelles.
  • Docker pour containeriser nos applications, assurant ainsi une portabilité et une consistance entre les environnements de développement et de production.
  • Visual Studio Code comme environnement de développement intégré (IDE) principal, avec diverses extensions pour supporter notre workflow.
  • MongoDB Compass pour gérer et visualiser nos bases de données MongoDB, facilitant ainsi le développement et le débogage des requêtes.
  • React Developer Tools pour Chrome, une extension de navigateur permettant de visualiser l'arbre des composants de l'élément sélectionné dans le navigateur. Cet outil nous a été très utile pour le débogage et l'optimisation de notre application React.

3.5 Autres outils

/

4. Qualité du code

En termes de convention de codage, nous n'avons pas décidé d'une convention en particulier. Néanmoins, comme la plupart des membres du groupe n'ayant que peu ou pas du tout de background en développement web et ayant été tous formés à la même enseigne( càd ici à l'ephec ) , notre "grammaire" de code se ressemble fortement ce qui rend le code compréhensible par tous, ce qui en fait un atout pour nous. En terme de lisibilité et cohérence du code , nous avons utilisé "prettier" de visual studio code pour avoir un formatage uni entre tous nos fichiers.