Argomenti a supporto della transizione organizzativa allo sviluppo di Scala

7

Lavoro in un'organizzazione che fa un ampio sviluppo Java. Il nostro gruppo è piccolo con un progetto di breve durata, una carta di sviluppo agile. Sfrutteremo le risorse QA esistenti di altri gruppi e potremo potenzialmente fornire codice a clienti e partner.

Gli argomenti principali contro lo sviluppo di Scala sono stati:

  • QA avrà bisogno dell'esperienza di Scala
  • I clienti avranno bisogno dell'esperienza di Scala

La mia esperienza è che Scala è generalmente più facile da leggere rispetto a Java con un'esposizione minima al linguaggio e che la possibilità di utilizzare strumenti Java esistenti come Junit minimizzerebbe l'impatto negativo sulle strategie di test esistenti.

Ho stimato che lo sviluppo in Scala potrebbe essere il 25% + più veloce dello sviluppo Java equivalente a seconda del problema. Questo è solo un dito al vento in base alla mia esperienza personale. Se qualcuno ha prove di aumento dell'efficienza, per favore condividi.

Vorrei anche compilare un elenco dei principali vantaggi dell'uso di Scala su Java. Si prega di condividere i tuoi preferiti.

Grazie, John

    
posta jxstanford 01.04.2011 - 19:06
fonte

3 risposte

6

Mostra non dirlo: crea qualcosa in Scala. Suggerisco di testare le tue applicazioni Java. Ecco un post che ho fatto sull'impostazione di Scala Specs come framework di test per i progetti Java Maven: link

Le persone di solito si sentono a proprio agio con te mentre scrivi i test come preferisci.

L'unica argomentazione che potrà mai trattenere l'acqua per la gestione nella mia esperienza è che puoi ottenere più lavoro in meno tempo e che sarà un lavoro di qualità superiore che costa meno nella manutenzione continua. Suggerisco di lasciare discussioni sull'eleganza della lingua, la sua espressività ecc. Alle discussioni con gli sviluppatori, non alla gestione.

Sottolinea che puoi utilizzare le tue librerie Java esistenti (pensa "sfrutta l'investimento esistente"). Inoltre, se usi Spring o simili, pensa alle implementazioni di Scala delle interfacce Java come un modo per consentire a quegli sviluppatori che vogliono provare Scala di farlo senza interrompere altri.

Soprattutto, costruisci qualcosa e dimostra che puoi. Ho iniziato a costruire servizi web in poche ore, quando l'equivalente avrebbe richiesto molto più tempo in Java - penso ai giorni. Un esempio di come ho fatto questo è qui: link

Non penso che le statistiche esterne saranno molto convincenti, dal momento che la capacità di uno sviluppatore di lavorare più efficacemente in Scala piuttosto che in Java dipende molto dallo sviluppatore. Ma se puoi provarlo, sicuramente guadagnerai terreno. Buona fortuna!

    
risposta data 01.04.2011 - 19:30
fonte
4

È più facile realizzare un progetto piuttosto che ottenere il permesso di realizzare un progetto.

Inoltre, tutte le prove provenienti dall'esterno dell'organizzazione sono banalmente deprecate da persone che non vogliono cambiare. Dicono semplicemente "che non funzionerà qui". (O peggio, "non funzionerà nel mondo reale").

Non puoi accumulare abbastanza prove esterne e indirette.

Tuttavia, se in realtà fai un vero progetto in Scala, la conversazione è molto diversa. Hai un track record di successo ad un costo inferiore. Nessuno può discutere con quello.

"Purtroppo siamo già scesi per il percorso di autorizzazione get e ora siamo in una posizione negoziale tutt'altro che ideale"

Non proprio.

Se pensi di essere in qualche modo costretto a continuare a chiedere il permesso, sei essenzialmente condannato.

Il punto è questo: "È più facile chiedere perdono che chiedere l'autorizzazione".

L'avvio di un progetto può essere fatto in qualsiasi momento, a prescindere dal tipo di politica precedente (o non) in atto.

Devi solo iniziare il progetto. Anche se hai già chiesto e rifiutato una volta (o una dozzina) volte.

Quando hai successo, chiedi perdono per essere troppo di successo.

    
risposta data 01.04.2011 - 19:09
fonte
2

La maggior parte dei tipi di gestione non si preoccuperà dei vantaggi di Scala. Saranno avversi al rischio e preoccupati per la disponibilità di nuovi programmatori, il costo della formazione dei programmatori esistenti, le prospettive di supporto a lungo termine per la lingua, ecc.

Peggio ancora, queste sono le stesse persone che hanno supervisionato gli sviluppatori Java e crederanno di averlo fatto molto bene. Suggerire un cambiamento potrebbe essere interpretato come un gioco di prestigio sulla loro abilità.

Il trucco, quindi, è (prima di tutto) stabilire che Scala sia pienamente interoperabile con Java, stai facendo tesoro del successo passato e degli investimenti esistenti qui. Quindi prosegui per scoprire come Scala migliora su questo attenuando i rischi attuali: costi di manutenzione del codice, difetti nel software di produzione, costi di time-to-market / opportunità, ecc.

Se il tuo manager è molto orientato alle persone (e molti lo sono), allora non fa mai male sottolineare che Scala è considerato un linguaggio sexy con cui lavorare. È improbabile che un bel codice impressiona il tuo manager, ma lavorare con qualcosa che aiuti ad attrarre e trattenere sviluppatori di talento è certo che attirerà ulteriore interesse.

Scala non è solo un'alternativa a Java, è una progressione naturale: il posto in cui vai quando hai raggiunto la cima del tuo gioco e vuoi andare oltre. Essere in grado di fare quella migrazione mostra esattamente quanto sei bravo, quindi non vergognarti di massaggiare qualche ego se necessario.

Infine, come già suggerito, sii proattivo! Fai qualcosa per mezzo di un progetto dimostrativo e ottieni altri sviluppatori interessati. Un movimento di base da diverse persone sarà molto più persuasivo ...

    
risposta data 02.04.2011 - 01:25
fonte

Leggi altre domande sui tag