En tant que pigiste, mes clients me demandent souvent ce qu'ils doivent choisir entre des éléments similaires, ni l'un ni l'autre étant meilleur qu'un autre. Exemples:
"Ai-je besoin que mon site e-commerce soit en PHP ou ASP.NET?"
"Dois-je héberger ce service Web ordinaire dans le cloud ou utiliser un service d'hébergement ordinaire?"
"Lequel est le meilleur pour mon nouveau site Web: MySQL ou Oracle?"
etc.
Il y a peut-être au plus 1% des cas où le choix est pertinent, et il existe une raison réelle et objective de les utiliser les uns par rapport aux autres, sur la base de mesures et d'études précises. Dans tous les autres cas, cela n'a pas d'importance du tout. C'est totalement, totalement hors de propos, soit parce qu'il n'y a pas d'implications¹, soit parce que ces implications sont trop petites pour être prises en compte², soit enfin parce qu'il est impossible de prévoir ces implications³.
Si vous connaissez une chose et pas une autre, la réponse à ces questions est simple:
«Vous pouvez soit écrire l'application en C # ou Java, les deux étant probablement équivalents dans votre cas. Notez que je suis un développeur C #, donc si vous choisissez Java, je ne serais pas en mesure de travailler sur votre projet et vous auriez besoin de trouver un autre pigiste. "
Lorsque vous connaissez les deux technologies, vous ne pouvez pas répondre à cela.
Dans ce cas, comment expliquer au client que la question qu'il pose est sujette à la guerre des flammes et n'a pas de conséquences réelles sur son projet?
En d'autres termes, comment expliquer que vous ayez choisi d'utiliser une technologie plutôt qu'une équivalente pour des raisons liées aux ressources humaines, sans donner l'impression d'être non professionnelle ou de ne pas se soucier du projet?
¹ Exemple: MySQL est-il meilleur (pire?), En termes de performances, par rapport à Oracle, pour un site Web personnel qui sera accessible par, oh, soyons optimistes, deux personnes par jour?
² Exemple: pour un projet donné, on m'a demandé de déterminer si l'hébergement Windows Azure serait moins cher que l'hébergement de la même application sur un fournisseur d'hébergement ASP.NET bien connu. Le coût s'est révélé exactement le même.
³ Exemple: votre client a une idée d'une future application (l'idée elle-même étant extrêmement vague). Il n'y a pas de plan d'affaires, pas d'exigences, rien du tout. Juste une idée. On vous demande si Java est meilleur que C # pour cette application. Que répondez-vous?