Développement de modules pour un logiciel SAAS sous Symfony

dev-logiciel-symfony
6 février 2018

Nous avons été contactés fin 2017 par l’associé d’une start-up qui édite une application logicielle en plein développement. Son directeur technique et associé cherchait à sous-traiter le développement de nouveaux modules à une équipe connaissant bien Symfony. Après les échanges classiques concernant les entreprises, puis l’accord de confidentialité de bon aloi, nous sommes rentrés dans le cœur de sujet.
Au départ la priorité était un module de comptabilité/encaissement assez ambitieux, mais comme il fallait tester la collaboration, le client potentiel nous a envoyé pour cotation quelques spécifications sur deux modules plus modestes.

Au commencement était le prix

La tâche n’a pas été facile pour notre chef de projet senior / développeur qui pourtant connaissait Symfony, mais avait très peu d’infos sur la suite logicielle sur laquelle les futurs modules devaient se brancher. Conscient du problème, le client nous a envoyé un accès à une application Symfony certes bridée et partielle, mais qui été déjà un peu plus significative.

Nous avons donc présenté une première cotation, avec des temps de travail estimés, ou même supposés, qui ont assez logiquement paru élevés au client.

En fait, le client était aussi conscient des difficultés à évaluer une quantité de travail sans bien maîtriser tous les paramètres du logiciel SAAS. Du coup, pour le plus petit des modules à réaliser nous nous sommes fiés à son estimation à lui, manifestement de bonne foi, mais en incluant un temps d’acclimatation nécessaire à l’application SAAS existante.

Développement d’un premier module test

Après quelques mises en garde du client sur les erreurs à éviter, le travail a démarré assez vite, avec un chef de projet / développeur senior qui s’est réparti les taches avec un développeur plus junior, mais qui avait lui aussi déjà développé sous Symfony chez un précédent employeur. En milieu de projet le travail réalisé a été commis, pour donner de la visibilité au client, et au final le délai de livraison du module que nous avions annoncé a été parfaitement tenu.

La revue de code générale du client a été largement positive, et celui-ci a apprécié le fait que le code ait été largement commenté.

Au final, le temps de travail passé a dépassé de deux jours hommes l’estimation du client, ce qui, pour un premier développement, et vu la nouveauté, s’est avéré tout à fait raisonnable, et de toute manière assez facilement amortissable sur une collaboration de plus longue durée. Cela a aussi confirmé la justesse de l’estimation du client, car celui-ci avait tout intérêt à ce que le test de développement se passe bien pour pouvoir ensuite amplifier en confiance la sous-traitance de ses développements Symfony en Roumanie.

Les prochains développement de modules Symfony

Suite à l’expérience de la création du premier module, ce qu’il avait appris sur l’application logicielle, mais aussi des informations complémentaires que le client a alors accepté de donner, le chef de projet Symfony a pu affiner, en la réduisant de 40 %, sa cotation initiale sur le deuxième module Symfony. Le client a accepté dans la foulée, et le développement a pu démarrer très rapidement.

Ceci n’est encore qu’un début, car le responsable technique de l’éditeur de cette application SAAS sous Symfony a réalisé par lui-même une large partie du développement à ce jour, mais compte tenu de ses diverses autres tâches du fait de l’arrivée de nombreux client, son temps pour développer est forcément très limité, raison pour laquelle il apprécie les nouveaux renforts que nous apportons.

Nous envisageons même de travailler en parallèle avec lui sur certains modules Symfony assez spécifiques, comme nous l’avions fait dans le passé pour un autre client, en traitant divers tickets pour finaliser des éléments d’une application que l’éditeur n’aurait sinon pas pu terminer à temps faute de disposer de suffisamment de ressources en interne.

Certes, notre client éditeur de solution web ne peut pas nous garantir une stabilité de ses besoins, car la contrainte budgétaire existe aussi, mais c’est le lot des prestataires, et notre interlocuteur s’est par contre engagé à nous donner à l’avance autant de visibilité que possible, pour nous permettre d’avoir un peu de temps pour renforcer notre équipe Symfony si nécessaire.

Voilà pour l’instant, sachant qu’on ne sait jamais jusqu’où un nouveau client peut nous mener. En effet, notre contact responsable technique s’est engagé, si les développements continuent à bien se passer, à nous recommander à d’autres web-entrepreneurs de leur eco-système, ce qui est très intéressants pour tout me monde, car plus nous aurons de clients, plus nous pourrons lisser nos fluctuations d’activité. De plus, si nous réalisons de beaux projets pour des entrepreneurs du web innovants, il s’agit d’une belle motivation et donc d’un moyen de fidéliser nos développeurs et consort…