En tant que fondateur de startup, vous avez souvent besoin de déléguer certains travaux à des entreprises extérieures. Aujourd’hui je veux me concentrer sur les contrats de prestations de développement. Il y a quelques pièges qui doivent absolument être évités et quelques processus et bonnes pratiques qui doivent être clarifiés avec votre fournisseur avant de commencer à travailler avec une entreprise que vous ne connaissez pas encore.

 

1 – Ecrire le cahier des charges

Lorsque vous décidez de travailler avec un nouveau fournisseur, c’est un peu comme un mariage. Vous devez prendre la bonne décision et faire confiance à cette nouvelle entreprise. De la même manière vous devez être capable de changer de fournisseur à tout moment (un peu comme un divorce).  Je rencontre souvent des entrepreneurs qui on écrit un cahier des charges de 60 pages et demandent un devis pour la réalisation du projet.  Or, nous savons tous qu’une startup change régulièrement ses priorités (Si ce n’est pas le cas, ça ne devrait pas s’appeler une startup).

C’est pas contre une excellent décision que d’écrire noir sur blanc quelle est votre vision du projet et d’avoir un cahier des charges clair à un instant T, et je vous recommanderai deux pratiques pour sélectionner votre prestataire :

  • Partagez votre cahier des charge complet avec votre prestataire afin qu’il prenne en compte les futurs développements qu’il y aura à réaliser
  • Demandez une évaluation d’un tout premier lot, autrement appelé un MVP (Produit Minimum Viable), qui vous permettra de commencer à aller voir vos premiers prospects et clients et valider vos hypothèses. Cette toute première version ne devrait pas représenter plus de 30% du cahier des charges global.

 

Pourquoi est-ce que je fais ces recommandations ? Les entreprises de services informatiques, aussi appelées SSII sont plus habituées à travailler avec des grands comptes et donc avec des cahiers des charges très complets. Elles ne sont donc pas habituées à avoir des changements de priorités tels que l’on peut avoir dans un projet de startup. De plus, les entrepreneurs sont rarement habitués à écrire des cahiers des charges prenant en compte l’ensemble des paramètres techniques et fonctionnels. On préfèrera une méthode plus agile avec des cycles courts et bien définis.

 

2 – Evaluer l’entreprise

Avant même de partager votre cahier des charges avec une entreprise, vous devriez faire un peu de recherche sur elle. Quels types de missions similaires a-t-elle déjà réalisés, qui sont ses précédents clients ? N’hésitez surtout pas à appeler un précédent client d’un potentiel fournisseur, ça sera la personne la mieux placée pour vous faire un retour et vous donner les points de vigilance par rapport à un fournisseur.

En complément, il est important de vérifier quelle est la taille de l’entreprise à laquelle vous allez confier votre réalisation. Quel est son chiffre d’affaire annuel ?  Combien de salariés ont-ils ? Posez vous la question : que se passerait-il s’il devait arriver malheur au fondateur de cette entreprise ? Serait-il en mesure de maintenir l’activité ou à minima me proposer un plan de secours ?

 

3 – définition du périmètre

Même si vous n’écrivez pas le cahier des charges global de votre projet, il est important d’essayer de penser à tous les composants que vous aurez à développer plus tard. Généralement, vous avez besoin d’une interface de gestion (backoffice), d’une intégration avec un CRM, d’envoi d’emails de manière automatique, de paiements électroniques et éventuellement de connecter d’autres d’outils disponibles sur internet pour envoyer des SMS par exemple. Que vous ayez le budget ou non, vous ne ferez généralement pas développer la totalité des fonctionnalités que vous avez imaginées à terme. Néanmoins, prendre en compte le futur périmètre complet et être très clair avec votre fournisseur sur les potentiels futurs développements permettra, à lui comme à vous, d’être sur la même longueur d’onde sur le long terme.

 

4 – Le prix

Le prix est souvent un critère de choix important qui vient dans certains cas arbitrer sur ce que l’on peut faire ou non. Encore plus important que le prix, c’est le contenu de la proposition : qu’est-ce que le prestataire aura compris de vos besoins. Le cahier des charges parfait n’existe pas et son interprétation peut changer d’une entreprise à l’autre. Donc avant de comparer le prix, soyez certain que votre fournisseur a bien compris et anticipé vos besoins. Le meilleur moyen de s’en assurer est de regarder les projets similaires que le prestataire a déjà réalisés.

 

5 – Les choix technologiques

Avant tout, il n’y a pas véritablement de technologie meilleure qu’une autre, c’est beaucoup plus une question de connaissance, ressources, maturité de votre business et vos objectifs. Construire une plateforme qui peut gérer des millions d’utilisateurs va coûter beaucoup plus cher qu’un site WordPress ou Magento. En fonction de vos moyens et de la vitesse que vous souhaitez donner à votre développement, je recommande généralement de « penser grand, mais construire petit à petit ». D’une manière générale, si vous avez moins de 15K€ de budget pour un site web, vous devriez partir sur un CMS ou site e-commerce classique que vous ferez évoluer au moyen de plugins.  Si vous avez plus de 15K€ de budget, vous pouvez envisager de faire un développement spécifique, mais toujours basé sur un « framework » connu.

 

En phase d’amorçage, ne passez pas beaucoup de temps sur des technologies de grandes échelles telles que le NoSQL. Construisez quelque chose de simple, trouvez votre business model et ensuite faites évoluer votre produit vers des technologies de grande échelle. Trouver un business model viable est une tâche beaucoup plus compliquée que de mettre en place des solutions techniques ; la technique est simplement mathématique, ce qui n’est malheureusement pas toujours le cas du business.  (cf: http://paulgraham.com/ds.html )

 

 

6 – La priorité du code source

J’ai vu beaucoup de sociétés de développement qui développent sur leur propre framework et qui vendent les logiciels sans l’accès au code source. C’est la pire des solutions, que vous devez fuir. Honnêtement, avant de signer un contrat avec un prestataire, posez lui simplement la question suivante : Comment cela se passe-t-il si un jour je veux internaliser les développements ou travailler avec une autre entreprise que vous ?

En tant que startup, si vous rencontrez le succès escompté, vous avez de grandes chances d’être racheté par une autre entreprise, ou grossir avec votre propre équipe technique. Ne soyez donc jamais dépendant de quelconque fournisseur.  (Même pas de moi J… Mon travail est justement d’apprendre à mes clients à ne plus avoir besoin de mes services).

 

7 – Infrastructures

En rapport avec le précédent point, demandez à l’entreprise avec qui vous projetez de travailler d’installer votre site internet sur votre propre serveur. Peu importe que vous choisissiez une solution Cloud ou un simple serveur, demandez-leur de faire l’infogérance sur votre serveur et de vous fournir la documentation d’exploitation. Cela vous permettra entre autres de pouvoir faire intervenir n’importe quel autre expert pour vérifier leur travail. C’est véritablement une question de transparence et encore une fois d’avoir le contrôle de ce qui vous appartient, peu importe ce qui peut arriver à votre fournisseur. Soyez également sûr que vous avez des sauvegardes régulières avec votre hébergeur.

 

8 – Stockage des codes sources

Concernant les codes sources, c’est la même chose que pour l’infrastructure, vous devez contrôler ce qui est fait et par qui. Le meilleur moyen pour cela est de souscrire à un service tel que http://bitbucket.org or http://github.com. Grâce à ce type de solution, vous être capable de regarder tous les changements apportés par les développeurs au jour le jour et ligne après ligne. Et cela vous permet également de pouvoir faire travailler qui vous voulez sur votre logiciel, que ce soit pour faire une évolution ou auditer ce qui a déjà été fait.

 

9 – Les délais

C’est une excellente chose de fixer un délai de réalisation très court ; cela force votre fournisseur à travailler de manière intensive sur votre projet, évitant ainsi la dispersion sur plusieurs projets. Soyez sûr de bien engager le prestataire à livrer le logiciel à une date bien spécifique, et fixez des pénalités si ce délai n’est pas respecté. Prévoyez néanmoins toujours quelques semaines de marge sur votre planning afin de ne prendre aucun risque, mais ne partagez pas cette marge avec votre prestataire.

 

10 – Le travail en cours

Comme je recommande fortement d’utiliser une méthode agile, demandez à votre fournisseur comment il fonctionne habituellement avec ses autres clients. A quelle fréquence effectue-t-il une démonstration des développements en cours ? Peuvent-ils mettre en ligne sur un site de test présentant les développements en cours afin que vous puissiez être capable de suivre l’avancement ? Peu importe comment votre prestataire est organisé, demandez à avoir l’état d’avancement des développements à minima toutes les 2-3 semaines.  Demander un rapport d’état d’avancement à fréquence régulière vous permettra de pouvoir faire des ajustements si nécessaires, sans attendre la fin des développements.

 

Conclusion

Choisir le bon prestataire de service n’est pas une tâche aisée mais en analysant les critères de choix les uns après les autres, vous devriez être plus confiant, et permettre à vos projets d’être toujours sur le bon chemin, ou à minima de pouvoir changer facilement de chemin.

 

Et vous …

Avez-vous d’autres critères d’évaluation ?

Avez vous une bonne ou une mauvaise expérience à partager ?