Cosa rispondere a un cliente che chiede quale delle due tecnologie equivalenti deve essere utilizzata?

14

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?

    
posta Arseni Mourzenko 04.04.2012 - 22:27
fonte

7 risposte

36

how to explain that you've chosen to use one technology rather than an equivalent one for the reasons related to human resources, without giving the impression to be unprofessional or to not care about the project?

Bene. Dici solo questo:

In termini di requisiti per questo progetto, la tecnologia X e la tecnologia Y sono ugualmente adatte all'attività, quindi non ci sono considerazioni tecniche.

È più facile trovare persone di talento con la conoscenza della tecnologia scelta (o del dominio del problema), motivo per cui è stato selezionato.

Oppure - per lo scopo di questo progetto, usare la tecnologia Y sarà più economico.

Dillo come è.

Potresti voler trovare un'analogia con cui il cliente può identificarsi. Qualcosa di simile: per andare dall'Europa agli Stati Uniti, puoi andare su un Boeing 747 o su un Airbus 380. Importa quale? Non al cliente, a condizione che arrivino e le tecnologie siano ugualmente adatte ai requisiti:)

Quale è stato selezionato? Qualunque sia la compagnia aerea che opera ...

    
risposta data 04.04.2012 - 22:35
fonte
7

Penso che la tua premessa, che la decisione sia in gran parte arbitraria, valga la pena di essere messa in discussione. Sono d'accordo sul fatto che non si vuole finire nella paralisi dell'analisi in cui si hanno mesi di riunioni del comitato, ma vale la pena prendere in considerazione. Visto da un alto livello, la scelta della tecnologia è raramente arbitraria. È fondamentale per la strategia aziendale poiché influenza strongmente dove un'azienda può andare in futuro, ed è compito dello sviluppatore guidare l'azienda attraverso il processo decisionale.

I dettagli della tecnologia, come l'uso di B-tree da parte di MySQL rispetto a quelli di Oracle, o la sintassi di PHP rispetto a quella di ASP.NET , sono ovviamente aperti a molti dibattiti religiosi tra i programmatori e arriveranno davvero ai tuoi gusti. Dal momento che un consulente simile a te stesso potrebbe facilmente avere un'opinione radicalmente diversa, quelle cose sono davvero piuttosto arbitrarie. Ed è abbastanza consolidato che ogni sviluppatore che è competente in una data tecnologia farà comunque un buon lavoro. Quindi le questioni più importanti per il business non sono le minuzie linguistiche, ma le domande di livello più alto come:

  • Qual è lo scenario di distribuzione? Alcune tecnologie si prestano a un approccio più pratico, soprattutto se ci sono servizi di hosting cloud come Heroku sul posto. Ad alcune aziende piacerà, altre avranno bisogno di ospitare se stesse, avere una presenza più strong di amministratori di sistema, ecc.

  • Qual è la durata e l'ambito del progetto? PHP, ad esempio, è discutibilmente più semplice di Java per avviare un progetto, ma è più difficile da ridimensionare e mantenere per molti anni.

  • Quali tipi di sviluppatori attrarranno la tecnologia? Per Java, avrai più probabilità di ottenere quelli con esperienza aziendale. Per PHP, è possibile ottenere più designer di crossover o tipi di amministratori di sistema. Per Node.js , avrai più sviluppatori front-end e sperimentali, per Haskell, un pubblico accademico, ecc. Tutti gli stereotipi che conosco, ma danno al business alcuni indizi. Ciascuno di questi gruppi ha le proprie culture, le proprie aspettative riguardo al pagamento e all'ambiente di lavoro, e modi di lavorare tra loro e il resto dell'organizzazione.

  • Qual è la disponibilità degli sviluppatori? Supponendo che gli sviluppatori debbano essere fisicamente presenti, alcuni ambienti hanno ecosistemi particolari. In una città piena di startup, ci saranno molti Ruby on Rails e sviluppatori PHP, in una città piena di governo dipartimenti, ci sarà un sacco di Java / MS, ecc. La stragrande maggioranza dei linguaggi di programmazione nel mondo deve essere esclusa semplicemente su questa base.

Questi sono solo alcuni esempi. Quali fattori sono più importanti dipenderà dalla situazione, ma il punto principale qui è che le aziende devono adottare consapevolmente le tecnologie che si adattano alla loro strategia, cultura e circostanze.

    
risposta data 04.04.2012 - 23:11
fonte
4

Vorrei fornire al cliente una matrice di confronto obiettiva sulla fattibilità dell'utilizzo di tale tecnologia. Ad esempio:

“Which one is better for my new website: MySQL or Oracle?”

Nella tua matrice:

  • Costo
  • In uso domestico
  • Scalabilità
  • Esperienza / Familiarità
  • Supportability
  • Tooling
  • Già in uso (distribuito)
  • Facilità di sviluppo
  • Familiarità di sviluppo

Etc.

A seconda del numero di elementi nella matrice, si dovrebbe ottenere rapidamente un punteggio e si determina la fattibilità dell'utilizzo di tale tecnologia rispetto all'altra. In alcuni casi MySQL forse è meglio, in altri Oracle.

    
risposta data 04.04.2012 - 23:07
fonte
4

Spiegalo in termini comprensibili: soldi. Puoi dire loro che hai scelto X su Y perché, anche se entrambi sarebbero stati adatti per il progetto, hai più familiarità con X che Y. E quindi sarai in grado di consegnare l'applicazione a un costo inferiore a loro quando usando X che se fosse stato scritto usando Y.

    
risposta data 04.04.2012 - 23:32
fonte
2

"Preferiresti guidare una Ford o una Chevy?" sarebbe l'analogia di guida che avrei buttato fuori per vedere se riescono a capire che la domanda non sta andando da nessuna parte. Una domanda simile potrebbe essere: "Quale è meglio un hamburger o una pizza?" dove senza aggiungere ulteriori vincoli la domanda ha una varietà di possibili risposte che si potrebbero dare.

L'altro modo di vedere questo è chiedere perché è importante sapere e in base a quale ulteriore materiale può essere trovato chiarendo la domanda che può portare a una risposta migliore. Alcune persone potrebbero semplicemente chiedersi: "Cosa è stato utilizzato per costruire il mio sito di e-commerce?" anche se preferirebbero provare ad essere impressionanti e inserire un paio di parole d'ordine.

    
risposta data 04.04.2012 - 22:42
fonte
2

Un sacco di buone risposte già, ma una cosa che ho notato non è stata menzionata: questa è un'eccellente opportunità per una completa divulgazione da parte tua. Ad esempio,

"Ora mi guadagno da vivere principalmente con la tecnologia < foo & gt ;, quindi non sono completamente imparziale. Tuttavia ..."

Credo davvero che tu guadagni credibilità con questo tipo di affermazione.

    
risposta data 06.04.2012 - 13:37
fonte
1

Ci sono rari casi in cui una tecnologia è chiaramente inferiore a un'altra - "Devo sviluppare il mio sito web in Python o Cobol?", ma principalmente si tratta di cavalli per i corsi.

Esiste una metodologia che uso per decidere quale tecnologia si adatta a un cliente: -

  1. Che cosa usano attualmente? Più dello stesso è solitamente meglio di qualcosa di nuovo.
  2. La tecnologia attuale ha vincoli che saranno superati dal nuovo progetto? Ad esempio, usano SQLite , ma ora si aspettano che 100 utenti facciano aggiornamenti simultanei.
  3. Se la tecnologia attuale non è adatta, scegli tra i più popolari leader di mercato open-source e commerciale.
  4. Il leader del mercato è significativamente migliore rispetto all'offerta open source e ci sono differenze significative rispetto al progetto corrente?
  5. Avendo optato per l'open source o lo spot, prendi le 2 migliori offerte in competizione e vedi se sono più adatte.

La maggior parte delle volte la scelta si ferma al secondo passaggio. Se il cliente utilizza Acme Widgets , ha esperienza nell'uso dei widget Acme, ha una serie di standard, cambia le procedure di controllo e gestione sviluppate attorno a Acme Widget e Acme Widgets possono fare il lavoro quindi Acme Widgets è la strada da percorrere - anche se Ezee DohDahs è tecnicamente migliore per questo compito!

    
risposta data 05.04.2012 - 04:04
fonte

Leggi altre domande sui tag