Pour faire suite à mon expérience dans la société INL de 2006 à 2008, voici mon bilan de la société EdenWall de 2009 à 2011.

2009 : INL devient EdenWall

En 2009, trois ans après mon entrée chez INL, la direction décide de changer de métier. INL passe d'une société de services en logiciels libres à fabriquant d'appliances. Je pense que la principale motivation était de gagner plus d'argent. La marge sur une appliance est plus importante que sur du service.

Un planning pour les années à venir est préparé et une levée de fonds est réalisée pour lancer le projet. Premier changement radical : la société n'est plus autonome mais dépend d'un fonds d'investissement. En trois ans, je n'ai jamais entendu quoi que ce soit à propos de ce fonds d'investissement, je n'ai jamais su quelle était leur politique, leur vision à long terme, etc.

La société passera rapidement d'une dizaine d'employés à une trentaine. Le nombre exact d'employés a beaucoup varié en fonction des arrivées et des départs, ce qui s'est beaucoup accéléré à partir de 2009. Alors qu'avant il y avait une seule équipe soudée dans un open space, les directeurs ont eu leur bureau (fermé), les commerciaux et développeurs ont été mis dans deux pièces séparées. Les commerciaux et développeurs ont continué à travailler en open space, ce qui a beaucoup aidé à garder un esprit de cohésion parmi les développeurs. Par contre, du côté des commerciaux, il y a eu beaucoup de turnover. À ce que j'en ai compris, le salaire des commerciaux est largement basé sur le nombre de vente conclues. Comme le produit EdenWall se vendait mal (une cinquantaine d'appliances vendues en 3 ans selon ce que j'ai entendu), les commerciaux bossaient dur pour un faible salaire.

Créer un nouveau produit depuis zéro prend beaucoup de temps. Le développement de la version précédente (EdenWall 3) a été complètement arrêté (ou presque). Autre changement par rapport à INL : étant donné qu'on mettait nos œufs dans le même panier (un seul produit EdenWall 4 au lieu de plusieurs clients à qui on vendait du service), il y avait une pression constante et soutenue sur l'équipe de développement pour sortir le produit à temps. L'ambiance n'était plus du tout aussi détendue.

Pour marquer la rupture avec INL, le nom de la société a été changé pour EdenWall, histoire d'avoir le même nom que le produit.

2009 : Début du développement de l'appliance EdenWall 4

Pendant trois ans, EdenWall 4 a été développé par une équipe d'une dizaine de personnes en comptant les développeurs, le support technique, stagiaires, l'assurance qualité et les chefs d'équipe. Travailler à dix sur le même produit est très différent de travailler seul voire à deux ou trois sur un logiciel.

De mon côté, j'ai déménagé de Strasbourg à la campagne. Côté boulot, ça n'a rien changé. Par contre, ma fille Élisa est née en novembre 2009, ce qui a tout changé pour moi :-) J'avais également un collègue qui télétravaillait sur Prelude depuis Lyon, mais j'avais peu de contacts avec lui. On se croisait rarement sur Paris (au siège d'EdenWall).

Fin 2009, après une année de développement, plusieurs développeurs dont moi ont commencé à se plaindre de notre chef d'équipe. Le produit n'était pas très stable et le retard avait tendance à s'accumuler. Notre chef d'équipe avait tendance à disparaitre entre le moment où il nous listait ce qui devait être développé et la livraison. Si à la fin ça marchait, il recevait tous les mérites, si c'était un échec, c'était notre faute.

Premier semestre 2010 : "interlude" MXM puis promotion

Après quatre ans de bons et loyaux services, j'ai démissionné en mars 2010. J'étais las des problèmes avec notre chef d'équipe, j'étais toujours mal considéré par la direction (notamment car j'étais en télétravail) et je souhaitais changer de milieu (sécurité et réseaux informatique). Ma démission a été une (mauvaise) surprise pour la direction.

Étant un jeune papa, j'avais attendu d'avoir un nouveau contrat pour démissionner. Un ami m'avait trouvé un job dans la startup MXM où il travaillait. Sauf que durant ma période de préavis chez EdenWall, la relation entre mon ami et la direction de MXM s'est beaucoup détériorée, et mon ami a fini par démissionner. Le directeur de MXM a alors révoqué ma clause de télétravail avant le début de mon contrat ! Il a fait ça pour que je ne vienne pas travailler, c'est-à-dire que ça soit moi qui parte et non pas lui qui rompe le contrat.

J'ai alors eu moins d'un mois pour trouver un nouvel emploi. Ne trouvant pas d'emploi convenable, je me suis décidé à proposer à mon ancien chef de revenir à EdenWall mais en tant que chef de projet plutôt que développeur. Il y a réfléchi deux bonnes semaines, puis est revenu vers moi en acceptant à condition que je vienne à Paris deux jours par semaine au lieu de trois jours par mois.

Juin 2010 à juillet 2011 : chef d'équipe

J'ai donc fait mon come back en remplaçant mon ancien chef d'équipe. Mon retour a été mal vu par mon ancien chef d'équipe (qui a été affecté à une nouvelle équipe de recherche et est passé directeur au passage) et par la direction, mais j'étais soutenu par mon chef (qui était un peu le seul à croire en moi). J'ai eu l'impression que mon retour a été un soulagement pour l'équipe développement EdenWall.

J'avais une situation un peu inconfortable. Je n'avais pas vraiment mon mot à dire sur la gestion du projet, on m'imposait des tâches à faire réaliser en un certain temps, sans vraiment pouvoir discuter ces délais. Mon poste consistait surtout à faire respecter les délais, détecter les blocages et faciliter le travail en équipe. Accessoirement, je dépannais certains problèmes concernant Python, et j'étais parfois consulté pour un choix technique. C'était ma partie préférée, mais ce n'était qu'une petite partie de mon travail.

J'ai eu du mal à accepter de lâcher mon clavier, arrêter le développement. J'avais tendance à penser que ça irait plus vite que si je faisais tout moi même. J'avais du mal à déléguer. Plus tard, ce problème a été remplacé par un autre : je n'arrivais ni à estimer précisément le temps de réalisation d'une tâche, ni à déterminer l'avancement global du projet. J'avais une vision précise de certaines tâches, mais une mauvaise vision globale. D'ailleurs, j'avais tendance à voir à court terme, sans prêter attention au calendrier qui glissait.

Mon plus gros échec a été la période septembre 2010 à février 2011 : il y avait trois projets parallèles, le plus long avait été estimé à deux mois et le plus court à un mois. Sauf que je ne me suis pas du tout occupé du projet le plus important et que ses spécifications ont beaucoup changé en cours de route. Le résultat a été une situation assez critique du côté des commerciaux qui attendaient les nouvelles fonctions. La livraison a été repoussée mois par mois de fin octobre 2010 à février 2011...

Autre problème sous-jacent : le refactoring était proscrit et le peu de test n'était pas exécuté automatiquement (nous n'avions pas d'intégration continue). Un projet de buildbot a été repoussé sans arrêt pendant un an. Quand il a enfin été mis en place, il est vite passé "rouge" (échec de certains tests) et a été mis de côté. La direction m'imposait de livrer le plus vite possible, je ne me suis jamais remis en question. J'aurai du prendre un peu de recul et insister lourdement sur la qualité, pour expliquer que la qualité ne doit pas être faite "à la fin" mais en continu.

Dernier problème, non des moindres : tous les développements étaient faits dans le même dépôt de code source, sans vraie gestion de branche. Du coup, il n'était pas possible de livrer une nouvelle fonction tant que toutes les autres fonctions n'étaient pas stables. Comme l'ensemble était en constante évolution, les régressions étaient courantes et les périodes de stabilisation étaient trop rares.

Il ne faut pas se voiler la face, on travaillait vraiment à l'arrache.

Liquidation

Début juillet 2011, le PDG annonce la liquidation d'EdenWall. Ce n'était plus un secret depuis plusieurs jours. Pour l'anecdote, l'annonce a été faite un jeudi, l'avant dernier jour de mon contrat. Le lundi je commençais chez WyPlay.

Romain, un ancien collègue, a noté différentes informations sur l'histoire d'INL et d'EdenWall : EdenWall is officially dead. Il en a également écrit une version plus romancé : EdenWall : la descente aux enfers.

Bilan

Je ne pense pas que l'échec de la société ait une seule cause. Je pense qu'il n'y avait pas de place pour EdenWall sur le marché des parefeux, ou dumoins qu'EdenWall n'a pas réussi à s'y faire une place. Je reste encore sceptique sur le gain apporté par l'authentification NuFW face aux contraintes qu'il impose (avec notamment l'installation d'un agent sur chaque poste client). Une bonne part du stress aurait pu être évitée en conservant une activité de service, lucrative et fiable. À partir de 2010, il y a eu des guéguerres internes au sein de la direction qui n'ont pas arrangé les choses. L'augmentation de la masse salariale a imposé une réorganisation. Petit à petit, les communications se sont rompues. Chacun fuyait les responsabilités en rejetant la faute sur ses collègues, alors qu'on s'entraidait à l'époque d'INL. L'ambiance bon enfant a fait place à une ambiance plus corporate. Je pense que l'histoire se serait terminée différemment si la société avait été gérée différemment.

Bien que nos méthodes de travail "n'étaient pas à la pointe", le développement avançait bien et on était fier de notre projet. Quand j'étais développeur, j'ai pris beaucoup de plaisir à concevoir une architecture et écrire des logiciels depuis zéro. Comme c'était une réécriture d'un produit existant, nous avons pu éviter de répéter les même erreurs. J'ai également pris du plaisir à apprendre la programmation asynchrone avec Twisted (même si c'était dans la douleur les six premiers mois) et la conception d'interfaces graphiques avec PyQt (je maintiens que PyQt permet de développer des interfaces plus sympas que le web !).

J'ai largement préféré la période INL à la période EdenWall, mais je ne regrette pas mon expérience d'un an en tant que chef de projet. Cette expérience m'a mis face aux réalités, notamment les impératifs commerciaux et contraintes clients.