Simple IT : le blog

Aller au contenu | Aller au menu | Aller à la recherche

Tag - developpement

Fil des billets - Fil des commentaires

lundi 23 août 2010

Mise en ligne des nouveautés du SdZ avec Capistrano

Note de Mathieu : comme nous l'avons signalé à toutes les personnes qui travaillent chez Simple IT, nous leur proposons d'intervenir de temps en temps sur le blog pour présenter les projets sur lesquels ils travaillent. Le but est de varier les sujets et les styles d'écriture en donnant la parole aux employés. Vincent Primault (alias vincent1870), développeur sur le Site du Zéro, est le premier à rédiger un tel billet. Vous le trouverez ci-dessous.

Depuis un an et le billet annonçant la fin du bricolage, de nombreuses choses ont encore évolué sur notre façon de travailler en interne. Ce billet est là pour présenter aux curieux les rouages de notre nouvelle méthodologie de développement, qui se veut plus professionnelle et adaptée à la taille grandissante de Simple IT et du code du site.

Retour sur les faits

Pour rappel, le site est depuis le début de l'année en plein chamboulement puisque nous sommes en train de porter tout le code vers le framework web symfony (dans sa version 1.4). Cette décision n'a pas été prise à la légère et permet d'assurer à terme plus de flexibilité dans le code et d'accélérer le développement de nouveaux modules en utilisant toute la batterie d'outils que symfony met à notre disposition.

Cette démarche de rationalisation du développement ne se résume cependant pas à l'adoption de symfony. Depuis le début de l'été, nous n'avons pas chômé, et plusieurs réflexions importantes ont été commencées concernant la façon même dont nous développons et les processus entourant l'écriture. Le reste de ce billet va traiter de la nouvelle organisation mise en place concernant la mise en ligne des nouveautés sur le Site du Zéro.

Git c'est bien

Comme vous le savez sans doute si vous avez lu les billets précédents, le code source du Site du Zéro est versionné via le logiciel Git. Cet outil indispensable pour nous permet de conserver une trace de toutes les modifications apportées au code du site, quand et par qui. L'outil est actuellement bien exploité, nous utilisons notamment beaucoup le système de branches qui nous permet de cloisonner nos développements et de pouvoir changer rapidement de sujet de travail sans rien perdre.

Si je parle de Git c'est qu'on l'utilise en fait actuellement presque trop, en sortant de ses attributions d'origine. C'est en effet lui qui nous permet actuellement de réaliser nos déploiements. Pour rappel, le déploiement est l'action consistant à faire passer du code de la machine d'un développeur vers le serveur de production, Lisa, qui dessert les pages que vous voyez tous les jours. Une fois le code déployé, tous les visiteurs y ont accès, c'est donc une étape essentielle ! Utiliser Git pour cela est très simple et rapide : il suffit de créer une copie du dépôt sur le serveur de production, de lancer la mise à jour des sources et tout est en ligne quasi-instantanément. Si cet usage est courant, il atteint cependant assez vite ses limites, comme nous nous en sommes rendu compte nous-mêmes.

En effet, depuis la mise en place de symfony, la procédure de mise en production a commencé à s'alourdir . Tout d'abord, il a fallu systématiquement nettoyer le cache de symfony en lançant une commande à l'issue de la mise à jour des sources. Cela peut sembler anodin, mais cela faisait une tâche de plus à la charge du développeur. Et il suffit de l'oublier pour que nos changements soient alors non fonctionnels, et qu'on perde alors du temps à trouver d'où vient le problème (c'est du vécu !).

Les problèmes ont continué lorsque récemment nous avons lancé le projet d'exploiter enfin correctement l'ORM fourni avec symfony (Doctrine) en utilisant ses migrations. En deux mots, c'est un outil très pratique permettant d'automatiser les modifications sur la base de données telles que l'ajout de colonnes ou de tables, avec des facilités telles l'annulation des modifications simplement. Cependant cela fait encore quelques commandes de plus à lancer à chaque déploiement, et ce sur la version de développement et de production. La démarche commençait alors à s'alourdir considérablement, nous avons donc cherché du côté d'outils permettant d'industrialiser ces manœuvres.

Capistrano c'est mieux

Je m'intéressais à ce type d'outils depuis un moment, et je lorgnais déjà de fait sur un outil bien précis, répondant au doux nom de Capistrano. Ces outils ne sont pas très nombreux, et ceux matures le sont encore moins. Capistrano est un outil codé en Ruby et assez réputé dans le domaine. Pour l'anecdote il est notamment utilisé par Twitter pour ses déploiements.

Il faut savoir que Capistrano n'est pas réellement un outil de déploiement, mais que ce n'est en fait qu'un outil de réplication de commandes sur un parc de serveurs. Pour l'instant nous n'avons qu'un serveur web de production, mais cela tombe bien car le jour où nous en aurons plus (ce qui arrivera fatalement un jour ou l'autre pour parer au trafic croissant du Site du Zéro) nous serons déjà prêts ! Actuellement nous nous en servons donc "juste" pour exécuter un jeu de commandes à la chaine.

Il est conçu à l'origine pour déployer des projets Ruby on Rails (un framework de développement web codé en Ruby) mais s'adapte très facilement à d'autres projets. Nous avons pour notre part largement repris la base fournie par le projet Capifony qui était une extension de Capistrano à des projets symfony. Adapter Capistrano nécessite juste de connaitre un peu le Ruby, mais cela se fait très bien. Pour tout dire je n'avais jamais touché au Ruby avant de devoir personnaliser Capistrano, et cela s'est très bien passé, les outils de base couplés à Capifony se laissent facilement prendre en main. Je regrette juste que le site de Capistrano soit un peu anarchique et qu'on ait du mal à trouver ce que l'on cherche.

Lors de ses déploiements, Capistrano conserve un historique de toutes les releases du produit. Cela permet par exemple de pouvoir revenir à une version antérieure de façon instantanée. Il gère également des ressources partagées entre toutes les versions, telles que des fichiers de configuration ou des uploads. Le déploiement en lui-même se fait de façon très simple en lançant une simple commande en console. Pour les curieux, cela donne en pratique une arborescence similaire à ce qui suit sur le serveur de production :

  • current
  • releases
    • 20100820090035
    • 20100822090214
  • shared
    • config/databases.yml
    • web/uploads
    • log

Chaque sous-dossier dans le répertoire releases contient une extraction du code source de Git à une date donnée (indiquée par le nom du répertoire). current est en fait un simple lien pointant vers la dernière version (c'est pour ça que revenir en arrière est très simple, il suffit de changer le lien !). Enfin shared contient toutes les données partagées, avec par exemple les fichiers de configuration symfony, les uploads ou les logs.

Le serveur web va chercher le site dans current. Comme il s'agit d'un lien symbolique, il utilise en fait le code source de la release sur laquelle il pointe.

Et avec Webistrano...

Accueil de Webistrano

Pour nous combler pleinement, nous voulions un outil capable d'enregistrer un détail de l'activité de déploiement et capable d'agir différemment en fonction de l'environnement ciblé. Capistrano à la base est flexible à volonté, mais ne permet pas forcément d'organiser son code de façon très propre, et réaliser une personnalisation en fonction de l'environnement ciblé aurait été assez compliqué à gérer pour quelqu'un qui ne connaissait que très peu le Ruby comme moi.

Une solution s'est alors naturellement imposée : Webistrano. C'est en fait une simple interface web (codée en Ruby on Rails) pour Capistrano. Les avantages sont alors multiples :

  • La configuration de l'outil se fait de façon très agréable. Cela ne dispense absolument pas de connaitre le fonctionnement de Capistrano mais c'est bien plus visuel que la version en Ruby.
  • L'outil gère de façon native la différenciation des environnements de déploiement (par exemple pour nous ceux de pré-production et celui de production).
  • Le code de personnalisation est bien mieux organisé, on a la possibilité de partager des bouts de code à travers les projets et les environnements.
  • Le déploiement se fait de façon graphique, on récupère les logs en temps réel.
  • Chaque déploiement est enregistré, on en garde une trace, et on peut très facilement revenir en arrière si quelque chose se passe mal.
  • Capistrano est exécuté sur le serveur hébergeant Webistrano, ce qui permet d'éviter à chaque développeur d'installer et configurer Capistrano en local. Tout est centralisé et partagé.

L'outil s'est jusqu'ici remarquablement bien comporté, s'avérant très ergonomique et surtout accélérant le temps passé à configurer Capistrano. Nous avons juste eu à le modifier très légèrement pour nos besoins, mais de façon très mineure (c'était principalement de l'adaptation pour symfony et un peu de personnalisation visuelle).

Une nouvelle rigueur dans le processus de développement

Tout cela nous amène à avoir une nouvelle rigueur dans le processus de déploiement. Actuellement l'intégration en production se fait tout au long de la journée par les développeurs. Ce processus devient peu gérable, les déploiements devant être planifiés. Nous allons donc progressivement tendre vers une rationalisation des déploiements, qui seront faits environ une fois par jour, à heure fixe, tout en gardant une certaine souplesse dans le cas d'une réelle urgence comme une correction de faille.

De plus, les environnements sont maintenant différenciés plus fortement. Nous exploitons un trio classique d'environnements :

  • La version de développement du site, qui est notre version locale. Chaque développeur travaille avec sa version du code et sa base de données. C'est sur cette version que les nouvelles fonctionnalités sont implémentées.
  • La version de pré-production du site (aussi appelée de recette) qui est une copie du site en ligne (hébergée sur les serveurs de Simple IT mais non accessible au public). Elle se comporte de façon identique en tout point à la production. Cela nous permet de prévenir au maximum les risques lors du moment fatidique.
  • La version de production, accessible à tous à l'adresse http://www.siteduzero.com, est le produit fini.

C'est une évolution de plus dans nos processus internes, et certainement pas la dernière. L'objectif est réellement d'automatiser au maximum de façon à décharger les développeurs des tâches répétitives. D'autres réflexions sur des sujets similaires sont dans les tuyaux, vous en saurez plus prochainement !

vendredi 13 août 2010

Allers et venues

Les bureaux de Simple IT n'auront jamais accueilli autant de monde qu'en juillet. Il faut dire que l'arrivée au 1er juillet de 4 nouvelles personnes n'y aura pas été étrangère ! Comme je l'annonçais les renforts sont bel et bien arrivés. Avec eux :

  • Ludovic, en poste en CDI à plein temps pour travailler sur le développement web et en particulier sur la migration symfony.
  • Vincent, développeur bénévole sur le SdZ et le site des zCorrecteurs depuis un moment, en CDD pour l'été.
  • Martin, développeur bénévole comme Vincent sur le SdZ et le site des zCorrecteurs, en stage pour l'été.
  • Kévin, qui fait son grand retour, non pas en tant que développeur mais en tant que responsable des systèmes d'information (qu'on pourrait traduire en "débogage de code XML-RPC généré par des modules OpenERP en Python faiblement documentés" ;o).

Le mois de juillet aura été particulièrement prolifique, avec de grandes avancées sur la migration symfony et l'ouverture des chantiers les plus complexes : nouveau système de sessions, de statistiques, nouvelle boutique, etc. Quant à Kévin, il a ardemment travaillé à la mise en place et la personnalisation d'OpenERP, et se concentre ces derniers jours sur la mise en place d'un système de backups centralisé, unifié et automatisé pour l'ensemble de nos services.

Les départs

Cependant, tout a une fin et c'est justement cette semaine que 2 stagiaires en développement nous quittent. Je profite de ce billet pour les remercier chaleureusement de leur travail et de leur bonne humeur, car nous avons passé de très bons moments avec eux et le résultat a été au rendez-vous !

Louis

Louis Louis a en particulier beaucoup oeuvré sur la boutique et sa migration symfony. Il a développé des compétences insoupçonnées en rétro-ingénierie avec Wireshark ces dernières semaines pour la faire communiquer avec OpenERP. ;o)

Joe

Joe

Joe, qui a entre autres travaillé sur la problématique des migrations SQL et sur la mise en place des fixtures pour Doctrine, qui va permettre aux autres développeurs de travailler avec plus de souplesse. Auparavant, il a aussi mis en place le système d'alertes de Zozor qui peut maintenant communiquer via une bulle.

Les arrivées

C'est donc une petite page de l'histoire de Simple IT qui se tourne, mais les bureaux ne vont pas vraiment désemplir pour autant. En effet, nous avons accueilli depuis une semaine Alexandre (alias Calizéro), qui travaille désormais comme Community Manager à plein temps.

Début septembre, c'est Jiyong qui nous rejoindra comme graphiste et ergonome. Il a déjà travaillé comme graphiste sur la couverture des LdZ, nos affiches, le logo et bien d'autres choses. ;o)

lundi 28 juin 2010

Les renforts arrivent !

Avec actuellement 3 développeurs à plein temps (Romain, et 2 stagiaires : Joe et Louis), nous manquions cruellement de bras comme vous le saviez peut-être. Les projets de développement web ne manquent pas chez nous, entre la migration de tout le site vers le framework Symfony (un très gros projet), les nombreuses suggestions d'améliorations proposées par les membres et les améliorations que nous avons prévues de longue date, il y a de quoi faire !

Nous avons bien commencé notre important projet de migration. Celui-ci s'avère ardu et complexe, mais nous étions prévenus. Pas de surprise de ce côté-là, si ce n'est que cela prend du temps et qu'il nous reste encore du chemin à faire.

A l'heure actuelle, toutes les pages les plus simples ont été migrées (pages statiques, formulaire de contact...). Le système de codes web a lui aussi été migré grâce au travail de Benoît qui termine son stage ces jours-ci, et la nouvelle administration de la newsletter ne devrait pas tarder à être mise en ligne. Nos nouveaux développements, comme la bulle Zozor, se font à 100% sur symfony.

L'équipe des développeurs s'agrandit !

Malgré tout, nous avons encore du pain sur la planche, avec les modules de tutoriels, forums, boutique, news qui sont bien plus conséquents. Pour faire face à tout ce travail, et parce que nos finances nous le permettent progressivement, nous embauchons de nouvelles personnes et accueillons de nouveaux stagiaires pour la période estivale :

  • Ludovic : il s'agira de notre second développeur en CDI chez Simple IT. Son expérience en tant que développeur PHP / symfony nous sera précieuse pour notre projet de migration.
  • Vincent (aka vincent1870) : il a beaucoup oeuvré ces derniers mois pour mettre en place les fondations de la migration symfony, et c'est tout naturellement que nous lui avons proposé un poste en CDD cet été pendant ses vacances scolaires. Il nous sera d'une grande aide pour mettre au point la suite de la migration.
  • Martin (aka DJ Fox) : il connaît bien notre ancien framework et a une bonne expertise du système de tutoriels, dont il a réparé l'import/export et sur lequel il a mis au point un système d'échange de tutoriels avec les zCorrecteurs (car, il faut le noter, lui et Vincent sont aussi tous deux développeurs chez les zCorrecteurs !).
  • Kévin : nous le connaissons bien car il était en stage chez nous l'année dernière à la même période. Pour son retour, c'est un sujet tout à fait différent qui l'attend puisqu'il sera chargé de mettre en place une bonne partie du système d'informations de l'entreprise. Il aura fort à faire sur la mise au point et la configuration de notre ERP (OpenERP) et effectuera un certain nombre de développements pour personnaliser son code Python. Son travail consistera aussi bien à auditer notre fonctionnement actuel, qu'à proposer des solutions et à les mettre en place.

Toutes ces personnes démarreront le 1er juillet. L'été sera chaud chez Simple IT (et il commence à faire bien chaud, ça tombe bien) !

Un grand merci par ailleurs à Benoît qui, malgré sa présence partielle dans l'entreprise (2 jours par semaine), aura réussi à mener à bien les premières migrations symfony des codes web, de la zForm, du formulaire de contact et de l'espace presse !

Et ensuite ?

Notez que nous recherchons des stagiaires pour la période septembre - février, et que nous pouvons aussi accueillir des étudiants en alternance. Le profil recherché ainsi que le détail de l'offre se trouvent sur la page recrutements. Si vous connaissez des étudiants qui doivent effectuer un stage lors du premier semestre de l'année scolaire 2010-2011, n'hésitez pas à leur transmettre l'offre !

Enfin, sachez qu'il est probable qu'un nouveau poste de développeur en CDI soit disponible vers la fin de l'année. Nous vous tiendrons informés.

mardi 3 novembre 2009

Simple IT recrute un développeur web en CDI

Les choses s'accélèrent pour nous à une vitesse folle. Alors qu'il y a quelques mois nous recrutions un stagiaire en développement web (annonce qui reste toujours valable d'ailleurs), nous n'imaginions pas encore pouvoir embaucher réellement. Cela relevait un peu de la science-fiction à cette époque.

Et pourtant nous y sommes. Non seulement nous sommes en mesure d'embaucher (ce qui est un signe plutôt positif pour la santé de l'entreprise), mais en plus c'est urgent. On commence à comprendre le sens du terme "accélération", une étape cruciale dans notre développement que nous ne devons pas manquer. Pour cela, nous avons besoin d'un développeur web expérimenté. Maintenant.

Place à l'annonce (que je vous invite à diffuser autour de vous si vous connaissez une personne correspondant au profil recherché) :

Simple IT

petit_simpleit.pngSimple IT est depuis 2007 éditeur du Site du Zéro (www.siteduzero.com), aujourd'hui devenu un site de référence auprès de nombreux étudiants et professeurs spécialisés dans les nouvelles technologies. Le site propose des cours pour débutants en informatique, en libre accès. Les sujets traités vont de la création de sites web (XHTML / CSS) à la programmation (C / C++ / Java) en passant par l'utilisation de Linux.

Le site accueille actuellement plus de 1 800 000 visiteurs uniques chaque mois et compte plus de 150 000 membres inscrits. Nous attachons une grande importance à la communauté qui fait vivre le site et tâchons d'être à l'écoute des remarques des utilisateurs.

En parallèle, Simple IT devient éditeur de livres avec le lancement d'une collection "Livre du Zéro" adaptant ses cours les plus plébiscités au format papier.

Pour accompagner sa croissance rapide, Simple IT recherche un développeur web PHP / SQL expérimenté.

Vos missions

Vous prendrez en charge les projets de développement du Site du Zéro. Vous utiliserez un framework puissant et évolutif PHP / PostgreSQL créé en interne dont vous poursuivrez le développement. Vous ferez évoluer les outils de travail collaboratifs du site ainsi que les interfaces de gestion en backend au sein d'une équipe de développeurs.

Vous suivrez les retours des utilisateurs en corrigeant les éventuels rapports d'erreurs que ceux-ci fourniront, tout en restant à l'écoute de leurs suggestions.

Votre profil

Vous êtes diplômé Bac +2 à Bac +5 et avez déjà une solide expérience en développement web à titre personnel et / ou professionnel.

Vos compétences

  • XHTML / CSS
  • PHP
  • Javascript (bibliothèque jQuery) & AJAX
  • SGBD relationnel (MySQL, PostgreSQL ou Oracle)
  • Environnement Linux (Debian et Ubuntu)
  • Outil de versionnement (SVN ou Git)

Vos qualités

  • Vous êtes organisé et méthodique
  • Vous savez gérer vos priorités et respecter les délais
  • Vous aimez travailler en équipe et avez un excellent relationnel

Détails du contrat

  • Type de contrat : CDI
  • Salaire : selon profil
  • Lieu : Bourg-la-Reine (92), évolution vers Paris (75) à très court terme (< 6 mois)
  • Poste à pourvoir : dès que possible

Avantages

  • Tickets restaurant
  • Complémentaire santé performante
  • Transports remboursés à 100% (pass navigo)
  • Participation aux bénéfices de l'entreprise

Perspectives

Ce poste est susceptible d'évoluer rapidement vers un poste de chef de projet, après avoir acquis une expertise suffisante sur notre framework et sur nos méthodes de développement.

Pour postuler

Merci de nous envoyer CV, lettre de motivation et disponibilités à rh@simple-it.fr

Formats acceptés pour le CV et la lettre de motivation :

  • PDF (recommandé)
  • Word : DOC et DOCX
  • OpenOffice : ODT

mardi 21 juillet 2009

Va. Et viens.

Il y a quelques temps que l'on n'avait pas donné de nouvelles ici. Quoi de neuf en ce (chaud ?) mois de Juillet ?

Pas mal d'allées et venues. J'ai été assez occupé (et je le serai encore beaucoup cette semaine) pour ne pas avoir le temps de parler de chaque départ et arrivée au sein de Simple IT, aussi je propose de tout faire d'un coup en un billet. ;o)

Départ de Willy (alcee)

Concrètement, il y a eu le départ de Willy au début du mois. Il était là depuis 3 mois et a assisté à la plupart des profonds changements organisationnels qu'on a mis en place cette année. Ses plus grands faits d'armes sont :

  • La mise en prod de New Wave juste le jour (ou le lendemain) de son arrivée !
  • Le renforcement de la sécurité, notamment en ce qui concerne l'authentification et les CSRF (les bugs de token, c'est lui ! :D )
  • Et son plus gros projet : les news communautaires, qui ont été mises en prod en juin.

Bien entendu, j'en oublie beaucoup beaucoup dans cette liste (des bugs de parser et d'autres joyeusetés), mais ce serait trop long de faire une liste complète. Il faut noter que les news communautaires à elles seules auront occupé l'essentiel de son temps.

Willy restera admin encore quelques temps (à sa demande) pour suivre l'évolution du site. Encore merci Willy pour tout ce que tu as apporté au site et pour ta rigueur, c'était de l'excellent travail. :)

Départ de Nicolas (niconoe)

Arrivé peu après Willy, et reparti peu après lui, il aura lui aussi assisté à de nombreux changements.

Son travail a été plutôt varié et constitué de plus petits projets que Willy (donc plus nombreux ;o). On peut retenir entre autres :

  • Les redirections transparentes, qui nous évitent les fastidieux temps de redirection après avoir posté un sujet par exemple.
  • Le menu "Mes interventions" qui aura constitué un de ses plus gros projets. Sa réalisation a été délicate car elle était dictée par des problèmes de performances (et plusieurs bugs) qui l'auront amené à y passer un certain temps.
  • La nouvelle interface du compte membre, plus visuelle, réorganisée, qui fait moins "amas de cases à cocher" si je puis dire.
  • La nouvelle interface de catégorie des cours, là aussi plus visuelle et moins triste que l'ancienne, basée sur les suggestions des membres dans les forums.
  • Une uniformisation de la gestion d'AJAX et une auto-complétion lors de la recherche d'un membre et d'une école.
  • Et plusieurs améliorations dans l'administration (options, interfaces...)

Nicolas s'est très bien adapté aux projets qu'il a eu à gérer et a su faire preuve progressivement d'autonomie. Il a réussi à engranger beaucoup de nouvelles connaissances en l'espace de quelques mois à peine, vraiment chapeau à lui. Merci !

Arrrivée de Kévin (ptidel)

Il n'y a pas eu que des départs. Depuis le début du mois, un petit nouveau s'est rajouté à l'équipe : Kévin. Il sera là jusqu'à fin octobre, comme Mathias qui continue en ce moment-même son travail sur Vos tutos, sur l'optimisation des caches et sur les interfaces web.

Il n'est pas là depuis longtemps, mais il a déjà réalisé plusieurs améliorations concernant le référencement du site, notamment le problème des URL dupliquées qui nous tracassait depuis longtemps (on pouvait accéder à une même page via plusieurs URL différentes).

Il va uniformiser quelques templates et proposer une interface plus réactive. On peut déjà observer notamment un contrôle de sélection de date (à l'aide de jQuery UI).

Il va développer des outils permettant d'encourager les interactions entre les membres, dans le site et en dehors du site. Pour l'occasion, il va faire appel à quelques outils sociaux bien connus.

Ses travaux vont dans l'ensemble viser à augmenter la navigation transversale sur le site. Un bien joli mot, mais vous aurez l'occasion de voir ce que ça veut dire petit à petit au fur et à mesure que le site évolue.

Et ensuite ?

J'espère avoir rendu justice au travail de Willy et Nicolas, bien que je ne vous aie donné ici qu'un petit aperçu de ce qu'ils ont fait. Je peux vous dire en tout cas que le Site du Zéro n'aura jamais autant évolué que ces derniers mois.

De mon côté, ça m'aura demandé beaucoup plus d'efforts de management que je ne pensais, mais je ne regrette pas. En revanche, j'ai peu eu l'occasion de faire avancer les tutoriels pendant ce temps. Il va falloir rapidement adapter nos méthodes de travail pour que je puisse avoir plus de temps sur le contenu à partir de septembre.

Nous allons continuer à proposer des offres de stage en développement web du même type. Si vous êtes intéressés, sachez que l'offre de stage est toujours en ligne sur le SdZ. Et n'oubliez pas que vous pouvez suivre les modifications apportées au site en temps réel par nos développeurs (il y a même un flux RSS) !

dimanche 3 mai 2009

La fin du bricolage

Un mois s'est écoulé depuis le précédent billet. Ce silence s'explique avant tout pour 2 raisons :

  • La sortie du nouveau design New Wave, qui, comme toute mise en production qui se respecte, a demandé de nombreuses petites corrections de bugs dans les semaines qui ont suivi. On n'a pas fini, il reste toujours des choses à faire, mais au moins ça s'est calmé de ce côté-ci.
  • L'arrivée de 2 stagiaires, Willy et Nicolas, qui travaillent sur le développement du site : améliorations et corrections de bugs. Ils seront rejoint dès demain par Mathias, ce qui fait que nous serons 4 au bureau pendant les 2 mois à venir. J'aurai l'occasion de parler plus en détail de ce qu'on fait et de ce en quoi consiste mon / leur travail.

Des développeurs

Aussi étonnant que cela puisse paraître, le Site du Zéro a vu son trafic grossir ces dernières années, mais pas son nombre de développeurs. A temps plein, pour s'occuper du code, il y avait en moyenne entre 0 et 1 développeur, selon les jours. Or, on ne peut pas croire qu'un site comme celui-ci se suffit à lui-même : il y a tous les jours des problèmes différents à régler, de nouvelles fonctionnalités et des améliorations à effectuer que nous aimerions faire depuis un moment.

Pour le SdZ, je ne pense pas qu'il soit non plus nécessaire de lever une armée de développeurs. Mais il est clair que n'avoir personne, ou presque, pour s'en occuper est inadéquat. A l'heure actuelle, je pense qu'entre 2 et 3 développeurs (à temps plein) conviennent. C'est de toute façon difficile actuellement pour moi d'en manager plus que ça.

Des rapports de bugs

Où je veux en venir ? Quel rapport avec le titre "La fin du bricolage" ?

Justement, si j'estime que l'on faisait du "bricolage" avant, c'est précisément parce que n'avions pas vraiment évolué depuis les tous débuts de la version 3 du site. Un serveur de développement, un serveur de production. On teste les fonctionnalités sur la "copie" du site en développement, et dès que c'est bon on passe en production en copiant les fichiers.

Globalement, ça, c'est le B.A.-BA. Mais ce n'était plus suffisant. Nous avions toujours une gestion anarchique des rapports de bugs et des améliorations. Aujourd'hui, nous utilisons comme je l'ai déjà mentionné un bug tracker qui nous permet de mieux suivre ce qui se passe, de gérer les priorités et de savoir "qui est en train de faire quoi". Ca peut paraître bête, mais parfois on ne savait pas toujours bien ce qui était en train d'être développé sur le site. Aujourd'hui heureusement, on a une meilleure visibilité.

Concernant le développement, il a été ces dernières semaines décentralisé. Nous avons certes gardé le serveur de développement, mais nous travaillons avant tout en local.

Des branches

Enfin, et c'est ce qui m'a occupé ces 2 dernières semaines (et qui m'a rendu quasiment invisible) : nous avons changé de logiciel de versionnement. Nous sommes passés de SVN à GIT. Autant dire que le passage s'est un peu fait dans la douleur, tant ces outils (qui ont pourtant le même but en théorie) s'utilisent différemment. Il a fallu nous réhabituer et nous défaire de certaines habitudes.

Branches

Git est, en quelques mots pour ceux qui ne connaissent pas, un système qui nous permet de garder une version de chaque fichier. Chaque modification est enregistrée, et si on veut retrouver le fichier tel qu'il était il y a 6 mois, on peut. On peut savoir qui a modifié le fichier quand, et pour quelle raison. On peut savoir quelles lignes il a ajoutés ou retirées. SVN fait pareil. La différence essentielle à nos yeux qui a justifié la transition, c'est que Git gère les branches de manière beaucoup plus fine.

Une branche est une évolution en parallèle du code source du site. C'est un moyen de tester de nouvelles fonctionnalités, de nouvelles idées, sans risquer de casser la branche principale "qui marche". C'est seulement une fois que la branche est stable que l'on décide de la fusionner avec la branche principale.

Regardez par exemple l'image ci-contre. Elle se lit de bas en haut et représente l'évolution du code. Chaque point est un état à un moment donné du site. La ligne tout à gauche représente la branche principale. C'est le site dit stable, celui que vous voyez quand vous visitez le SdZ. Parfois, on fait dériver en parallèle le site pour tester d'autres fonctionnalités dont on n'est pas sûr du temps qu'elles peuvent prendre à être réalisées : ce sont les branches. Le site évolue en parallèle et, au bout d'un moment, cette évolution est fusionnée avec la branche principale car on la considère utilisable. C'est alors que vous voyez ces changements en production, sur le SdZ.

Il y aurait beaucoup à dire sur Git, le fait notamment qu'il soit décentralisé et ne nécessite pas de serveur. Ou le fait qu'il se soit révélé extrêmement rapide. Ou encore le fait que ce soit un outil vraiment tourné vers les utilisateurs Unix et, bien que ça fonctionne, ce n'est pas encore vraiment la joie sous Windows. Ca reste un outil délicat, très délicat à manipuler. Comme tout bon programme sous Unix, ça fait ce qu'on lui dit, même si on lui dit de faire n'importe quoi. On l'a découvert à nos dépens.

Git a été conçu notamment par Linus Torvalds et est utilisé pour le développement du Kernel de Linux. Pour le moment, ce n'est quand même pas un outil grand public car il expose aux utilisateurs des concepts relativement avancés. En clair, je n'en recommande pas l'usage pour un débutant, mais si votre équipe est constituée de bons développeurs qui ont l'habitude d'utiliser des commandes Unix, alors vous finirez par beaucoup y gagner.

Du temps libre, peut-être ?

Il y avait un temps où on ne savait pas qui faisait quoi, où on ne savait pas où en étaient les résolutions de bugs, où deux personnes pouvaient difficilement travailler en même temps, où il était difficile de tester une nouvelle idée sans risquer de la mettre en production par inadvertance. Ca, c'est ce que j'appelle le bricolage.

L'évolution en interne a été un peu dure, mais elle était nécessaire. Il valait mieux le faire maintenant que de traîner de toute façon.

Paradoxalement, ça m'a mangé à peu près tout mon temps depuis 2-3 semaines. J'espère commencer à pouvoir respirer un peu et pouvoir à nouveau m'occuper du coeur du site : son contenu. J'ai commencé la rédaction du prochain chapitre Linux et j'ai commencé à effectuer des corrections globales - mais ennuyeuses - sur le tutoriel de C. Rien de tout cela n'est encore visible, mais ça ne saurait tarder.