2010-04-28 7 views
6

Come affrontare il fatto che non si conosce la lingua/il framework in un processo di sviluppo?Prendere in considerazione l'apprendimento in un processo di sviluppo

Ad esempio, supponiamo che un gruppo di sviluppatori Java stia per avviare un progetto .NET, che non conoscano bene la piattaforma e che potrebbero finire per trovare soluzioni che il framework già risolve o risolve meglio.

Il tipo di domande che ho sono: quali sono le migliori pratiche in questo caso? RTFM è prima di andare su una buona pratica? Quando si dovrebbe interrompere RTFM e iniziare a chiedere/cercare/giocare? RTFM non è solo ricerca/domanda/esecuzione di una buona pratica? Che dire delle stime?

Mi piacerebbe sentire dalla tua esperienza :-)

+0

cos'è RTFM? – Glycerine

+0

@Glicerina: leggere il Manuale F ***** g. –

+0

risposta

2

Penso che sia importante avere un buon modello mentale e capire le astrazioni che userete ... Tuttavia, a volte non è così facile, forse a causa del tempo, dell'esperienza o anche del tempo insufficiente documentazione. È possibile ottenere alcuni pensieri qui: http://www.se-radio.net/podcast/2009-06/episode-138-learning-part-development-allan-kelly C'è anche una metodologia agile che prende l'apprendimento come parte strategica: Adaptive Software Development (ASD) http://en.wikipedia.org/wiki/Adaptive_Software_Development Infine, voglio citare test esplorativi in ​​Test Driven Development, che può aiutare con l'apprendimento nuovi quadri http://en.wikipedia.org/wiki/Exploratory_testing.

+0

Grazie per i riferimenti! Sono d'accordo con l'importanza dei modelli mentali e la comprensione delle astrazioni, ma questi possono essere diversi e impararli (e combinarli) richiede tempo. Un semplice esempio sono le dipendenze e le associazioni su WPF, che sto combattendo in questo momento in un progetto. – Thiago

0

Che dire di una sorta di codice di revisione o correlati fase in cui una persona esperta potrebbe sfogliare e offrire suggerimenti.

RTFM sembra che sarebbe solo perdere tempo, soprattutto se si sta facendo uno sviluppo agile.

EDIT: Dal momento che hai detto che "nessuno" nella squadra conosce la lingua ... Non lo so, ma RTFM sembra ancora una perdita di tempo per cercare di "imparare l'intera lingua" prima di iniziare .

+0

Ovviamente, dice che nessuno nel team ha esperienza con il toolset/la tecnologia. –

+0

Ah, mio ​​male. Ho aggiornato il mio post per riflettere. –

4

Impara la piattaforma prima di scrivere il codice di produzione!

Spesso le persone semplicemente saltare dentro e iniziare a scrivere la loro applicazione, e diventa un disastro, gli sviluppatori imparano un sacco poi rimpiangere la roba "niubbo" che hanno fatto, ma sono bloccati in.

Quindi la mia teoria è prendere una pochi picchi e via throughan implementano una funzionalità molto sottile che attraversa tutti gli strati di un framework.

ie, diciamo se fosse un web mvc/web services ..... qualcosa che ha javascript -> ajax -> html -> servizio web -> Controller -> Modello -> Database.

Chiedi alle persone di esaminarlo. Non sprecare tempo a costruire un livello framework quando non si conosce molto della tecnologia con cui si ha a che fare. Passa un po 'di tempo ad esplorare il tipo di flessibilità che la tua tecnologia ha (cioè, prova un certo numero di modi diversi per skinare un gatto)

2

Lo sforzo di apprendimento pratico batterà l'RTFM quasi ogni volta che pensi di avere un team di sviluppatori qualificati e la nuova tecnologia è in qualche modo equivalente a ciò che il team ha storicamente fatto. Ad esempio, ho potuto vedere lo sviluppo del sito Web .NET con un gruppo di sviluppatori web Java, ma non sarei molto a mio agio nello sviluppo del sito Web .NET con un team che si è concentrato sulle applicazioni VB Windows. Si dovrebbe iniziare con picchi di funzionalità di base che abbracciano tutti i livelli. La migliore pratica sarebbe quella di aggiungere un esperto o due al team per aiutare il mentore e guidare il processo di sviluppo attraverso la programmazione della coppia. Per motivi di stima, ridurrei in modo significativo il numero di punti storia che permetterei al team di intraprendere nelle prime iterazioni. In via prudenziale, pensavo di raggiungere non più della metà della velocità storica della squadra nelle prime iterazioni.

+0

Sono d'accordo con la parte esperta, se è possibile vale la pena assumere qualcuno per accelerare l'apprendimento. Ma cosa succede se non lo è? – Thiago

0

La maggior parte delle squadre in cui sono stato hanno avuto almeno un appassionato di lingue. Questi ragazzi amano imparare tutto ciò che possono sulle nuove lingue e sono più che felici di condividere. Scopri chi è questa persona nella tua squadra e fai sapere loro che lavorerai con la nuova lingua.

Una volta avviato, eseguire le revisioni del codice. Molti di loro su piccoli pezzi di codice gestibili. L'appassionato di codice sarà in grado di indicare cose che sono gestite meglio dalla lingua. L'intero team impara in questo modo.

Problemi correlati