Travailler en groupe
Les membres d'un groupe de deux personnes peuvent travailler soit en binôme, soit chacun de leur côté. Même s'il peut, à première vue, paraître plus efficace de travailler individuellement, nous vous conseillons de travailler en binôme car cela présente plusieurs avantages :
- les membres du binôme peuvent s'aider mutuellement à comprendre le projet et à trouver des solutions aux problèmes rencontrés,
- le projet a plus de chances d'être correct lorsqu'il a été écrit par deux personnes réfléchissant simultanément que par une seule,
- chaque membre du binôme connaît et comprend à tout moment la totalité du projet et en a ainsi une meilleure vue d'ensemble,
- il n'existe qu'une seule copie du code du projet, ce qui élimine tous les problèmes de synchronisation.
Néanmoins, les groupes qui le désirent peuvent également travailler individuellement. Quelques conseils sur chacun de ces deux types d'organisation sont donnés ci-dessous.
Travail en binôme
Le travail en binôme consiste à travailler systématiquement à deux devant un seul ordinateur. Un premier membre du groupe, le conducteur, tape au clavier, tandis que l'autre, l'observateur, l'assiste. Pour qu'une telle organisation soit efficace et profitable à chacun, il convient de respecter quelques règles :
- aucun des deux membres ne doit être passif, et l'observateur ne doit donc jamais faire autre chose qu'assister le conducteur,
- les rôles de conducteur et d'observateur doivent être fréquemment échangés, même (surtout !) dans le cas où un membre est plus expérimenté que l'autre,
- l'observateur ne doit jamais laisser le conducteur s'échapper, c-à-d qu'il doit toujours comprendre ce que le conducteur fait, et poser des questions lorsque ce n'est pas le cas.
Travail individuel
Le travail individuel consiste à travailler chacun de son côté sur des aspects différents du projet, et à se synchroniser périodiquement.
Avec une telle organisation, il est très important de trouver une bonne répartition des tâches, qui soit à la fois efficace et juste. Nous vous conseillons de procéder ainsi :
- la totalité du travail à effectuer est répartie de manière égale entre les deux membres du groupe, en tenant compte de la difficulté des différentes tâches,
- la division du travail se fait au niveau des classes, c-à-d qu'une classe (ou interface) donnée est développée en totalité par une seule personne qui en est propriétaire,
- les tests unitaires d'une classe donnée sont écrits par le membre du groupe qui n'en n'est pas le propriétaire.
L'avantage d'une telle organisation est que le partage du code écrit est relativement simple : comme chaque fichier Java ne contient qu'une seule classe et comme chaque classe a un propriétaire, chaque fichier a un propriétaire. Dès lors, chaque fichier n'est susceptible d'être modifié que par une personne — son propriétaire — ce qui évite les problèmes de modifications concurrentes.
Néanmoins, les groupes décidant de travailler individuellement feront bien de réfléchir à comment synchroniser leur travail. Quelques conseils sont donnés dans notre guide à ce sujet.