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


14

Come libero professionista, mi viene spesso chiesto dai miei clienti cosa devono scegliere tra elementi simili, nessuno dei quali migliore di un altro. Esempi:

"Devo che il mio sito Web di e-commerce sia in PHP o ASP.NET?"

"Devo ospitare questo normale servizio Web in Cloud o utilizzare un normale servizio di hosting?"

"Quale è meglio per il mio nuovo sito Web: MySQL o Oracle?"

eccetera.

Esiste forse al massimo l'1% dei casi in cui la scelta è pertinente e c'è una ragione reale e obiettiva per usarli l'uno sull'altro, sulla base di metriche e studi precisi. In tutti gli altri casi, non importa affatto. È totalmente, completamente irrilevante, o perché non ci sono implicazioni¹, o perché tali implicazioni sono troppo piccole per essere prese in considerazione², o, infine, perché è impossibile prevederle3.

Se conosci una cosa e non un'altra, la risposta a queste domande è semplice:

“Puoi scrivere l'applicazione in C # o Java, entrambi probabilmente equivalenti nel tuo caso. Nota che sono uno sviluppatore C #, quindi se scegli Java, non sarei in grado di lavorare sul tuo progetto e dovresti trovare un altro libero professionista. "

Quando conosci entrambe le tecnologie, non puoi rispondere.

In questo caso, come spiegare al cliente che la domanda che pone è soggetta a fiamma 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 i motivi legati alle risorse umane, senza dare l'impressione di non essere professionale o di non preoccuparti del progetto?


¹ Esempio: MySQL è migliore (peggio?), Dal punto di vista delle prestazioni, rispetto a Oracle, per un sito Web personale a cui accederanno, oh, siamo ottimisti, due persone al giorno?

² Esempio: per un determinato progetto, mi è stato chiesto di valutare se l'hosting di Windows Azure fosse più economico dell'hosting della stessa applicazione su un noto provider di hosting ASP.NET. Il costo si è rivelato esattamente lo stesso.

³ Esempio: il cliente ha un'idea di un'applicazione futura (l'idea stessa è estremamente vaga). Non esiste un piano aziendale, nessun requisito, niente di niente. Solo un'idea Ti viene chiesto se Java è migliore di C # per questa app. Cosa rispondi?

Risposte:


36

come spiegare che hai scelto di utilizzare una tecnologia anziché una tecnologia equivalente per le ragioni legate alle risorse umane, senza dare l'impressione di non essere professionale o di non preoccuparti del progetto?

Bene. Dici solo questo:

In termini di requisiti per questo progetto, la tecnologia X e la tecnologia Y sono ugualmente adatte al compito, quindi non ci sono considerazioni tecniche.

È più facile trovare persone di talento con conoscenza della tecnologia scelta (o dominio problematico), motivo per cui è stata selezionata.

Oppure - ai fini di questo progetto, l'utilizzo della tecnologia Y sarà più conveniente.

Dillo come è.


Potresti voler trovare un'analogia a cui il cliente può fare riferimento. Qualcosa del genere - allo scopo di andare dall'Europa agli Stati Uniti, puoi andare su un Boeing 747 o un Airbus 380. Importa quale? Non per il cliente, purché ci arrivino e le tecnologie siano ugualmente adatte ai requisiti :)

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


13
+1 Coppia di errori di battitura - Boing 747 sembra divertente però. Sto immaginando un pogo stick gigante ...
MarkJ

4
+1 per Boing 747 (Beh, e la parte delle "persone di talento") - Pensavo a quei castelli gonfiabili occasionalmente visti alle feste di compleanno dei bambini
Izkata,

1
Se fossi il cliente potrei rispondere "Non ne ho idea - ma mi piacerebbe pensare che il pilota lo faccia."
psr

7

Penso che la tua premessa, che la decisione sia in gran parte arbitraria, meriti di essere messa in discussione. Sono d'accordo che non vuoi finire nell'analisi della paralisi in cui hai mesi di riunioni del comitato, ma vale la pena prendere in considerazione. Vista da un livello elevato, la scelta della tecnologia è raramente arbitraria. È la chiave della strategia aziendale in quanto influenza fortemente dove un'azienda può andare in futuro ed è il ruolo dello sviluppatore a guidare l'azienda nel processo decisionale.

Le specifiche della tecnologia, come l'uso da parte di MySQL degli alberi B 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 verranno davvero secondo i vostri 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 noto che qualsiasi sviluppatore competente in una determinata tecnologia farà comunque un buon lavoro. Quindi le questioni più importanti per l'azienda non sono la minuzia della lingua, ma domande di livello più alto come:

  • Qual è lo scenario di distribuzione? Alcune tecnologie si prestano ad un approccio più pratico, soprattutto se esistono servizi di cloud hosting come Heroku . Ad alcune aziende piacerà, altre dovranno ospitare se stesse, avere una presenza più forte di amministratori di sistema, ecc.

  • Qual è la durata e l'ambito del progetto? PHP, ad esempio, è probabilmente più facile di Java per avviare un progetto, ma è più difficile ridimensionarlo e mantenerlo per molti anni.

  • Quali tipi di sviluppatori attireranno la tecnologia? Per Java, molto probabilmente otterrai quelli con esperienza aziendale. Per PHP, potresti ottenere più designer di crossover o tipi di amministratori di sistema. Per Node.js , otterrai più sviluppatori front-end e sperimentali, per Haskell, una folla accademica, ecc. Tutti gli stereotipi che conosco, ma fornisce al business alcuni indizi. Ognuno di questi gruppi ha le proprie culture, aspettative in materia di pagamenti e ambiente di lavoro e modi di lavorare tra loro e con il resto dell'organizzazione.

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

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


4

Darei al cliente una matrice di confronto oggettivo sulla fattibilità dell'uso di tale tecnologia. Per esempio:

"Quale è meglio per il mio nuovo sito Web: MySQL o Oracle?"

Nella tua matrice:

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

Eccetera.

A seconda di quanti elementi nella tua matrice, uno dovrebbe trovare rapidamente il punteggio e determinare la fattibilità dell'uso di quella tecnologia rispetto all'altra. In alcuni casi MySQL potrebbe essere migliore, in altri Oracle.


4

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


1
Sì, niente di sbagliato nel fatto che questa sia la risposta. Se conosci C # meglio di Java, è ovvio che saresti più produttivo andando con C #.
Andy,

2

"Preferiresti guidare una Ford o una Chevy?" sarebbe l'analogia di guida che vorrei lanciare per vedere se riescono a raccogliere l'idea che la domanda non va da nessuna parte. Una domanda simile potrebbe essere: "Qual è 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é è così importante sapere e, a seconda di quale materiale aggiuntivo può essere trovato chiarendo la domanda, ciò può portare a una risposta migliore. Alcune persone potrebbero semplicemente chiedersi: "Che cosa è stato usato per costruire il mio sito di e-commerce?" anche se preferirebbero essere impressionanti e lanciare un paio di parole d'ordine.


8
Gli esempi Ford / Chevy e Hamburger / Pizza sembrano non rispondere / irriverenti. Sarei irritato da tali risposte.
Robert Harvey,

4
E la risposta è sempre Pizza;)
Izkata

2
@Izkata: ... mangiato in una Ford.
FrustratedWithFormsDesigner

2
Fai attenzione, Ford vs. Chevy può essere un dibattito religioso in alcune parti. Un uomo potrebbe farsi male.
Wyatt Barnett,

2

Molte buone risposte già, ma una cosa che ho notato non è stata menzionata: questa è un'eccellente opportunità per la piena divulgazione da parte tua. Per esempio,

"Ora mi guadagno da vivere principalmente con la tecnologia <foo>, quindi non sono completamente imparziale. Comunque ..."

Penso davvero che otterrai credibilità da questo tipo di affermazione.


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 soprattutto si tratta di cavalli per i corsi.

Esiste una metodologia che utilizzo per decidere quale tecnologia è adatta a un cliente: -

  1. Cosa usano attualmente? Più dello stesso di solito è meglio di qualcosa di nuovo.
  2. La tecnologia attuale ha dei vincoli che saranno superati dal nuovo progetto? Ad esempio, usano SQLite , ma ora si aspettano che 100 utenti effettuino aggiornamenti simultanei.
  3. Se la tecnologia attuale non è adatta, scegli tra il più popolare open-source e il leader del mercato commerciale.
  4. Il leader del mercato è significativamente migliore dell'offerta open source e ci sono differenze significative rispetto al progetto attuale?
  5. Avendo optato per l'open source o la pubblicità, prendi un bel come nelle due offerte concorrenti più vicine e vedi se sono più adatte.

Il più delle volte la scelta si ferma al secondo passaggio. Se il client utilizza Acme Widget , ha persone con esperienza nell'uso di Acme Widget, ha una serie di standard, modifica delle procedure di controllo e gestione basate su Acme Widget e Acme Widgets possono fare il lavoro, allora Acme Widgets è la strada da percorrere, anche se Ezee DohDahs è tecnicamente migliore per questo compito!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.