Come convinci i colleghi / le parti interessate a provare nuove tecnologie? [chiuso]

5

Ho un collega / manager / stakeholder che è molto conservatore quando si tratta di adottare nuove tecnologie. Capisco perfettamente il perché: abbiamo un sacco di esperienza interna con Java, MySQL / Postgres e così via, sono ben consolidati e c'è un buon supporto per loro.

Ma la tecnologia si evolve e talvolta le nuove tecnologie sono più adatte ai compiti di oggi. Ad esempio, ha senso eseguire un'elaborazione numerica pesante in qualcosa come Python + Numpy. Alcuni tipi di siti Web semplici sono più veloci e facili da implementare in Ruby / Rails. L'elaborazione di centinaia di gigabyte di log al giorno è particolarmente adatta all'architettura Hadoop M-R.

Ma spesso incontro molte resistenze nel portare nuove tecnologie nel mix, anche quando penso ci sia un strong motivo per farlo. La resistenza scende anche a dettagli minori, come l'utilizzo di un pesante front-end JavaScript e di servizi Web piuttosto che un pesante JSP lato server per un progetto recente. L'obiezione più comune è che, poiché non abbiamo una significativa esperienza nella tecnologia, non sarà mantenibile se non sono disponibile a farlo da solo.

Come lavori con persone come questa per superare questo tipo di obiezioni?

    
posta Jonathan 14.04.2011 - 13:27
fonte

10 risposte

10

La prova è, come si dice, nel budino. A volte devi solo eseguire un'implementazione di esempio e basare il tuo caso su questo. Devi dimostrare che:

  • Il problema si risolve meglio con qualcosa di nuovo
  • La soluzione è più facile da mantenere
  • La curva di apprendimento è minima
  • Il denaro verrà salvato durante il salvataggio del tempo
  • La nuova tecnologia ha una piccola, ma stabile e utile community
  • Esistono nuove possibilità che non prima di

Se impieghi un po 'di tempo a mostrare dati complessi, vedrai almeno l'adozione di qualcosa di nuovo o tagliente declinato in base al merito tecnico più del preconcetto, e potresti semplicemente ottenere un compromesso di esso. Forse non utilizzerai Hadoop per questo progetto, ma metterlo di fronte alle persone in un modo che possano giocare e toccare potrebbe renderlo un candidato per un progetto futuro.

Come hai detto, queste cose richiedono tempo e i criteri di maturità e disponibilità di supporto sono considerazioni estremamente importanti. Tuttavia, più preconcetti si possono ignorare con dati rigidi, migliori saranno le possibilità che si avranno.

Aggiorna

Per inciso, questo approccio è il modo in cui recentemente ho iniziato a usare Redis invece della combinazione di Memcache e tabelle temporanee. Ho scritto un semplice sistema di messaggistica e l'ho dimostrato nel giro di pochi minuti, che ha sostituito qualcosa di molto più grande, più lento e costoso in termini di utilizzo e manutenzione delle risorse.

Questo mostrava i benefici più alti che volevo esprimere, e anche i nostri altri sviluppatori erano abbastanza curiosi da volerlo provare. Nota, Redis non è in realtà nuovo o il bordo sanguinante, ma è nuovo per molte persone.

    
risposta data 14.04.2011 - 13:43
fonte
4

Guarda prima le cose dal loro punto di vista.

  1. Renditi conto che esiste effettivamente un rischio per l'utilizzo di una varietà di tecnologie.
  2. Realizza che ci sono costi aggiuntivi (possibilmente formazione, software, il costo di avere dipendenti che possono essere più cappelli, non poter riutilizzare il codice con la stessa facilità)

Quindi assicurati di poter dimostrare obiettivamente che i rischi e i costi legati all'utilizzo di una tecnologia specifica sono superati dai vantaggi e dai risparmi che la tecnologia porterà nel tuo prodotto. Uno dei modi migliori è con piccoli cambiamenti / programmi pilota. Se c'è una nuova funzione, fai il caso di un pilota di Ruby o di un pilota Javascript. Confronta i risultati con lo stesso pezzo scritto nei tuoi mezzi tradizionali. Idealmente, i risultati parlerebbero da soli in un modo o nell'altro.

    
risposta data 14.04.2011 - 13:40
fonte
4

E qual è l'emivita di queste nuove tecnologie?

Una parte dell'esperienza degli sviluppatori senior sta vedendo che le tecnologie vanno e vengono, e solo poche vivono a lungo.

Basta considerare la frase "È estremamente facile creare un'applicazione con una semplice interfaccia grafica nel nuovo Visual Basic 6" per circa 10-15 anni fa.

Il software tende a vivere più a lungo di quanto pensi.

    
risposta data 14.04.2011 - 13:56
fonte
3

La triste verità è che spesso non riesci a convincerli. Se sono morti nei loro vecchi modi, sarà difficile provare qualcosa di nuovo, anche se i benefici supererebbero la curva di apprendimento. Non so se è solo essere pigro o aver paura di provare qualcosa di nuovo, ma posso contare il numero di volte in cui ho lavorato in luoghi che avrebbero abbracciato nuove tecnologie da un lato, mentre ci sarebbero volute molte più mani per contare il luoghi che non hanno mai fatto nulla di nuovo anche quando le cose che stavano usando (o il modo specifico di fare le cose) erano obsolete e rimpiazzate con modi migliori e più efficaci.

Le persone parlano sempre di dimostrare "valore aziendale", ma ciò che trascurano di menzionare è che spesso il business è troppo miope per vedere qualsiasi valore, e gli sviluppatori sono troppo radicati nelle loro abitudini attuali per preoccuparsi di imparare un nuovo modo quando il vecchio modo è familiare e constrongvole per loro.

Non è sempre il caso, ma il più delle volte non provi a farlo è una battaglia persa e perseguire solo ti farà venir voglia di lasciare il lavoro. Sono stato lì molte volte nella mia carriera (e probabilmente continuerò a viverlo).

    
risposta data 14.04.2011 - 14:30
fonte
3

Per prima cosa devi migliorare le tue capacità nel cercare di fare qualcosa. Impara come fare benefici economici e analisi delle decisioni. Fai un corso di dibattito. Ottieni capacità di parlare in pubblico. Leggi come vincere amici e influenzare le persone. Segui un corso di scrittura tecnica. Le persone non cambiano a meno che non si convincano che il cambiamento migliorerà le cose. Devi iniziare a guardare le cose dal loro punto di vista, non dal tuo. (Ecco perché il suggerimento per un corso di dibattito in cui non si conosce fino al dibattito quale delle due parti si discute e si deve preparare gli argomenti per entrambi. La classe più utile che abbia mai preso.)

In seguito, sappi che gli sviluppatori di expzeence capiscono che l'utilizzo di una nuova tecnologia brillante è rischioso e può causare il fallimento dell'intero progetto. Se hanno avuto uno o più di questi fallimenti, saranno molto più resistenti ai cambiamenti. Sanno anche che le tecnologie vanno e vengono così veloci a volte che preferiscono aspettare e vedere se qualcosa durerà per un po 'piuttosto che passare al nuovo giocattolo del mese. Sono anche consapevoli di quanto lavoro sia necessario per prendere un prodotto funzionante e trasformarlo in qualcosa di nuovo. Si introducono nuovi bug (che, lascia che te lo dica, i clienti odiano) e spesso devi farlo in tempo non fatturabile poiché il cliente non vuole che tu rifaccia una soluzione funzionante. Ti dico queste cose non tanto per scoraggiarti, ma per renderti consapevole dei punti di cui hai bisogno per avere un controargomento per ottenere un suggerimento accettato.

    
risposta data 14.04.2011 - 16:13
fonte
2

La soluzione migliore potrebbe essere l'uso di nuove tecnologie per affrontare problemi specifici. Non proporre un nuovo progetto usando qualcosa di nuovo, fissa un punto dolente usando qualcosa di nuovo. Se hai un problema relativo al tempo di risposta perché stai usando puro JSP anziché AJAX, quindi aggiungi la chiamata AJAX per risolverlo. Falla adottare come un piccolo caso, lascia che tutti lo colpiscano e vedano come funziona, quindi alla fine diventerà una tecnica standard!

    
risposta data 14.04.2011 - 17:43
fonte
1

Riconoscere che, dal punto di vista della direzione, hanno una soluzione che funziona per $ X. Nessuna tecnologia che vuoi introdurre può far risparmiare più di $ X, e la possibile perdita se non funziona è quasi sicuramente superiore a $ X. Il passaggio alla nuova tecnologia comporta un costo in termini di denaro, e le cose si rallenteranno per un po 'di tempo. (La nuova tecnologia raramente è immediatamente produttiva). Ciò significa che la direzione sarà strongmente incline a essere prudente e dovrà fornire motivi validi e convincenti per cambiare. Ci sono diversi argomenti che puoi usare, basandoti su quanto sopra, non tutti saranno convincenti da soli (o necessariamente applicabili). Dovrai basare tutti i tuoi argomenti su prove solide.

La probabilità che la nuova tecnologia fallisca è sufficientemente bassa per essere ignorata, oppure è possibile fornire un piano di fallback che non perda troppi soldi, o che la nuova tecnologia possa essere introdotta lentamente e gradualmente in aree non critiche in un primo momento . Questo significa che stai fornendo un limite al caso peggiore. I manager odiano scrivere assegni in bianco.

La tecnologia consentirà di risparmiare $ Y nel tempo, consentendo riduzioni di personale o attrezzature o consentendo di fare di più e ciò vale il costo. (Se $ Y è distribuito su diversi anni, scopri come l'azienda calcola il valore attuale del denaro futuro e usalo.)

Il costo di ciò che viene fatto ora aumenterà in modo significativo senza questa tecnologia (come l'introduzione di VB.NET per sostituire VB6, o se i requisiti legali o normativi stanno cambiando e sarà difficile adattare il sistema esistente).

La nuova tecnologia ci permetterà di fare qualcos'altro, che porterà in $ Z. (Questo è per natura speculativo, anche se potrebbe essere più facile da fare se la società utilizza già il software per un vantaggio strategico.)

Sii il più specifico possibile e sii onesto. Se accidentalmente lascia fuori qualcosa di sfavorevole al tuo caso, e qualcuno lo individua, questo è un problema. Se sei colto deliberatamente per falsificare o nascondere le cose, probabilmente dovresti semplicemente arrenderti, perché nessuno si fiderà di te o ti prenderà sul serio. Favorire argomenti comprensibili alla gestione non tecnica.

    
risposta data 14.04.2011 - 18:38
fonte
0

Nella mia esperienza, quando voglio introdurre una nuova tecnologia, creo uno studio commerciale per mostrare i benefici della nuova tecnologia rispetto alla vecchia tecnologia in un semplice sommario.

Quindi di solito ho una prova di concetto funzionante e cerco di trovare una funzionalità che sia piccola e non ci siano rischi di pianificazione per provare a introdurre usando la nuova tecnologia.

Una volta che la nuova tecnologia si è dimostrata in tale scenario, diventa molto più facile incorporarla in aspetti più ampi del progetto.

Tutto ciò che è stato detto che hai davvero bisogno di pesare i costi di formazione dei membri del team sulla nuova tecnologia. La maggior parte dei team di software ha gradi diversi di capacità nei membri del proprio team e alcuni di questi membri che introducono tecnologie nuove e sconosciute possono rappresentare una sfida.

C'è anche qualcosa da dire per concentrarsi su una singola lingua per un progetto / squadra. Puoi concentrarti sulla specializzazione sugli strumenti per quella lingua e conoscere tutte le idiosincrasie che potrebbero avere una particolare lingua (vale a dire problemi di multi-threading, gestione della memoria, ecc.)

    
risposta data 12.12.2017 - 15:12
fonte
-2

Tendo a selezionare progetti piccoli e uso solo qualcosa di nuovo. I fatti sul terreno sono difficili da discutere.

    
risposta data 14.04.2011 - 19:11
fonte
-2

Devi essere estremamente fortunato ad avere un'azienda per adottare nuove cose o idee. È una lotta che ho cercato di fare in diverse aziende su diversi progetti. Soprattutto quando si tratta di UX la maturità dell'azienda conta e se non sono ad un livello di maturità scadente non vedranno la sperimentazione e l'innovazione allettanti, invece la vedono come un cambiamento che non vogliono fare. Dopotutto tutto funziona e si stanno facendo soldi, quindi perché aggiustare qualcosa che non è rotto?

    
risposta data 12.12.2017 - 10:26
fonte

Leggi altre domande sui tag