Proposta d'ús de les organitzacions en l'àmbit educatiu¶
En aquest apartat es proposa una metodologia de treball per a aprofitar les ferramentes
de GitHub, facilitar la gestió del treball de l'alumnat i la revisió dels projectes
per part del professorat.
Aquesta metodologia es basa en la creació d'una organització,
on s'allotgen de manera centralitzada els repositoris de l'alumnat i on el professorat té accés
a tots els projectes.
L'alumnat treballa en els seus propis repositoris privats
i el professorat pot crear repositoris públics amb solucions o exemples.
D'aquesta manera:
Professorat: té accés a tots els repositoris de l'alumnat.
Alumnat: té accés a tots els repositoris públics creats pel professorat,
però només als seus propis repositoris privats.
No obstant això, aquesta metodologia és complementària i no substitueix la plataforma educativa
amb què es treballa habitualment (Aules, Moodle, etc.).
L'objectiu principal d'aquesta proposta és que l'alumnat tinga normalitzat l'ús d'un sistema
de control de versions com Git, d'ús generalitzat en el món professional.
A partir d'aquest objectiu, la proposta també pretén:
Revisió: facilitar la revisió del treball de l'alumnat amb el sistema de control de versions Git.
Normalització: familiaritzar l'alumnat i el professorat amb l'ús de Git a l'aula.
Si el professorat l'utilitza de manera habitual, és més fàcil que l'alumnat comence a utilitzar-lo.
Gestió de projectes: aprofitar les ferramentes de GitHub per a facilitar la gestió
de projectes en grup, el seguiment de tasques i la revisió del treball.
Col·laboració: facilitar i incentivar la col·laboració entre l'alumnat.
Aquest és el cas més habitual: cada alumne o alumna treballa en el seu projecte i fa les tasques
de manera individual. Els passos per a preparar l'organització són:
Crea una organització a GitHub.
Personalment, m'agrada crear una organització per a cada grup i mòdul professional
amb la nomenclatura {centre}-{grup}-{modul}. Per exemple, fpmislata-daw1-ed
o fpmislata-dams2-psp.
Perfil de l'organització
Pots afegir el repositori públic .github i configurar el fitxer profile/README.md
per a definir el perfil de l'organització
( Adding a public organization profile README
– GitHub Docs).
Configura com a No permission els permisos dels membres de l'organització.
D'aquesta manera, l'alumnat no pot vore els repositoris privats de la resta de la classe.
Permisos de l'organització
Figura 2. Permisos de l'organització.
Convida l'alumnat a l'organització .
L'alumnat ha d'acceptar la invitació, que rep per correu electrònic, per a poder accedir a l'organització.
Alumnat com a membre de l'organització
Figura 3. Alumnat com a membre de l'organització.
Indica a cada alumne o alumna que cree un repositori privat.
Cal decidir quants repositoris privats ha de crear l'alumnat al llarg del curs acadèmic.
Personalment, demane que creen un únic repositori per a tot el curs,
amb la nomenclatura {Cognom}{Nom}-{modul}. Per exemple, PuigcerverJoan-ED o PuigcerverJoan-PSP.
No obstant això, també pot ser interessant crear diferents repositoris, un per a cada tasca o projecte.
En aquest cas, cal tindre en compte que el nombre de repositoris de l'organització augmentarà considerablement.
Repositoris de l'alumnat en l'organització
Figura 4. Repositoris de l'alumnat en l'organització.
Com a docent, crea els repositoris públics amb les solucions o exemples
que consideres necessaris.
Personalment, m'agrada crear un repositori equivalent al de l'alumnat, on resolc els exercicis
que fem a classe i on publique les solucions al llarg del curs.
El repositori .github és un repositori especial que s'utilitza per a definir el profile/README.md
que apareix en la pàgina principal de l'organització.
Repositoris públics del professorat en l'organització
Figura 5. Repositoris públics del professorat en l'organització.
En aquest cas, cada grup d'alumnes treballa en un mateix projecte i fa les tasques sobre el mateix repositori.
Els passos per a preparar l'organització són:
Crea una organització a GitHub.
Personalment, m'agrada crear una organització per a cada grup i mòdul professional
amb la nomenclatura {centre}-{grup}-{modul}. Per exemple, fpmislata-daw1-projecte.
Perfil de l'organització
Pots afegir el repositori públic .github i configurar el fitxer profile/README.md
per a definir el perfil de l'organització
( Adding a public organization profile README
– GitHub Docs).
Configura com a No permission els permisos dels membres de l'organització.
D'aquesta manera, l'alumnat no pot vore els repositoris privats de la resta de la classe.
Permisos de l'organització
Figura 7. Permisos de l'organització.
Convida l'alumnat a l'organització .
L'alumnat ha d'acceptar la invitació, que rep per correu electrònic, per a poder accedir a l'organització.
Alumnat com a membre de l'organització
Figura 8. Alumnat com a membre de l'organització.
Convida la resta del professorat a l'organització amb el rol Owner.
El professorat ha d'acceptar la invitació, que rep per correu electrònic.
Amb aquest rol, també té accés a tots els repositoris privats de l'alumnat.
Professorat com a propietari de l'organització
Figura 9. Professorat com a propietari de l'organització.
Crea un equip per a cada grup d'alumnes i afig-hi els seus membres.
L'equip , el repositori privat i el projecte els pot crear el professorat o un dels membres del grup.
Equips de l'alumnat dins de l'organització
Figura 10. Equips de l'alumnat dins de l'organització.
Crea un repositori privat per a cada grup
i afig-hi com a col·laborador l' equip creat anteriorment.
Repositoris dels projectes en l'organització
Figura 11. Repositoris dels projectes en l'organització.
Figura 12. Assignació de l'equip com a col·laborador del repositori.
Crea un projecte per a cada grup, on el grup pot organitzar les tasques
com a incidències.
Projectes per a gestionar les tasques
Figura 13. Projectes per a gestionar les tasques.
Figura 14. Projecte amb la planificació de tasques.
Com a docent, crea els repositoris públics amb les solucions, exemples
o plantilles que consideres necessaris.
En aquest cas, s'han creat els repositoris públics següents:
.github: repositori especial per a configurar el perfil de l'organització.
projecte-daw1: documentació del projecte.
projecte-template: plantilla del projecte.
Repositoris públics de l'organització
Figura 15. Repositoris públics de l'organització.
A partir d'aquest punt, els equips poden treballar de manera autònoma i gestionar les seues tasques
dins d'un únic projecte. Per a treballar de manera col·laborativa sobre el mateix repositori,
és important que facen un bon ús d'una de les Estratègies de ramificació.
A més, l'ús de GitHub és independent de la metodologia de treball que s'aplique a l'aula,
com ara metodologies àgils com Scrum o Kanban.
Exemple real: projecte intermodular de 1r de DAW amb Scrum
Amb l'alumnat de 1r curs de Desenvolupament d'Aplicacions Web (DAW), hem treballat en un
projecte intermodular en què es desenvolupa una aplicació web de temàtica lliure.
El projecte es fa en grups de 4 o 5 persones i es treballa amb la metodologia àgil Scrum.
Cada equip gestiona les tasques amb un projecte,
enllaçat a un repositori privat. Se segueix l'estratègia de ramificació següent:
Branques principals: s'utilitzen les branques develop i main.
Branques de funcionalitat: s'utilitza una branca feature per a cada tasca.
Pull Requests: s'utilitzen per a incorporar
les branques feature en la branca develop. En cada PR:
S'enllacen les incidències relacionades.
S'habiliten les revisions per part de la resta de l'equip.
Es configuren Actions per a executar les proves automàticament
abans de tancar la Pull Request.
S'utilitza merge --squash per a fusionar les Pull Requests.
En qualsevol dels dos casos, l'alumnat és propietari dels seus repositoris i en pot modificar
el contingut en qualsevol moment, fins i tot després del termini de lliurament de la tasca.
Per tant, és important establir un mecanisme de lliurament de tasques que permeta revisar
el treball que l'alumnat ha lliurat, independentment que l'haja modificat després.
L'opció més senzilla és crear una etiqueta o un
llançament (release) que identifique el commit
on es troba la versió del treball que es vol lliurar.
Etiquetes amb els lliuraments
Figura 16. Etiquetes amb els lliuraments.
Així, el professorat pot accedir al repositori privat de l'alumne o alumna i situar-se en aquesta versió
per a revisar el treball lliurat.
Es recomana utilitzar una etiqueta anotada per a poder comprovar la data en què s'ha creat.
Un altre aspecte que cal tindre en compte és que, si es delega en l'alumnat la creació dels repositoris
privats, l'alumnat els pot esborrar i perdre tot el treball, la qual cosa dificultaria la revisió
del treball lliurat en una reclamació posterior.
Per aquest motiu, personalment m'agrada demanar que lliuren el codi de la tasca comprimit
en la plataforma educativa oficial (Aules), amb l'enllaç al seu repositori.
Lliurament d'una tasca a Aules
Figura 17. Definició de la tasca a Aules.
Figura 18. Lliurament d'una tasca a Aules.
En la pràctica, no revise el codi lliurat a Aules, sinó que el consulte directament en el repositori privat.
No obstant això, de vegades l'alumnat ha tingut algun problema amb Git
i, gràcies a aquesta còpia de seguretat, l'he pogut avaluar.
Un dels principals reptes d'aquesta proposta és la gestió dels membres i dels repositoris de l'organització:
Gestió dels membres: GitHub no proporciona una manera senzilla de convidar
i gestionar en massa els membres de l'organització.
Gestió dels repositoris de l'alumnat: el nombre de repositoris de l'alumnat pot ser molt elevat,
i gestionar-los individualment pot ser complicat.
Per aquesta raó, he desenvolupat ghot (GitHub Organization Tools), una ferramenta de línia
d'ordres que permet gestionar de manera senzilla i ràpida els membres i els repositoris d'una organització.
Aquesta ferramenta permet fer les accions següents de manera massiva:
Membres: convidar i eliminar membres de l'organització.
Repositoris: crear, eliminar, clonar i actualitzar (pull) repositoris.
Incidències: crear incidències en els repositoris.
Convidar l'alumnat a l'organització amb ghot user invite.
Crear els repositoris privats amb ghot repo create.
Convidar cada alumne o alumna al seu repositori amb ghot repo invite.
joapuiib@fp:~$ghotuserinvite--dryfpmislata-daw1-edestudiants.csv
Total members: 1Pending invitations: 0ada.lovelace: Invitation sent to 'adalovelace' (dry).alan.turing: Invitation sent to 'alanturing' (dry).joapuiib@fp:~$ghotrepocreate--dry--privatefpmislata-daw1-edestudiants.csv
ada.lovelace: Repository 'fpmislata-daw1-ed/AdaLovelace-ED' created (private) (dry).alan.turing: Repository 'fpmislata-daw1-ed/AlanTuring-ED' created (private) (dry).joapuiib@fp:~$ghotrepoinvite--dryfpmislata-daw1-edestudiants.csv
ada.lovelace: User 'adalovelace' is not a member of the organization.alan.turing: User 'alanturing' is not a member of the organization.
S'observa que ghot repo invite no funciona en aquest cas: com que les ordres anteriors
s'han executat amb --dry, l'alumnat encara no és membre de l'organització.
📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent
a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.