La vague du développement Off Shore et Nearshore s’est un peu calmée, mais avec la “bulle internet 2.0″ on commence à entendre de nouveau parler des développements réalisés à l’étranger (Inde, Philippines… mais aussi le Maroc et l’Ile Maurice) pour des projets de sites à la mode 2.0…
En effet au contraire de certaines professions comme le marketing, le droit… l’informatique est un langage universel, et donc “a priori” que le développeur soit en Inde ou à Paris, cela ne devrait faire guère de différence…
Le but de cet article sera donc de faire un point sur quelques retours d’expériences de développement offshore, de vous donner quelques bons conseils (et les erreurs à éviter) ainsi sites incontournables pour proposer son projet.
Attention, le but n’est pas faire un énième article sur comment mettre en place un projet offshore, mais de présenter les cas de petits projets (ex: réaliser une fonction, un site internet…).
Tout d’abord, si vous êtes farouchement opposé au capitalisme sauvage ou la mondialisation, passez votre chemin car l’offshore est la caricature de la mondialisation et de la mise en concurrence avec des enchères au moins disant…
Avant de commencer, il faut déjà rappeler le niveau de salaire en France afin de pouvoir comparer les prix :
- Le SMIC à 70 € / jour (8,44 € /heure), c’est le salaire le plus bas en France.
- Le salaire d’un salarié embauché comme développeur débutant à 200 € / jour (soit un salaire annuel compris entre 18 et 23 k€ /, soit pour l’entreprise un coût de 36 K€ et 46 K€)
- Le prix de la prestation d’un Freelance français : entre 300 à 500 € / jour (avec des différences entre Paris / Province, l’expérience…).
Pour comprendre ces prix, il est intéressant de lire le mécanisme de calcul du tarif d’un Freelance en France.
Ces chiffres sont à comparer aux 140 € / jours proposés par des sociétés de prestations Off Shore (ou nearshore comme le Maroc ou les pays de l’Est), dans les 100 € pour des développeurs américains (surtout grâce au dollar très faible actuellement) et dans les 70 à 80 € / jour pour les développeurs en Inde ou en Asie.
Si l’on se concentre uniquement sur le prix à la journée, cela peut sembler extrêmement intéressant, avec des coûts divisés par 4…
Comment faire du développement en offshore ?
Le plus simple, c’est tout simplement d’utiliser Google, et taper “programmeur offshore”, et vous verrez apparaître non seulement des sociétés étrangères proposant leurs services, mais aussi des entreprises ayant pignon sur rue en France et vous proposant de gérer les développements à l’étranger.
Le choix de passer par une structure intermédiaire est bien plus confortable, car cela permet d’une part de bien cadrer le projet (définition claire du projet, cahier des charges…), d’avoir un interlocuteur francophone et surtout de savoir vers qui se tourner quand cela se passe mal. Parfois ces entreprises proposent même de faire travailler dans les locaux un de leur développeur, exactement comme si l’on faisait appel à un CDD.
Néanmoins, dans notre exemple, nous prendrons le cas des petites entreprises, des start-ups, des créateurs d’entreprises… qui s’adressent directement aux développeurs off shore sans passer par une SSII pour réaliser le site internet de leurs rêves !
La première étape consiste à publier sur le site les spécifications du développement à travers une suite de questions qui structurent le projet : quelle technologie, quel type de prestation, filtrer optionnellement le pays, fixer le temps laissé au développeur…et enfin le document de spécification proprement dit.
Et c’est là la difficulté principale : il faut rédiger un document très précis qui explique (in english only) le résultat obtenu. Cela signifie faire des maquettes d’écrans, éventuellement la structure des bases de données, indiquer le design... pour ne laisser aucune ambiguité sur le résultat attendu. Il faut vraiment penser à tout, sinon le développeur fera selon ce qu’il pense être le mieux (ou le plus rapide), ce qui n’est pas forcément ce que vous attendez !
Après cette phase de soumission des spécifications, un certain nombre de développeurs vont répondre à votre appel d’offre pour réaliser le projet… Il est intéressant que noter que les chiffres peuvent varier considérablement (1 à 10 sur des petits projets).
Ensuite il suffit de sélectionner le développeur qui vous parait le plus sérieux, le moins cher, avec la bonne expérience, dans le pays qui vous convient… Après avoir donné son accord il suffit de verser sur un compte neutre (celui du site) pour que le projet débute.
Une fois le développement bien avancé, le codeur vous propose de tester le résultat sur son environnement. Et à la fin du délai imparti le codeur est censé vous livrer son résultat que vous devez réceptionner (et tester si vous ne souhaitez pas avoir de mauvaises surprises !).
Une fois que c’est ok il ne reste plus qu’à donner votre accord pour débloquer le paiement. Et si des problèmes subsistent, il est encore possible de communiquer via le site sur des questions ou des adaptations, mais au final, il faudra vous positionner sur l’acceptation du résultat.
Si vous être d’accord, le paiement est débloqué (vous pouvez même rajouter un bonus) et on vous demande de noter le codeur (très important pour que le système continue de fonctionner, un peu comme la notation des vendeurs sur ebay…).
Et dans le cas d’un site internet, il vous faudra aussi mettre en ligne le site : liaison avec la base de données, administration…
En cas de litige, il faut passer par la procédure d’arbitrage de ces sites, car il va de soit qu’il est quasi impossible de faire jouer la législation française contre un indien situé à l’autre bout de la terre…
16 conseils pour réussir un projet de développement en offshore
Voici 16 conseils qui devraient vous éviter de dépenser inutilement votre argent et vous retrouver au final avec un site internet ou un programme totalement inexploitable...
1- Pour attirer un maximum de développeurs qualifiés ajoutez dans votre description “C’est un travail simple pour tout développeur qui connaît bien le C++/PHP/...” (”This is an easy job for the right person.”). Pour éviter d’attirer les développeurs inexpérimentés demandez-leur un exemple de projet réussi (”Please post examples of your related previous work.”). Enfin précisez que le délai peut être modifié (”I’ve posted a deadline of _____ days. If you feel that is too short, please post your timeframe with your bid.”).
2- N’indiquez pas votre enchère maximum pour le prix du développement dans le descriptif, sinon les participants vont systématiquement proposer ce prix... Laissez au minimum votre enchère durant 3 jours, et s’il n’y a pas assez d’enchérisseurs, augmentez le délai à 5 à 7 jours.
3- Une fois votre projet en ligne, proposez directement votre projet à des développeurs du site qui sont spécialisés dans le domaine que vous recherchez (faites une recherche par des mots clés très pointus afin de tomber sur des pros. Par exemple tapez “OS commerce” pour avoir un développeur qui maitrise ce type de boutiques).
4- Il faut vérifier son enchère toutes les 2 ou 3 heures la première journée afin de répondre aux questions, et en les mettant dans les commentaires de l’annonce afin que les prochains développeurs intéressés puissent avoir l’information. (nb: Si vous n’avez peu ou pas de réponses, c’est que votre projet est mal formulé…).
5- Généralement il ne faut pas prendre le moins cher, mais ceux qui sont dans la fourchette moyenne-haute des enchères. Faites surtout attention aux questions qui sont posées, car cela montre que le développeur s’intéresse au projet et qu’il saura y répondre. Le plus souvent, c’est le développeur qui pose le plus de questions avant de placer son enchère, qui est le plus pertinent...
6- Il arrive souvent que les développeurs vous envoient une liste longue comme le bras avec des dizaines de références... Dans ce cas ne perdez pas votre temps à tous les visiter... Demandez-leur surtout quel projet est le plus en rapport avec ce que vous souhaitez leur faire faire.
7- Une fois votre shortlist effectuée (maxi 10 développeurs), visitez leur profil et surtout les évaluations des projets qu’ils ont réalisés. Il faut bien entendu regarder ceux qui ont fait des projets similaires au vôtre (et la notation reçue !), le prix moyen des projets qu’ils ont déjà réalisés (pour voir si le développeur sait gérer des gros ou des petits projets)...
8- Si vous avez le budget, demandez à 2 développeurs de faire le même projet, ainsi vous augmentez les chances que le projet soit réalisé dans les temps (et surtout correctement !). Si vous n’avez pas le budget ou si c’est un très gros projet, alors assurez-vous d’avoir choisi la bonne personne en communiquant clairement sur le projet avec tous les tenants et aboutissants.
9- Pour le calcul de la date de remise du projet, soit vous n’êtes pressé et vous estimez à la louche une date, soit vous calculez grosso modo le temps de développement nécessaire pour développer ce projet avec comme base de calcul un travail 7 jours/7 et 8h / jour, mais en laissant 10% de marge pour laisser à la personne le temps de réaliser les tests minimums (nb : mieux vaut prévoir plus large...).
10- Généralement vous recevez un rapport hebdomadaire sur l’avancement d’un projet, mais il est conseillé d’envoyer tous les jours un message au développeur durant la première semaine afin de vérifier qu’il part dans la bonne direction (et qu’il travaille bien sur votre projet !). N’oubliez pas de préciser dès le départ du développement votre adresse email, mais surtout votre adresse MSN ou votre N° de portable afin que le développeur ne soit pas bloqué dès la phase d’analyse. Vous devez être très réactif pour ne pas lui faire perdre son temps.
11- Si le travail a été correctement effectué, laissez un petit bonus au développeur afin de le remercier, et de pouvoir le fidéliser si vous avez encore besoin de lui pour améliorer le développement effectué.
12- Si le développeur est près de chez vous (il y en a certains qui sont en France !), planifiez des réunions physiques (pas que du chat ou de la visioconférence, de la vraie réunion en face à face) pour éviter les incompréhensions. Si le développeur est loin (ce qui est le plus souvent le cas), vous devez absolument détailler le plus possible le résultat attendu et communiquer régulièrement avec lui.
13- Il est important de définir des étapes dans le déroulé du projet, afin de faire un point sur l’avancement de celui-ci (le projet n’est pas juste un début et une fin, mais une série d’étapes intermédiaires).
14- Préférez toujours un paiement au forfait si vous ne savez pas le temps que prendra votre projet. Le paiement à l’heure est intéressant que si vous savez exactement le temps que cela prendra ou si vous recherchez des conseils.
15- Attention aux différences culturelles : par exemple un indien aura du mal à dire non à l'une de vos demandes, même si elle est impossible (et donc il fera ce qu’il peut, même si c’est à 200 km de votre demande initiale), la notion de qualité de produit est très différente entre les pays (ex: aux USA une tendance forte est de sortir un produit même buggé, et de faire ensuite des patchs...), un développeur asiatique aura peu d’autonomie et donc il faudra produire un cahier des charges très, très détaillé (en France un développeur a plus d’autonomie, et il aura le réflexe de se poser les bonnes questions et de se mettre à la place de l’utilisateur)…
16- En cas de projet innovant, vous avez la possibilité de faire signer aux développeurs un accord de confidentialité (Non Disclosure Agreement). C’est une option fortement recommandée si vous pensez que votre idée pourrait être copiée facilement.
Quelques témoignages de projets de développement offshore
- www.urbanprox.com : création gratuite de boutique d’e-commerce pour les commerces de proximité.
Le fondateur du site avait recherché sur Internet les sites qui permettaient de trouver des codeurs pour son projet et il a sélectionné www.rentacoder.com (il semblait être le plus important et il permettait de contacter des développeurs sur tous les continents).
Pour assurer une bonne confidentialité, il avait découpé son projet en 3 sous-projets, donc le développement s’est bien passé, et surtout pour des investissements ridicules. Par contre le webmaster rappelle que le site ne propose pas beaucoup de marge de manœuvre : une fois le développement fini, on ne peut plus demander à la personne de modifier son travail (sauf pour les bugs !). De plus les tests et l’intégration sont à votre charge, vous devrez donc investir du temps pour cela (on recommande généralement 1 jour de test pour 1 jour de développement).
Si vos spécifications sont impeccables, vous obtiendrez à des coûts incroyables un développement de qualité. Mais il faut savoir que ces développements sont issus d’une concurrence féroce entièrement au bénéfice de l’acheteur...
Par contre il faut savoir que ce genre de développement n’est pas adapté si vous n’avez pas clairement défini l’idée ou si vous souhaitez un développement avec un graphisme original. Néanmoins pour être sûr de la qualité du développement il faut avoir un développeur en France qui va réaliser le cahier des charges et surtout tester le programme (et éventuellement le modifier). Si votre budget est faible, vous pouvez éventuellement contacter un étudiant en école d’ingénieur ou en informatique qui pourra vous donner un bon coup de main…
- Cas d’un éditeur de progiciels français et international (nom confidentiel) :
Cet éditeur à fait appel à une société située à l’ile Maurice afin de pouvoir faire avancer très rapidement un projet de développement Web, et ainsi de laisser son équipe française se concentrer sur la partie “valeur ajoutée du logiciel”. Le choix de l’ile Maurice était conditionné par le fait de travailler avec des francophones avec un bon niveau en informatique, tout en bénéficiant de coûts salariaux plus faibles.
Avant de se lancer dans l’aventure une étude avait été menée, qui indiquait que dans le meilleur des cas, le offshore pouvait apporter 20% de gain de productivité en plus (et que le meilleur des cas n'était pas systématique...). Cette étude insistait aussi sur le fait que pour que cela fonctionne, avoir une équipe francophone était important pour éviter les problèmes de communication. C’est pourquoi L’ile Maurice, la Tunisie, le Maroc... sont maintenant plus utilisés que l’Asie.
Cette étude indiquait aussi que faire appel à des développeurs situés en province (en France) pouvait être parfois plus intéressant que l’offshore car les provinciaux sont payés 20% moins cher qu’a Paris avec le même niveau de qualité.
Au final l’expérience avec les développeurs de l’ile Maurice ne s’est pas révélé bonne : l’équipe de développement de l’entreprise a trouvé le développement effectué comme vraiment bâclé et totalement à refaire. En effet, si d’un point de vue “esthétique” le produit avait l’air de fonctionner correctement (jolie interface, menus présents...), ce n’était qu’une façade. Le fonctionnel était très limité aux fonctions basiques et les demandes essentielles avaient été contournées pour donner un résultat plus simple (le cahier des charges avait été habilement “interprét锑). C’est pourquoi, les développeurs internes de l’entreprise ont dû refaire une bonne partie de l’application en ajoutant les fonctionnalités métiers qui n’avaient pas été comprises ou pas assez développées.
- Cas Valtech (source: Rapport sur leur expérience off Shore de Valtech) :
La lecture de ce document de 16 pages est extrêmement intéressant car il montre bien tous les problèmes rencontrés lors d’un projet offshore de grande taille…
Il y a tout d’abord le manque d’implication de l’équipe française par rapport à l’équipe indienne, la surestimation systématique du travail par l’équipe indienne (peu familière avec le langage de développement, à qui l’on a donné des objectifs pas suffisamment clairs…). Au final de l’aveu même de Valtech, 50 à 70% des développements ont du être refaits à Paris.
Pour améliorer la situation des réunions mensuelles et hebdomadaires ont été mises en place (plus des voyages sur place), une personne a été dédiée à temps plein pour piloter le projet… et après quelques mois la qualité des développements était en très forte hausse. A demi-mot on comprend que si le coût “brut” du développement offshore est faible (= salaires plus bas), la structure nécessaire à un tel projet coûte cher et donc qu’elle doit être prise en compte dans le calcul du coût total du projet.
5 sites pour faire appel au développement offshore
- www.rentacoder.com : c’est le site de référence dans le développement offshore. Vous trouverez principalement des développeurs sur ce site, ce qui vous assure de trouver des Pros. Le questionnaire pour réaliser le développement (Web ou Windows) est particulièrement bien fait et assure aux débutants un minimum de rigueur dans la définition de leurs besoins.
- www.elance.com : Le nombre de projets depuis les 30 derniers jours est impressionnant (plus de 15 000 propositions !). Ce site est moins “technique” que rentacoder, mais il reste simple à utiliser. A noter la possibilité pour 15$ de placer une annonce “Premium”. Le site propose également un message board qui permet de noter les échanges et ainsi d’avoir une preuve écrite de ce qui a été convenu.
- www.guru.com : ce site au design agréable propose plus de 100 000 freelance à votre disposition. Par contre c’est un site qui offre des prestations plus variées (freelance en droit, en marketing...).
- www.smarterwork.com : c’est le moins connu de la liste, et tout comme www.guru.com, il propose des prestations très variées (saisie de données, ventes…).
Tous ces sites fonctionnent en prenant un pourcentage sur le montant que vous payez au freelance (généralement entre 8 et 15 %).
Cette liste ne serait pas complète si on ne parlait pas de www.freelance.com. C’est un site 100% français... C’est sans doute une des solutions les plus sûres pour faire développer un projet important, tout en bénéficiant de tarifs “raisonnables”. On bénéficie d’une partie des bénéfices de l’offshore (souplesse, tarifs attractifs…), tout en ayant l’avantage de la proximité culturelle et géographique.
Le développement offshore, to go or not to go ?
Comme nous avons pu le voir, prendre la décision de faire du développement offshore ressemble parfois à un pari : on mise sur un cheval totalement inconnu et on espère que non seulement il finira la course, mais aussi qu’il ne va pas vous désarçonner durant le trajet...
Au vu de 3 expériences plus ou moins réussies en offshore présentées, on peut voir que la communication et la préparation sont les éléments essentiels pour la réussite d’un projet offshore.
Mais c’est aussi vrai lorsque l’on fait appel à des développeurs français : si dès le départ le projet n’est pas clairement défini, le résultat final sera aussi raté. Ce problème étant exacerbé lorsque le développeur n’est pas francophone, qu’il ne connaît pas notre législation et nos habitudes, s’il est sous payé et qu’il doit donc travailler le plus rapidement possible pour ne pas perdre de l’argent....
Bien entendu lorsque l’on met en place un site Web en Offshore, il ne faut pas oublier l’évolutivité du site : en effet le développeur en freelance aura tendance à faire ce qu’il veut en termes de structure ou de lisibilité du code. Comme rien de l’assure de continuer sur ce projet son but est de fournir un programme qui fonctionne sans forcément penser à son évolution ou à la maintenance.
Au final, le choix du développement offshore doit être murement réfléchi, et nous conseillons plutôt de commencer par des petits projets afin de détecter des développeurs de qualité, pour ensuite leur proposer des projets de plus grande taille.