Come libero professionista, spesso i miei clienti mi chiedono che cosa devono scegliere tra elementi simili, nessuno dei quali è migliore di un altro. Esempi:
“Do I need my e-commerce website be in PHP or ASP.NET?”
“Do I need to host this ordinary web service in Cloud or use an ordinary hosting service?”
“Which one is better for my new website: MySQL or Oracle?”
ecc.
C'è forse al massimo l'1% dei casi in cui la scelta è pertinente, e c'è una ragione reale, oggettiva, per usare l'una sull'altra, sulla base di metriche e studi precisi. In tutti gli altri casi, non ha alcuna importanza. È totalmente, completamente irrilevante, sia perché non ci sono implicazioni¹, sia perché tali implicazioni sono troppo piccole per essere prese in considerazione2, o, infine, perché è impossibile prevedere tali implicazioni³.
Se conosci una cosa e non un'altra, la risposta a queste domande è semplice:
“You can either write the application in C# or Java, both being probably equivalent in your case. Note that I'm a C# developer, so if you choose Java, I would not be able to work on your project and you would need to find another freelancer.”
Quando conosci entrambe le tecnologie, non puoi rispondere.
In questo caso, come spiegare al cliente che la domanda che pone è soggetta a flamewar e non ha conseguenze reali sul suo progetto?
In altre parole, come spiegare che hai scelto di utilizzare una tecnologia piuttosto che una equivalente per le ragioni legate alle risorse umane, senza dare l'impressione di essere poco professionale o di non preoccuparsi del progetto?
¹ Esempio: MySQL è migliore (peggio?), per quanto riguarda le prestazioni, rispetto a Oracle, per un sito web personale a cui si accederà, oh, siamo ottimisti, due persone al giorno?
² Esempio: per un determinato progetto, mi è stato chiesto di impostare se l'hosting di Windows Azure sarebbe più conveniente rispetto all'hosting della stessa applicazione su un provider di hosting ASP.NET noto. Il costo rivelato per essere esattamente lo stesso.
³ Esempio: il tuo cliente ha un'idea di una futura applicazione (l'idea stessa è estremamente vaga). Non esiste un business plan, nessun requisito, niente di niente. Solo un'idea Viene chiesto se Java è migliore di C # per questa app. A cosa rispondi?