Bonjour,
Il y a deux questions exposées :
-
la première est comment et de quelle manière sélectionner un prestataire de développement indépendant pour sous-traiter la réalisation d’un logiciel ?
-
la deuxième comment faire en sorte pour que tout ce passe bien, du début à la fin, sur le projet de conception et réalisation du produit ?
Comme je l’ai déjà dit ailleur sur ce forum, je travail dans le secteur du numérique depuis plus de 20 ans et je fais du développement logiciel depuis plus de 30 ans. J’ai plusieurs dizaine de participation à des projets plus ou moins importants. Je maîtrise toute la chaîne d’ingénierie logiciel.
Cela veux dire aussi que j’ai été confronté à ce qu’il fallait faire ou ne pas faire !
Sous-traiter ça R&D pour un éditeur de solution logiciel ou de plate-forme de service c’est prendre le risque d’être confronté à une perte de maîtrise technique du produit. Sauf à avoir un suivie et un contrôle qualité très serré, ce qui en général n’est pas forcément la 1ère des priorités pour les créateurs.
Même si l’ingénierie logicielle s’améliore en terme de processus industriel, cela reste à la marge et les pratiques sont encore très artisanales et ce pour différentes raisons.
L’une d’entre-elles c’est que les moyens humains et techniques peuvent s’avérer extrêmement lourd pour industrialiser l’ensemble de la chaîne.
Difficile de détailler en quelques lignes, les conditions techniques de la réalisation d’un produit logiciel mais, la qualité du code en fait partie et comme cela l’à été dit, il faut que celui-ci soit commenté.
L’outillage utiliser par les développeurs est également important mais, il faut savoir toute raison garder et vous pouvez très bien être confronté à des problèmes de licence, par exemple.
Il ne s’agit pas d’un problème de langage de développement, il s’agit d’un problème de choix techniques que l’on ne laisser faire seul un développeur. Les choix à faire peuvent avoir une incidence stratégique et c’est normal, c’est le produit que vous allez ou que vous vendez.
Constituer une équipe de R&D, ingénierie logiciel peu sembler au demeurant aisé, après tout on pourrais considérer que c’est du recrutement. Toutefois, les développeurs/ingénieurs sont une population un peu à part à mon sens et ce pour différentes raisons.
L’une d’entre elles, c’est que les développeurs peuvent se montrer « volage », dans le sens ou ils n’hésite pas à changer d’employeur fréquemment. Provoquant ainsi, un turnover important, chez les ESN (Entreprise de Service Numérique) mais, pas qu’elles. Et plus, ils sont bon et pas que d’un point de vu technique, plus ils sont sollicités avec tous ce que cela suppose.
Faire appel à des Freelances ou mieux une entreprise sous-traitant, c’est aussi prendre des risques sur les délais, les coûts, la qualité… Dans certains cas, le projet peu même être re-sous-traiter sans que vous le sachiez. Pratique courante malheureusement. Sans parler du risque que le projet soit réalisé en Off Shore, là aussi sans que vous le sachiez !
Donc, comment faire ?
Essayer de concevoir une roadmap la plus complète possible, celle-ci vous sera utile pour vos équipes, vos sous-traitants éventuelles mais, aussi vos investisseurs. Quitte à en faire une version allégée.
De là, constituer une documentation fonctionnelle sur un Wiki par exemple. Puis, de définir la partie technique (architecture, spécification, modèles de données ou de conception objet, …). La documentation de part mon expérience est un outil précieux pour les équipes et pas que techniques.
Votre organisation et votre infrastructure, devra vous permettre à la fois de sous-traiter tout ou partie du développement mais, également d’éviter certains problèmes qualitatifs sur la solution. Les phases de tests sont donc extrêmement importantes, tout celle de conception.
La qualité d’un logiciel, passe donc par la vérification du fonctionnement de celui-ci avec des outils mais, aussi par des humains, car tout ne peut-être automatisé. Là aussi vous serez peut-être obligé de sous-traiter.
Il y’a toutefois, une notion qu’il faut avoir en tête pour ne pas répéter les erreurs de vos pères, c’est que vous devez garder la main sur la qualité de votre produit. Car comme le dit l’adage, on ne peut-être juge et partie. Et donc les équipes R&D ne peuvent être responsable de la qualité. On sépare donc la qualité de la R&D.
Du coup, si on sous-traite on soumet au filtre de la qualité le résultat de la sous-traitance ! Avec contractualisation la plus formelle possible, cahier des charges, … Et engagement sur le résultat, c’est peut-être plus chère mais, c’est le prix de la qualité.