7 Reasons Why You Should Never Outsource Software Development by Redwerk

Chaque minute, une douzaine de nouvelles entreprises informatiques au même modèle économique d’externalisation ou de délocalisation de personnel sont enregistrées dans le monde entier. Les rouages internes des entreprises diffèrent cependant – d’une “entreprise dirigée par une seule personne” aux contrats familiaux sous la forme d’un PDG ancien développeur, d’une épouse ancienne responsable QA et d’un couple d’amis fatigués de travailler pour quelqu’un d’autre.

Considérer l'externalisation du développement logiciel

Et s’ils volaient mon idée ?

« Il y a un TOR avec une description du projet. Mais je dois passer par une tonne de programmeurs. Mais la question est de savoir si je vais créer mes propres concurrents, pendant la recherche, en révélant l’idée, la logique, les formules et autres idées ? Comment me protéger du vol de MON idée ? Existe-t-il un accord de confidentialité unilatéral ? »

Si nous venons de citer vos pensées, alors nous devons dire que vous exagérerez le problème. Premièrement, l’idée elle-même, non encore mise en œuvre, ne vaut rien. Un bon programmeur est submergé de travail, et, de plus, il est bien payé. Et ce qui est important, le paiement est garanti, contrairement au vol d’idées. Même si le programmeur voulait voler quelque chose – déchaîner l’idée demanderait beaucoup d’efforts. Pendant ce temps, le programmeur perdrait une tonne de fric (absolument !). Et si l’idée prend forme, c’est toujours flou. Mais il faudrait y consacrer beaucoup d’efforts, c’est sûr, et en attendant perdre une pile d’argent.

Deuxièmement, essayez de breveter, c’est pour ça que les brevets ont été inventés. C’est une blague, bien sûr, mais, comme on dit, essayez, pourquoi pas.

En fait, il existe des choses comme les accords de non-divulgation (NDA), les accords de confidentialité (CDA), les accords-cadres (MA) qui visent à prévenir, arrêter, punir la divulgation et réparer les dommages. N’importe lequel des éléments mentionnés ci-dessus peut être signé avec toute entité à qui vous confiez l’accès à des informations confidentielles.

Ce que nous aimerions ajouter à cela, c’est que les programmeurs décents sont moins sujets à ce problème. Ils ont une réputation et un salaire – il n’y a pas besoin de voler. Eh bien, évidemment, en externalisant, vous fournissez aux sous-traitants certains détails sur le projet, mais, en réalité, ils n’ont aucune idée de comment créer au moins un analogue, le lancer sur le marché et dans quelle direction se développer. Et c’est exactement ce que savent les dirigeants et les fondateurs de ces projets. Il n’y a rien à voler, derrière chaque idée il y a une expérience et des connaissances qui ne sont tout simplement pas en possession des programmeurs, car ce sont des développeurs et ils ont l’expérience et les connaissances pertinentes.

Souvent – et c’est en fait normal – nous doutons et craignons, et s’ils ne me comprennent pas, et si mon idée est mal interprétée, et si le produit final est à l’opposé de mon idée ?

Ces craintes, dans une certaine mesure, sont fondées, car nous sommes des êtres humains et des individus, et chacun a sa propre vision, sa perception et sa compréhension de la réalité. Il n’est pas toujours possible d’exprimer verbalement tout ce qui est dans notre esprit. Alors, comment s’assurer que notre idée sera parfaitement incarnée par les développeurs ?

C’est pourquoi il existe de merveilleuses personnes comme les analystes commerciaux, qui servent d’intermédiaire entre le client et l’équipe.

Un analyste commercial est un spécialiste qui analyse le problème du client, cherche une solution et formalise son concept sous forme d’exigences, qui seront utilisées par les développeurs à l’avenir lors de la création du produit.

Nos analystes commerciaux, qui sont en outre experts en technologie, sont capables d’identifier les besoins du client et de comprendre le problème que ce dernier cherche à résoudre.

Sur cette base, nos professionnels formulent indépendamment ou avec l’aide de l’équipe le concept de solution. Ensuite, à l’aide de diverses techniques d’analyse commerciale (construction de modèles de processus et de structures, prototypes d’interface utilisateur, scénarios d’utilisation), ils transmettent le concept dans un cahier des charges avec des exigences spécifiques pour le futur produit. Parallèlement, des estimations précises des coûts de main-d’œuvre et de la durée des travaux sont effectuées. Pour clarifier et assurer un processus de mise en œuvre fluide, chaque exigence est détaillée sous forme de spécifications. Afin de favoriser une gestion et une coordination plus efficaces, nos analystes commerciaux conseillent continuellement les programmeurs et les testeurs pendant le développement du produit, et négocient les questions litigieuses avec le client. Ainsi, les rêves des clients se réalisent.

Si vous êtes cordonnier et que vous fabriquez des chaussures, elles doivent d’abord être chaudes, confortables et fabriquées à temps, et seulement ensuite, avec un point de sellier et une piqûre.

Où voulais-je en venir ? Revenons en arrière.

J’ai besoin d’un programme implémenté pour approvisionner et développer mon entreprise. J’ai donc décidé d’externaliser cette tâche à une société de développement. Mais et s’ils le construisent avec du WTF ?

Évidemment, en tant que clients, nous ne nous soucions pas vraiment du code lui-même – l’essentiel est que le code résolve notre problème. Nous sommes, normalement, prêts à accepter quelques erreurs et bugs. Nous ne voulons que payer moins cher pour un système d’automatisation fonctionnel, qui nous fera à nouveau économiser de l’argent.

Cependant, une situation étrange se produit : tous les développeurs disent qu’ils sont pour le beau code. Je n’ai vu aucun développeur dire : Je vais écrire du code WTF ! Sauf en cas de force majeure, ils se lamentent parfois : « oh, zut, nous devons faire un hack, mais nous y reviendrons un jour et le ferons proprement ». Un code lisible et agréable est la valeur claire de tout développeur. Alors, comment se fait-il qu’avec cette attitude des développeurs envers la beauté du code (du moins, telle qu’elle est déclarée), il est rarement possible de trouver un projet vraiment beau sans code de merde ? Quel est le secret ?

Premièrement, le contexte du code. Le projet, dans lequel le code est écrit, est toujours lié à des contraintes d’argent et de temps, affectant les gens (client, sous-traitants, membres, y compris le conjoint du développeur), chacun tirant la couverture à soi.

Deuxièmement, les développeurs, cela arrive surtout sur les grands projets, ne se connaissent même pas. L’échange d’informations de code entre programmeurs dépend de la manière dont les flux d’information au sein de l’entreprise sont généralement établis.

La beauté est la beauté, mais il y a des choses plus importantes.

C’est la culture du code : d’abord, le développeur doit créer une solution fonctionnelle sur commande – et ensuite, s’il a assez de compétences, de temps, peut encore se tenir, il rend cette solution belle de l’intérieur.

Eh bien, dans un scénario idéal, des développeurs compétents écrivent un beau code pour des clients adéquats et respectent les délais, et c’est ce que tout le monde vise.

C’est une bonne raison de s’inquiéter. En raison d’une culture d’entreprise ou d’un climat particulier, il arrive qu’ils ne soient pas en mesure de dire non à un supérieur ou à un client par respect. Mais à quoi sert le respect pour un client qui n’a pas reçu la solution promise ? C’est pourquoi l’honnêteté est la clé du succès et du développement ultérieur d’un climat de confiance entre un fournisseur et un client. En tant que client, vous devez fixer un objectif clair. En tant que fournisseur, vous devez signaler le problème et envisager des solutions, telles que la modification des attentes ou la réduction de la portée si le délai ne peut pas être modifié.

J’ai besoin de mettre en œuvre un projet, qui est une application mobile. Je suis un client, et en même temps propriétaire du produit, je demande une estimation. Toute personne ayant un peu le « sens des affaires » en cœur, commencerait immédiatement à penser qu’on ne peut pas manquer l’occasion de gagner de l’argent, et commencerait à appeler, franchement, un prix aléatoire. Et ils appellent certainement un prix sous-évalué, afin de ne pas manquer le client, sans penser à ce qui va se passer ensuite. Ou, en mentant, ils sous-évaluent le montant, puis extorquent de l’argent supplémentaire, arguant des « écueils » et faisant du chantage au rejet du projet… Je suis sûr que les gestionnaires ajoutent des heures supplémentaires pour me soutirer de l’argent.

Mettons les choses au clair ! L’externalisation du développement logiciel est généralement effectuée selon un accord à prix fixe (Fixed Price) ou un accord Temps et Matériaux (Time and Material). L’approche du prix fixe, selon nous, n’est pas raisonnable pour une tâche telle que le développement logiciel. Qui couvrira les travaux supplémentaires survenus en raison de l’étourderie, et peut-être même de l’irresponsabilité du client ou du fournisseur. Dans l’approche à prix fixe, il y a un budget de « risques ». Mais que se passe-t-il s’il est déjà épuisé, alors, au mieux, le client du projet blâmera le prestataire pour des « dés truqués »… au pire, un litige commencera. De plus, au tout début du projet, le périmètre n’est généralement pas clair pour le client, et encore moins pour le prestataire. Dans l’approche à prix fixe, la probabilité d’obtenir un projet désastreux du fait que le budget est trop petit est de 50 %. Les 50 % restants signifient que le client paiera trop cher pour le projet.

Travailler avec l’approche T&M est plus avantageux pour les deux parties. Le client obtient ce qu’il veut (une solution) au final, le prestataire tire profit du travail effectué. Mais cette approche demande de grands efforts des deux côtés, et la disponibilité d’une certaine base matérielle et technique.

C’est bien, mais comment savoir si la portée est faite correctement, comment savoir que, sorti de nulle part, des heures supplémentaires et des dépenses supplémentaires ne vont pas me tomber dessus ?

Premièrement, et une fois de plus, pour s’assurer que la portée est claire, il y a des Analystes Commerciaux, qui feront une recherche supplémentaire avec le client pour s’assurer que chaque détail du projet a été correctement défini. De plus, en tant que client, assurez-vous de comprendre le cycle de vie d’un produit. Le processus de développement ne peut pas consister uniquement en des appels téléphoniques quotidiens. Il existe des outils tels que des pistes de suivi des problèmes et des dépôts de code source, qui sont indispensables, afin que le client obtienne un suivi des progrès et des statuts mis à jour.

Les préoccupations concernant la sécurité des données aux mains de sous-traitants étrangers augmentent. Jour après jour, Internet regorge de nouvelles sur des informations confidentielles volées, vendues, etc. Même des géants comme Google et Facebook ont figuré sur la liste. Comment puis-je être sûr de l’honnêteté des sous-traitants de la société d’externalisation et savoir qu’ils ne vont pas fusionner ma base de clients, lorsque l’occasion se présente. Je ne veux pas me retrouver dans une situation impliquant un prétendu vol d’informations confidentielles, et payer pour les fautes de quelqu’un d’autre, et supporter d’énormes amendes, et subir des dommages réputationnels importants.

Alors, pour le client, l’outil principal contre le risque de perdre le contrôle du projet est de toujours rester un propriétaire de produit à part entière – c’est-à-dire, de comprendre parfaitement la logique commerciale de son produit et comment il est techniquement réalisé.

Pour cela, il devrait y avoir 2 personnes du côté client : le responsable du département informatique (ou le directeur du numérique) et le directeur métier du projet. Le premier gérera les équipes informatiques externes et internes, coordonnera leur travail et assurera le contrôle qualité du code, le second sera responsable de la stratégie métier du produit.

Ce qui est le plus important pour prévenir les violations de la sécurité de l’information, c’est un NDA ou un CDA correctement exécuté. En plus de cela, les gouvernements étrangers essaient également de gérer ces préoccupations. Ainsi, comme vous vous en souvenez peut-être, le RGPD a récemment été adopté pour protéger l’intégrité et la confidentialité des informations personnelles collectées auprès des clients, conformément aux normes internationales de confidentialité.

Les différents fuseaux horaires sont un casse-tête pour les grandes sociétés transnationales, encore plus pour l’externalisation. Pendant qu’une partie du monde est en journée de travail, ils commencent à peine à travailler à un autre endroit du globe. La réponse aux e-mails n’arrive que le lendemain.

Pour les réunions générales, il faut organiser des appels sur un « territoire neutre », ce qui entraîne une augmentation des coûts de communication. Alors, que faire ? L’externalisation est-elle la meilleure solution pour mon entreprise, quand même ? Oui, elle l’est. Mais assurez-vous que le fuseau horaire du fournisseur de services conviendra parfaitement à vos demandes. Comme le globe est rond, il est facile de trouver un pays quelque part « entre » les zones. Par exemple, le fuseau horaire de l’Ukraine est GMT + 2. C’est très pratique pour l’Europe – les heures de travail sont les mêmes. Et même pour les entreprises d’Amérique, l’Ukraine est le meilleur choix par rapport aux fuseaux horaires de la Russie, de l’Inde ou de la Chine. De plus, l’industrie informatique excelle dans les horaires flexibles, il est donc toujours facile de fixer une heure de réunion pratique pour les deux parties.

Évidemment, à la première étape, vous n’aurez pas une confiance à 100 % d’avoir choisi la bonne entreprise. Mais vous pouvez réduire la probabilité d’erreur jusqu’à 80 % si vous écartez les acteurs qui baissent franchement les prix, vérifiez la compétence de votre responsable informatique, obtenez un maximum d’informations sur la qualité des services de l’entreprise auprès d’autres clients, examinez et « ressentez » les processus et les outils informatiques utilisés par le sous-traitant, et, enfin, assurez-vous de l’importance de ses garanties financières et juridiques (montant des remboursements pour la faible qualité des services et SLA clairs).

Pourquoi Redwerk ?

Alors, que font les Redwerkers pour dissiper tous vos doutes et préoccupations lorsque l’externalisation du développement de produits devient un choix. Consultez cette liste et faites votre choix éclairé !

Tout d’abord, nous ne sommes pas un succès du jour au lendemain, notre expertise a été acquise sur plus de 13 ans. Sang et sueur ont bâti notre entreprise. Consultez nos progrès en un clic et parcourez nos études de cas et témoignages de clients entièrement satisfaits.

Deuxièmement, nous protégeons la vie privée de nos clients et toutes leurs données en signant un NDA bilatéral où les deux parties s’engagent mutuellement à ne pas divulguer d’informations qu’elles entendent protéger de toute divulgation ultérieure. Notre contrat comprend également une clause de confidentialité pour garantir une discrétion totale dans la conservation des informations secrètes. En outre, le contrat considère la clause « tous droits réservés » en vertu de laquelle tous les droits sur le produit développé reviennent au Client et nous assurons une priorité ultime dans la détention du produit.

Troisièmement, nous construisons une solution de données complète, vous permettant de traiter les données personnelles de manière équitable et conforme à la loi, et nous le faisons également, puisque nous sommes conformes au RGPD.

Quatrièmement, ce qui suit, c’est que nous sommes absolument dédiés et fidèles au modèle de contrat Temps et Matériaux, pour qu’il ait ses propres avantages, tels que :

  • garantir la planification financière ;
  • conserver le droit de déterminer le nombre de membres et de membres qualifiés de l’équipe au goût du client ;
  • assurer notre réponse rapide à tout problème. Nous ne restons pas silencieux, nous discutons et résolvons tout problème qui pourrait survenir ;
  • accorder au client un soulagement de la délégation, puisque le client communique avec le chef de projet et discute des exigences principales avec lui, qui par la suite partage les tâches au sein de l’équipe ;
  • assurer un développement transparent et un résultat souhaitable. Le client reste informé du développement du projet, ayant accès aux systèmes de gestion des tâches et à la comptabilité des coûts de main-d’œuvre en mode 24/7.

Cinquièmement, en ce qui concerne notre équipe, nous garantissons que nos analystes commerciaux sont d’excellents négociateurs, experts en technologie, ainsi que compétents dans les principes des flux de trésorerie et du travail financier, afin de répondre exactement à vos objectifs. De plus, nos architectes, développeurs de logiciels, ingénieurs d’assurance qualité ou concepteurs UI/UX, chacun, sont des spécialistes hors pair, ils connaissent leur métier et fournissent un développement, une mise en œuvre et une maintenance de logiciels de premier ordre pour chaque client. En outre, la pile technologique de Redwerk comprend Java, C#, Python, Ruby, JavaScript, NodeJS, MySQL, Android, Windows, MacOS X et de nombreux autres langages de programmation couramment utilisés.

Comme vous pouvez le constater, nos valeurs sont assez simples : dévouement, expertise, conformité, transparence, qualité. Si ce sont ces valeurs que vous recherchez, n’hésitez pas à nous confier votre développement logiciel.