17 septembre 2010

Quelle adoption pour Git en entreprise ?

Lors de ma conférence au JugSummerCamp Emmanuel Bernard a soulevé une question pleine de bon sens :
"Comment vois-tu l'adoption de Git en entreprise".

C'est clair que Git est pénalisé par l'image de Geek qui lui colle à la peau : construit par Linus Torvald, utilisant la ligne de commande avec des options tortueuses, ...

FlashBack :

Quand j'ai commencé à bosser, on attaquait tous en telnet un serveur de dev, sur lequel code source et résultat de compilation était allègrement mélangés dans des répertoire ou tout le monde tapait son code sous vi/emacs, sans plus de gestion de version en dehors de la sauvegarde hebdomadaire sur bande.

Quelques années plus tard, première révolution avec Visual Age et son gestionnaire de version centralisé, basé sur la prise de verrous sur les fichiers. On entre dans un mode de concurrence et de gestion collaborative, où chacun dispose d'une copie de travail dédiée sur son poste de développement.

Plus tard, seconde révolution avec CVS puis SVN : l'absence de verrous permet de travailler sans "subir" les actions en cours des autres développeurs. La problématique des merge apparaît, mais l'outil est tout de même assez efficace pour les gérer, en particulier sous Eclipse qui devient notre environnement quotidien.

Aujourd'hui, les DVCS portent une nouvelle révolution : la séparation du workflow projet et de celui du développeur. Le travail local, basé sur des tentatives multiples, des retours arrière, des recherches dans l'historique, bénéficie pleinement d'un gestionnaire de version. Pour autant, le reste de l'équipe ne subit pas vos diverses branches et commits en tout genre. Le merge de branche devient étonnement efficace, le mot "branche" n'est plus synonyme de "galère".

Il ne fait aucun doute pour moi que les DVCS vont s'imposer, alors to Git or not to Git ?

D'une part, Git est nativement supporté dans Eclipse (bien que ce soit encore améliorable) ce qui devrait faciliter les choses. Les outils graphiques comme TortoiseGit facilitent aussi son utilisation. La ligne de commande reste le plus efficace, mais avec le temps et le murissement de ces outils, on devrait pouvoir s'en passer progressivement (enfin, pour ceux qui veulent).

Reste que les concepts sont encore neufs et qu'il va falloir ses les approprier. Pour ça il faut des précurseurs, qui porteront ainsi le reste de l'équipe et assureront le support de niveau 1 - et Git-svn va nous y aider.

Git-svn permet d'utiliser Git en local avec tous les avantages que cela implique, sans que la référence svn soit impactée. Ceux qui doivent effectuer des opérations non triviales (refacotring), ou bien passer souvent d'une tâche  à l'autre (corrections de bugs), ou encore qui ont une culture geek pourront le tester, l'apprivoiser, puis l'adopter. Contrairement aux autres "révolutions" que j'ai évoqué, celle-ci va se faire en douceur. Une fois que  l'équipe aura utilisé au moins une fois Git sur son poste, le remplacement de SVN sera naturel.

Après tout, il y a 13 ans (putain, 13 ans !) si j'avais parlé de faire une branche alors qu'on avait besoin d'éditer avec vi un même fichier depuis notre telnet, je serais passé pour un geek (en fait, c'était déjà le cas pour d'autres raisons). Je me rappelle aussi une discussion interminable avec un I.Q. lors du passage à CVS, lorsque j'expliquais qu'on travaillait à plusieurs sur le même fichier, sans mécanisme de verrou ...

Aucun DSI n'imposera Git à ses équipes, par contre les équipes qui y ont goûté le réclameront rapidement. Il y aura donc, comme toujours, les boîtes qui savent suivre le mouvement à temps et celles qui courent derrière le train. C'est aussi à toi, fidèle lecteur, de faire du lobbying, selon la catégorie dans laquelle tu veut entrer. Fais toi la main, parles en et montre le à tes collègues, râle un bon coup sur SVN, et le projet "pilote" pointera le bout de son nez.

14 septembre 2010

La face B des JUG

En tant que JUG-Leader je suis confronté à un cas de conscience : j'ai des tonnes d'idées, mais pas assez de temps pour tout faire. En particulier, l'organisation de "grosses" soirées-conférence me bouffe la majorité de mon temps. Il existe pourtant une autre dimension dans un JUG : l'aspect communautaire, celui qui nous pousse à donner de notre temps pour recevoir autant sinon plus de la part des autres membres.

Au détour d'un ParisJug j'ai rencontré les JavaDuchess. Comme probablement une majorité d'entre vous je ne comprenais pas bien le sens de ce groupe. Défendre le droit des femmes dans un monde machiste ?

JavaDuchess n'est pas un mouvement féministe. Bien sûr il s'agit de montrer que les femmes aussi ont leur place dans un monde technique et de couper court à toutes ces petites réflexions qu'on a tous fait un jour ou l'autre, parfois sur le ton de la plaisanterie, parfois avec moins de tact.

Pour vous expliquer ce que représente JavaDuchess, la métaphore qui me vient à l'esprit c'est la "face B" :

Quand vous achetez le best-of de Sting and The Police, vous trouvez sur le premier CD les incontournables Roxane, Russians, Message in a bottle et compagnie. Mais à côté de ce CD dont les titres ont fait le succès du groupe et qui passent encore en boucle sur toutes les ondes, il y a le second CD, les "faces B". Tous les titres qui n'ont pas été retenu pour le "gros" album, des choses plus expérimentales, plus personnelles, plus intimistes, et dans pas mal de cas des petites perles qu'on écoute avec plaisir.

Les Duchess, c'est pour moi la face B des JUGs. Ce n'est pas un Virtual JUG à la développez.com, car la convivialité est un pilier du groupe, et les rencontres 'IRL" sont le meilleur moyen de souder l'équipe. Ce n'est pas non plus un JUG au sens traditionnel car il n'a pas de lieu physique précis et elles n'organisent pas des événements come ceux auquels vous êtes habitués. Par contre, en marge du JUG il y a de nombreuses actions qui profitent à tous et permettent aux Duchess de créer des liens forts et de prendre une place dans la communauté qu'elles n'auraient jamais obtenues individuellement (vous savez, le total supérieur à la somme des parties, tout ça).

Parmi les actions des Duchess que j'apprécie, (excusez moi les filles si j'oublie des trucs) :

  • Les rencontres avant/après JUG ! Convivialité, rencontre, échanges. De ce point de vue la mixité est une force pour assurer une super ambiance - hé oui, les réunions des Duchess n'est pas réservé au filles!
  • Le blog. Peu de gens ont le temps et la matière pour animer un blog et s'assurer un public significatif (pour en arriver là il faut troller à mort sur Maven vs Sonatype, et encore...). Ce que ne veut pas dire qu'ils n'aient rien à dire. Le blog des duchess est "collaboratif". Chacun(e) peut y publier un billet, demander de l'aide ou une relecture. Même si vous n'êtes pas technique, juste faire un compte rendu de la dernière conf c'est déjà très bien pour animer la communauté et "se lancer".
  • L'agenda, qui recense les événements et permet de savoir ce qui se passe dans le coin. Tiens, une soirée Agile ? Tiens, Julien Dubois refait sa pres' Spring en production au SUG ? Seul regret : que l'agenda ne soit pas géolocalisé pour nous offrir une vue mixant planing temporel et proximité géographique (qui se lance pour nous faire un mashup Google Maps + Google Agenda ?)
  • Les groupes de travail. Pour l'instant à ma connaissance uniquement autour de la certification SCJP, mais pourquoi pas d'autres sujets ? C'est toujours plus motivant de travailler à plusieurs.
  • Le "covoiturage". C'est déjà pas facile d'être la seule fille dans une assemblée de 50 mecs, alors pour se motiver à aller à une conférence de techos ... sauf si on trouve du monde pour y aller à plusieurs, des "copines" rencontrées sur le Net. Le concept ne se limite pas qu'au filles d'ailleurs : combien d'entre vous sont le seul de la boîte à aller au soirées JUG ? Combien passent pour des allumés en expliquant ce concept geekesque aux collègues - "Tu n'as pas assez de ta journée de boulot ?"

Probablement plein d'autres idées (sans compter toutes celles que j'oublie) à fleurir de ce côté. Des tas de petites choses, qui ne fonctionnement que grace au groupe, mais qui en font que la communauté Java fonctionne dans les deux sens, et pas juste un rendez-vous mensuel de conférence où l'on vient consommer sa dose de technique, puis "salut, au mois prochain".

PS : je suis désormais membre des Duchess moi aussi, si vous avez des idées pour mettre en place un truc à Rennes mais que vous avez besoin d'un coup de pouce, vous savez où me trouver.