La communauté Ruby vue par… Yann Klis !


  • Share on Pinterest
Bonjour Yann,
Il n’est pas rare d’entrendre parler de toi dans la communauté Ruby. Je souhaite interviewer quelques personnes aux profils divers afin d’avoir un état des lieux de la communauté en France et de réfléchir ensemble à comment la faire évoluer.
Si tu le veux bien, j’aimerais en savoir plus sur ta vision de Ruby.

– Peux-tu tout d’abord te présenter en quelques lignes ?

Yann KlisJe m’appelle Yann Klis, j’ai 33 ans et j’habite Strasbourg. J’ai créé Novelys en 2005, une petite entreprise dont la vocation est le développement d’applications web. Par application web, j’entends sites web complexes dont les développements peuvent durer plusieurs mois, voire plusieurs années. On ne fait pas d’intégration de CMS, de blog ou de boutique en ligne. Chaque projet est nouveau (certains diront innovant). Depuis le départ, nous utilisons Ruby et Ruby on Rails, ce qui nous place parmi les premiers en France à avoir utilisé cette technologie. Le fait que Ruby on Rails soit relativement récent dans le paysage fait qu’à peu près la moitié de nos clients sont des startups, ou tout du moins des projets en création, c’est-à-dire où tout est à faire mais aussi sans historique. L’autre moitié de nos clients sont des gens qui viennent spécifiquement nous voir pour nos compétences Ruby/Rails ou alors parce que nous allons pouvoir régler un problème complexe grâce à Ruby/Rails.

– Quand as-tu commencé à développer en Ruby ? Quelles ont été tes motivations ?

Le logo du langage de programmation RubyEn fait, en mars 2005, j’avais pris la décision de monter ma propre boîte. Après une petite analyse, je me suis dit que le domaine qui me plaisait le plus c’était le web. Je n’avais pas à ce moment là d’idée de produits (je n’avais pas non plus de capital à mettre dans le développement d’un produit). Novelys allait donc vendre ce que j’avais à ma disposition : mon corps (mon cerveau en fait). Il me fallait donc une techno ayant des performances acceptables et avec laquelle j’allais pouvoir travailler pour mes futurs clients.
C’est à peu près à ce moment là qu’une première version de Ruby on Rails a été rendue publique et que le framework a commencé à être médiatisé. Pour bien évaluer la techno, j’ai décidé de développer un premier prototype(une “tribune” en l’occurrence http://linuxfr.org/board/). J’ai été très surpris par la facilité et le fun avec lesquels j’ai pu développer ce projet et surtout, je n’ai rencontré aucune barrière technique à ce que je voulais faire. Et la documentation (certes spartiate à l’époque) me faisait entrevoir que je n’allais sans doute rencontrer aucune barrière technique dans le futur puisque Ruby on Rails se base sur le langage Ruby, qui est un langage généraliste.
En octobre 2005, Novelys était née et j’ai commencé dans la foulée un premier projet pour un client, qui s’est d’ailleurs très bien déroulé.

– Considères-tu Ruby et Ruby on Rails comme un avantage concurrentiel ? Pourquoi ?

Ruby et Ruby on Rails offrent clairement un avantage concurrentiel par rapport à d’autres technos. Pour plusieurs raisons.
Tout d’abord, la productivité est très très bonne avec Ruby on Rails. Tout est fait dans le monde Rails pour augmenter la productivité : on écrit du code réellement utile au client, du code qui apporte de la valeur ajoutée au projet du client et Rails nous offre l’infrastructure conventionnelle pour le reste.
Ensuite, Rails est un projet d’ingénierie logicielle. On sent clairement que les auteurs ont factorisé tous les Design Patterns, toutes les bonnes pratiques qu’ils ont rencontrés et trouvés utiles.
Le soubassement technique de Rails, c’est bien le langage Ruby. C’est un langage moderne, orienté objet “pur” et extrêmement dynamique : on peut redéfinir de manière dynamique beaucoup de choses. La possibilité de faire facilement de la méta-programmation, d’avoir cette possibilité dans notre boîte à outils quotidienne, est un avantage concurrentiel incontestable. Ruby est aussi un langage qui se lit facilement. Cela signifie qu’il est facile de maintenir du code dans le temps, que ça soit notre code écrit il y a quelques semaines ou celui de quelqu’un d’autre.
Bref, c’est fun et plaisant de coder avec Ruby et Rails !
Ce qui m’amène à la dernière pièce du puzzle : la communauté. D’une part, il y a un nombre incroyable de bibliothèques de programmation de très bonne qualité. Si vous rencontrez un nouveau problème, il y a de fortes chances que quelqu’un d’autre dans la communauté, aux Etats-Unis, en Allemagne ou au Vietnam ait déjà eu le même problème et ait développé et mis à disposition une bibliothèque (un “gem” dans le monde Ruby). Il est ensuite très facile de contribuer à son tour. D’autre part, la communauté est très tournée vers l’amélioration continue. Très régulièrement une nouvelle techno, une nouvelle façon de tester, une nouvelle façon d’interagir avec le langage Javascript apparaît et passe à travers les fourches caudines de la communauté. Une sorte de filtre qui évalue les technologies et qui la popularise ensuite ou pas. C’est par ce mécanisme que MongoDB a été popularisé très tôt dans le monde Ruby.

– Peux-tu me décrire ton environnement de travail habituel ? Quels gems, langages, techno, OS, IDE, méthodes utilises-tu ?

Pour ma part, j’utilise un laptop sous Ubuntu Linux. J’utilise gvim (avec Janus), gnome-terminal et Firefox/Firebug. Du côté serveur, j’utilise quasi-exclusivement Ruby, Rails et parfois EventMachine (j’évalue NodeJS de temps en temps). Point de vue base de données on utilise beaucoup MySQL et MongoDB (très rarement PostgreSQL). On commence à utiliser Redis, notamment pour son module PubSub. Du côté Javascript, on utilise jQuery, en conjonction avec Backbone lorsque le “Front Office” devient imposant. Au jour le jour, on utilise XP et Lean pour coordonner nos travaux avec nos clients. Notre code est (évidemment) hébergé chez Github et on utilise notre propre logiciel de gestion de projets (MasterSieve).
Nous hébergeons les applications de nos clients chez Amazon Web Services, Heroku, OVH ou Dedibox suivant les spécificités de l’application ou les besoins ou préférences du client.
Voici une liste non exhausitve des gems que j’utilise le plus souvent : rails, haml, sass, devise, will_paginate, mongoid, omniauth, capistrano, airbrake, paperclip, state_machine, whenever.

– Que penses-tu de la communauté Ruby en France ?

En France, on a une bonne communauté de startups, qui se structure peu à peu et on a aussi une bonne culture du développement logiciel (on a quelques beaux succès en France, comme Business Objects). Ceci devrait faire de notre pays un terreau fertile pour l’adoption de Ruby et Rails. Mais paradoxalement, il n’en est rien, l’adoption du langage reste faible.
En fait, il y a 3 ou 4 ans, lorsqu’il y a eu les premières rencontres physiques de développeurs Ruby, nous pensions que l’adoption de Rails allait être massive, vue les qualités intrinsèques du projet. Mais l’adoption a suivi une croissance très lente, près de la stagnation, et ce n’est que depuis un peu plus d’un an que cette croissance a l’air de s’accélérer un peu… Et là, je pense que c’est surtout lié à la culture de la nouveauté dans les entreprises françaises (mais pour avoir quelques contacts en Allemagne, le constat est le même là-bas). Elles investissent depuis plus de 10 ans sur les technologies Java (puis .Net) ou PHP et n’ont que faire de passer à une nouvelle technologie, même si elle semble avoir plus de qualités que les solutions actuellement en place. Le marché Ruby/Rails en France me semble être largement dominé par les startups, des entreprises qui basent leur nouveau produit sur cette technologie ou des projets “commando” dans des entreprises plus établies. Nous avons eu fréquemment le cas suivant : la direction commerciale de l’entreprise, frustré par la lenteur de sa DSI, décide de financer sur son propre budget l’application dont elle a besoin. Le couple Ruby/Rails permet dans ces cas là, de s’interconnecter facilement avec tous les systèmes existant et de pouvoir développer une solution qui sera en place le mois suivant pour les utilisateurs !
Ceci fait qu’il y a une myriade de micro-boîtes de services en France autour de Ruby. En général, ce sont 1, 2 ou 3 personnes, souvent les fondateurs, qui ont eu envie de se mettre à leur compte, parfois frustré de ne pas pouvoir utiliser le langage Ruby dans leur travail de tous les jours. Rare sont les pure player Ruby/Rails dépassant ce nombre d’employés. Les autres développeurs Ruby/Rails de la communauté sont employés dans des startups dont le produit est développé avec le langage Ruby/Rails. Mais depuis un peu plus d’un an, on voit apparait de nouveaux développeurs qui font partie de service “Ruby” au sein d’entreprises plus traditionnelles.
Du côté des emplois, j’entends beaucoup d’entreprises se plaindre du peu de développeurs Ruby/Rails disponibles sur le marché. Et c’est une chose que j’ai du mal à comprendre. C’est d’ailleurs un problème que je n’ai finalement pas connu chez Novelys : nous n’avons jamais eu de problèmes de pénurie de main d’oeuvre. Mais il est vrai que nous avons très tôt mis en place une stratégie pour pallier ce genre de problèmes : nous intervenons régulièrement dans des conférences, nous organisons régulièrement des conférences, nous sponsorisons régulièrement des évènements, nous intervenons dans des écoles et universités. Ceci fait que nous trouvons des stagiaires motivés que nous pouvons finalement embaucher ou, autre possibilité, nous cherchons (et nous trouvons) de bons développeurs web qui nous connaissent déjà un peu, que nous formons ensuite à Ruby et Rails. Nous avons donc mis en place une démarche proactive. Mais il est vrai que les étudiants ou les entreprises ne sont pas assez sensibilisés à Ruby.
En ce qui concerne les évènements, il y en a déjà un certain nombre en France, qui cible des publics différents et qui ont des fonctionnements différents.

– As-tu des idées pour améliorer la situation actuelle de la communauté ruby ?

En ce qui concerne la formation, j’enseigne des modules de Ruby, de développement web ou de stratégie des startups et j’interviens régulièrement dans plusieurs écoles et universités à Strasbourg. Je sais que d’autres font la même démarche ailleurs en France.
Quant aux échanges de bonnes pratiques pour consolider la communauté française, j’organise des RailsCamp (que je détaillerai plus tard) et je compte bien continuer à le faire.
Quant à la visibilité de Ruby et Rails en France, j’essaye de faire correctement mon boulot chez Novelys pour que les clients recherchant des compétences Ruby/Rails les trouvent facilement.
Sans doute qu’il manque un évènement prestigieux et médiatique en France pour que les DSI se souviennent que Ruby existe. Mais ces événements nécessitent une certaine organisation et un certain budget. Et l’organisation de ce genre d’évènement ne m’intéresse pas forcément…

– Tu as monté plusieurs événements ces derniers mois. Quels sont-ils ? Peux-tu me dire quelle a été ta motivation pour chacun ?

railscamp for twitterL’événement le plus important que j’ai organisé récemment était le RailsCamp Paris 3. J’avais donné un léger coup de main pour les 2 premières éditions, mais elles ont eu lieu il y a quelques années déjà et je ressentais le besoin de relancer cet évènement. Les premières éditions ont été d’après moi la fondation de la toute jeune communauté Rails d’alors. C’est la première fois que la communauté se rencontrait physiquement ! Je pense d’ailleurs que le format BarCamp est particulièrement adapté pour consolider une communauté : tous les membres de la communauté peuvent s’exprimer, participer et s’enrichir au contact des autres. Je suis un grand fan des BarCamp. J’ai d’ailleurs participé à un certain nombre et j’ai organisé quelques BarCampAlsace.
J’organise régulièrement des Last Thursday sur Strasbourg. Ce sont des rencontres de développeurs où on parle technique. Parmi les sujets abordés ces derniers mois, on peut citer NoSQL, développement mobile iPhone ou Android, GWT, etc.
Comme vous l’aurez compris, je m’intéresse beaucoup au monde de l’entrepreneuriat. C’est donc assez naturellement que je suis en train de co-organiser un Startup Weekend à Strasbourg (il aura lieu les 18, 19 et 20 novembre).
Enfin je dois parler des Apéro Ruby Strasbourg ! Ce n’est pas moi qui les organise mais ma copine. On en a pas mal discuté et on pense qu’il y a maintenant assez de monde sensibilisé à Ruby sur Strasbourg pour lancer ce type d’évènements.

– Tu fais partie de l’association Ruby France. Pourquoi as-tu décidé d’être membre ? Pour toi, quel rôle doit avoir l’association aujourd’hui ?

Logo Ruby FranceJ’ai décidé d’être membre de Ruby France, parce que, par définition, la mission de l’association est de cimenter la communauté française. Et je crois en cette mission. Lorsque je trouve que cette mission est un peu perdue de vue ou ensevelie sous une certaine torpeur, je décide alors de m’investir un peu plus dans l’association. Elle a ses défauts, mais je pense que c’est mieux de la changer de l’intérieur que d’essayer de faire son truc dans son coin. Je pense que la mission d’une association d’envergure nationale est d’une part de coordonner et promouvoir les actions locales et d’autre part de faire connaître Ruby au niveau national voire international. Ceci peut se faire par la participation de Ruby France à des évènements nationaux ou internationaux (on le fait déjà en participant aux RMLL ou à l’OSDC). Comme dit précédemment, sans doute qu’un évènement dissaïdor compliant serait une bonne chose. L’association pourrait monter un groupe projet pour voir comment organiser un évènement de ce type. On pourrait d’ailleurs s’inspirer des Pycon du monde Python.

– Je te laisse le dernier mot pour conclure :)

Bref, tout n’est pas rose dans le monde Ruby en France, mais j’essaye de faire ma part du boulot pour que la situation s’améliore. Et Novelys essaye d’être un acteur responsable de la Cité.

Merci beaucoup Yann de m’avoir accordé un peu de ton temps.

Chers lecteurs vous pouvez suivre Yann sur Twitter : @yannski
  • yannski
    Répondre
    Author
    yannski yannski

    Merci pour l’interview ! Ca faisait quelques temps que je ruminais sur ces sujets là :)

  • yannski
    Répondre
    Author
    yannski yannski

    Merci pour l’interview ! Ca faisait quelques temps que je ruminais sur ces sujets là :)

  • PJ
    Répondre
    Author
    PJ PJ

    Très bon article et franchement très intéressant. Je viens de quitter mon ancienne boite où le développement ce faisait en .net/php pour monter mon entreprise (avec un ancien collègue) en utilisant RoR et pour souligner ce qui est dit dans l’article, notre premier client est venu vers nous car nous développons avec un langage qu’il ne connaissait pas, qui est innovant et où la productivité est accrue.

  • PJ
    Répondre
    Author
    PJ PJ

    Très bon article et franchement très intéressant. Je viens de quitter mon ancienne boite où le développement ce faisait en .net/php pour monter mon entreprise (avec un ancien collègue) en utilisant RoR et pour souligner ce qui est dit dans l’article, notre premier client est venu vers nous car nous développons avec un langage qu’il ne connaissait pas, qui est innovant et où la productivité est accrue.

  • Awea
    Répondre
    Author
    Awea Awea

    Très bon article, sa fait plaisir de voir quelqu’un qui parle de Rails en français et qui en parle bien… vous recrutez ? ^^

  • Awea
    Répondre
    Author
    Awea Awea

    Très bon article, sa fait plaisir de voir quelqu’un qui parle de Rails en français et qui en parle bien… vous recrutez ? ^^

  • yannski
    Répondre
    Author
    yannski yannski

    @Awea c’est possiblement possible

  • yannski
    Répondre
    Author
    yannski yannski

    @Awea c’est possiblement possible

  • Petites brèves : Sinatra 1.3, entretiens concernant la communauté Ruby et programmation UNIX | Ressource Info
    Répondre
    Author
    Petites brèves : Sinatra 1.3, entretiens concernant la communauté Ruby et programmation UNIX | Ressource Info Petites brèves : Sinatra 1.3, entretiens concernant la communauté Ruby et programmation UNIX | Ressource Info

    […] Yann Klis ; […]