Come condurre un corso di formazione di 3 giorni su tecniche correnti come TDD e CI [chiuso]

4

Ho il compito di condurre una formazione per un team di 20 sviluppatori Java per un nuovo progetto. Il proprietario del progetto vuole che usiamo tecniche di sviluppo all'avanguardia come TDD e CI. Gli sviluppatori sono esperti sviluppatori Java, ma non hanno esperienza con i test unitari, e molto probabilmente solo un'esperienza superficiale nel refactoring. Pertanto, il project manager ha pianificato un corso di formazione di 3 giorni per tutti gli sviluppatori e alcuni project manager, per apprendere le "nuove" tecniche, mettere tutti in una mentalità condivisa e iniziare.

Quindi ho 3 giorni (alias 20 ore) per insegnare loro

  • Software Artigianato eliminato a causa della risposta
  • Test unitario
  • TDD / BDD
  • refactoring
  • Analisi del codice statico
  • CI

Ovviamente non posso insegnare loro tutto. Quindi le mie domande sono

  • come distribuire il tempo disponibile su questi (e altri) argomenti ,
  • su cosa mettere a fuoco e cosa omettere,
  • e come fare il meglio condurre una sessione di formazione basata su questi argomenti ?
posta Peter Kofler 02.05.2012 - 14:45
fonte

3 risposte

6

Software Craftsmanship

Viene fornito con esperienza. Escluderei questo dalla formazione.

TDD/BDD & Unit Testing

Vorrei gestirli insieme e vorrei trascorrere 2 giorni solo su quello. C'è molto da coprire qui. È necessario dimostrare come è possibile guidare la progettazione mediante test (unit test, test di integrazione e test funzionali). Avresti anche spiegato come configurare / utilizzare i framework di simulazione e i framework di corrispondenza personalizzati come nHamcrest

Refactoring

Puoi insegnare alcune tecniche di ri-factoring, odori di codice, ma non penso che tu possa insegnare come separare le preoccupazioni. Questo viene fornito con esperienza.

Static Code Analysis

Poche ore per dichiarare la sua importanza nel processo CI, come eseguire l'analisi e come interpretare il suo feedback.

CI

Passerei alcune ore a spiegare l'importanza dell'IC in organizzazioni di medie e grandi dimensioni, ma c'è solo così tanto che puoi insegnare. Abbiamo persone diverse che lavorano su diversi aspetti della CI e lo fanno da molti anni. Non penso che tu possa "addestrarlo" in così poco tempo.

    
risposta data 02.05.2012 - 15:16
fonte
5

Primo giorno:

Il refactoring è al centro di tutto questo, quindi inizierei da lì. Spiega l'entropia del codice e come puoi usare il refactoring per combatterlo. Presenta DRY.

Dal refactoring, il prossimo passo naturale sarebbe quello di spiegare i test unitari, perché hai certamente bisogno di una rete di sicurezza quando fai il refactoring.

Secondo giorno:

Allenamenti. Forma delle piccole squadre e poi dai loro un codice peloso che viene loro richiesto di refactoring. Quindi consenti al team di confrontare i risultati e discutere i risultati. Oppure puoi eseguire un dojo di codifica per ottenere un'esperienza pratica con il TDD di base. Un modo rapido per configurarlo è con cyber-dojo online.

Questa giornata può essere affrontata con una discussione sull'artigianato del software: quando sappiamo che il refactoring è completo? Qual è la qualità del codice? Cos'è YAGNI?

Terzo giorno:

Parla dei loop di feedback dello sviluppo e di come l'IC aiuta. Spiega su build e CI automatizzati (che in sostanza è solo un altro ciclo di feedback).

Non dimenticarti di legare tutto insieme ad alcuni assistenti aziendali globali: essere in grado di rispondere al cambiamento rapidamente e di lavorare sempre sulla cosa più importante in questo momento.

    
risposta data 02.05.2012 - 15:02
fonte
1

Sembra una quantità colossale da coprire in 3 giorni. Tempo a malapena sufficiente per una panoramica delle nozioni di base, e non c'è tempo per la copertura di strumenti specifici né l'applicazione di queste tecniche da parte del team sui loro progetti. Inoltre, una sessione di allenamento di tre giorni richiederà molto di preparazione da parte del presentatore.

Hai preso in considerazione l'idea di seguire l'allenamento (o forse di sostituirlo) con una serie di seminari regolari di mezzogiorno (marrone) per concentrarti sui dettagli pratici e sulla pratica?

Workshop / seminari di 1 ora composti da una breve presentazione, una demo e un momento di discussione sono un modo davvero efficace per condividere le conoscenze. Sono anche molto più facili da preparare per il presentatore!

    
risposta data 02.05.2012 - 15:57
fonte

Leggi altre domande sui tag