Développement collaboratif
Citation de Kant :
- ...l'on ne peut point considérer sans admiration combien, dans l'intelligence commune de l'humanité, la faculté de juger en matière pratique l'emporte de tout point sur la faculté de juger en matière théorique.
Quelques définitions
Nous avons souvent l'occasion d'entendre parler de développement, de collaboration et nous avons tous une certaine expérience du travail d'équipe ainsi qu'une (probablement) certaine expérience de la programmation.
Le monde de la programmation est une sorte de vase clos. Le programmeur a tendance à s'enfermer dans un langage de programmation et à limiter ses interactions directes avec les autres programmeurs que lorsqu'il rencontre des ennuis ou qu'il s'ennuie. Il y a dans les entreprises de développement collaboratif une façon globale d'organiser le développement, selon une structure, dans un objectif précis et une séparation des tâches à effectuer.
Mais qu'en est-il dans la réalité, lorsqu'un des développeurs a besoin de changer un bout de code dans un fichier ? Comment des équipes de programmeurs font-elles pour ne pas corrompre le travail des autres en écrasant malencontreusement un fichier mis à jour par un autre ? Cela nous est tous arrivé de perdre des données par une bêtise toute bête, alors imaginez en multipliant le nombre d'utilisateur d'un même espace !
Le collaboratif sans organisation finalement, ça n'est rien de plus que de ne pas toucher le travail de l'autre, ainsi cela crée des frontières importantes entre les travaux de chacun et il arrivait fréquemment qu'à cause de ces frontières, chacun développait son bout de code à sa sauce afin de faire rouler sa partie d'application. Créant de la redondance à perpétuité.
Aujourd'hui, nous avons droit à des outils suffisamment performant pour permettre une véritable collaboration au travers de l'équipe de programmation. Ces outils sont en fait des dépôts où l'on place une copie primaire d'une application. Ce dépôt va ensuite conserver une copie de chaque version de chaque fichier qui sera placé à l'intérieur. Chaque développeur devra ensuite mettre à jour sa copie de travail de l'application avant d'y opérer des modifications. Dés qu'il a terminé ses modifications, il devra mettre à jour la version primaire, afin que les autres programmeurs puissent travailler avec ses transformations et les valider.
Rien de bien différent que de travailler avec un bon vieux FTP me direz-vous. Erreur, car lors de la mise à jour, il y a une vérification des deux copies des fichiers et si un autre à travailler sur le même fichier, il sera prévenu du risque d'écrasement et devra scinder les modifications apporté par l'autre pour pouvoir mettre à jour la version primaire.
Les bonnes pratiques
Les moins bonnes pratiques
Les outils
- Subversion - de son petit nom SVN
- Évolue assez rapidement, est aujourd'hui le standard en matière de développement collaboratif
- Concurrent Versioning System - de son petit nom CVS
- Est encore utilisé dans plusieurs projets qui ont la vie dure, mais la plupart des projets transitent tranquillement vers le SVN