Bonjour à tous,
Le sujet a été discuté lors de la dernière réunion des dev’s de ZdS, et j’ai un peu traîné pour créer ce sujet (les vacances m’ont un peu éloigné d’Internet).
J’ai un diplôme d’ingénieur en informatique de l'ENSEIRB-MATMECA, école d’ingénieurs qui possède plusieurs filières, dont l’informatique. Cette école recrute à BAC+2, majoritairement des étudiants de classes préparatoires, mais aussi quelques étudiants sortant de DUT, licence, etc. En deuxième année (de l’école, donc équivalent à l’année du M1 à la fac), les étudiants ont un Projet au Fil de l’Année (PFA).
Projet au Fil de l’Année
Chaque groupe de 6 étudiants réalise de novembre à mai un projet correspondant aux besoins d’un "client". Le terme de client fait référence ici à la simulation d’une relation client/prestataire où un client vient voir un prestataire en informatique pour qu’il lui réalise un logiciel, site web, … bref qu’il code quelque chose. Généralement, on trouve des projets d’enseignants de l’école, des contributions à des logiciels utilisés pour les activités de recherche des enseignants-chercheurs, mais aussi des projets n’émanant pas de l’équipe pédagogique. Chaque étudiant choisit le projet sur lequel il souhaite travailler (les étudiants ayant choisi le même projet seront dans le même groupe). Pendant une première période, le groupe rencontre le client et rédige un dossier de spécifications : la liste des besoins recueillis auprès du client, la liste des tâches à réaliser concrètement dans la deuxième période du PFA. Les étudiants peuvent consacrer quelques (2, 4 ?) heures au PFA par semaine.
Le client n’a rien à payer à l’école ou aux étudiants pour la réalisation du projet. Mais il ne faut pas oublier que c’est un projet d’étudiants et non de professionnels : il arrive (malheureusement) que certains PFA ne se déroulent pas bien (le but du PFA est aussi d’expérimenter le travail d’équipe, l’organisation d’un projet, la gestion du temps, …) et/ou que le travail réalisé ne soit pas exploitable… Cela dit, ça reste des cas à la marge.
Un PFA sur Zeste de Savoir
J’ai proposé à l’équipe de développement de ZdS, lors de la dernière réunion, de soumettre un projet qui contiendrait quelques tâches de développement du site de Zeste de Savoir, voire de zMarkdown. Plutôt le genre de tâches un minimum conséquentes, pour lesquelles quelques heures de développeurs bénévoles en soirée ou le week-end ne suffisent pas .
Quelques idées de tâches à confier aux étudiants ont rapidement émergé :
- Migration de zmd vers micromark ;
- Évolution de l’interface de rédaction vers un système unifié (sans séparation entre les parties, chapitres et sections) et temps-réel ;
- Mise en place les évolutions du groupe de travail « Organisation des publications » ;
- Mise en place des parcours ;
- Nouvel éditeur ;
- Amélioration de la recherche (mise à jour de ElasticSearch, passage à un autre outil ?) ;
- Quizz et sondages.
Chaque idée méritant du contexte et une explication de ce qui serait attendu, un document Framapad contient ces éléments. Le but de ce document est aussi d’écrire collaborativement le sujet du projet que les étudiants consulteront pour choisir (ou pas !) de travailler sur ZdS.
Bien-sûr, il y a là trop de tâches pour que les étudiants puissent toutes les réaliser sur le temps du PFA. L’idée serait de les laisser choisir sur quelles tâches ils souhaitent travailler.
Déroulement du PFA ZdS
L’idée de ce PFA serait aussi de confronter les étudiants au monde du libre et notamment des contributions aux logiciels libres : utilisation de Git (et GitHub dans notre cas), revues de code, relations et échanges avec les développeurs amonts (l’équipe de dev de ZdS, ici).
Pour cela, l’idée serait commencer par faire contribuer les étudiants comme n’importe quel nouveau contributeur à ZdS : chaque étudiant du groupe met en place l’environnement de développement, réalise une première PR qui clôt un ticket (pré-mâché, par exemple ; c’est surtout pour prendre en main le mécanisme de PR de GitHub et se familiariser avec notre façon de travailler). Les étudiants seront bien-sûr invités à rejoindre le Discord de ZdS et poser leurs questions sur le canal dédié, comme n’importe quel contributeur. Cette première étape peut se faire dès le début du PFA, en parallèle de l’élaboration du document de spécifications.
Pour réaliser le document de spécifications, le groupe échangera (Discord, n’importe quel système de visio, …) avec l’équipe de dév pour avoir plus de détails sur ce qui est demandé pour chaque tâche.
Une fois le document de spécifications réalisé (les étudiants auront donc choisi les tâches qu’ils souhaitent réaliser), le développement se passe comme pour n’importe quel contributeur : les étudiants codent, posent des questions si besoin, font des PRs, obtiennent des commentaires sur les PRs, etc.
À la fin du PFA, les étudiants doivent rédiger un rapport présentant le travail réalisé et une présentation orale a également lieu.
Du côté de l’équipe de dev de ZdS
Je n’ai pas encore de date, mais le sujet du PFA que l’on souhaite proposer devra probablement être envoyé en septembre. D’ici là, il faut :
- se mettre d’accord sur les tâches à proposer, et leur contenu ;
- pour chaque tâche, identifier un membre de l’équipe de dev qui pourra suivre la progression des étudiants sur cette tâches, notamment répondre aux questions, échanger avec eux, faire de la QA sur leurs PRs, etc. En gros : être réactif et disponible (potentiellement plus que ce que demande une contribution bénévole à ZdS) ;
- rédiger le sujet final à envoyer : rédiger l’introduction (présentation de Zeste de Savoir, les différentes briques techniques), rédiger le déroulement le PFA (grosso modo la partie ci-dessus) et peut-être raccourcir un peu les descriptions de chaque tâche (ce qui est déjà rédigé me paraît assez long, il suffit que les étudiants aient un aperçu de ce qu’il y a à faire, la version détaillée est cependant bien pour se mettre d’accord entre nous ; on discutera avec les étudiants des détails lors de la phase de rédaction du document de spécifications)
Ayant fait un PFA en tant qu’étudiant, ayant été client pour un PFA lors de ma thèse, et connaissant bien l’école et l’équipe pédagogique, je me propose naturellement comme client "officiel", pour faire l’interface entre le responsable des PFA et l’équipe de dev de ZdS (bref, ce sera mon nom et mon adresse mail dans leur liste de clients de PFA).
Ce sujet est là pour discuter de ce projet. N’hésitez pas à poser vos questions (elles étaient nombreuses lors de la réunion des dev’s !), proposer des tâches ou simplement discuter de celles qui ont déjà été évoquées.