Chi dovrebbe essere responsabile della stesura / aggiornamento delle specifiche di progettazione in un team agile

4

Lavoro come parte di un team Agile simile a una mischia e qualche tempo fa, una cosa che abbiamo identificato che il team dovrebbe fare è mantenere un buon set di documenti di progettazione per la nostra base di codice. Poiché siamo agili e disponiamo di una buona quantità di discussioni e comunicazioni, i nostri progetti sono mantenuti ad un livello elevato e sono generalmente utilizzati per descrivere il layout generale dei moduli, comprese le classi principali e alcune delle loro interazioni e. Inoltre li abbiamo trovati utili per la discussione di punti di partenza e anche per ricordare alle persone che la progettazione deve essere presa in considerazione prima di passare al codice.

Finora, ci si aspettava che tutti aggiornassero le specifiche di progettazione in base alle necessità. I lead di progettazione per ogni team sono responsabili di dare consigli alle persone sul design in generale, su cosa aggiornare nelle SDS e anche per rivedere le specifiche per assicurarsi che tutto rimanga coerente.

Il problema che sto vedendo è che mentre tutti, specialmente i nuovi membri, trovano le specifiche di progettazione molto utili quando imparano nuovi componenti o addirittura tornano a componenti che non hanno toccato per un po ', la maggior parte delle persone aggiorna solo i documenti per il bene di aggiornarli (ad esempio, gli viene detto che devono farlo e così lo fanno). In modo che ci ritroviamo con descrizioni one-liner che a volte non sono nemmeno frasi complete e quando dico loro che questo deve essere aggiornato e compilato, aggiungono di più, ma di nuovo, solo perché vengono dette. Così ora gli one-liner diventano 1,5 righe e non c'è ancora nulla di utile scritto.

Ovviamente le diverse abilità / punti di forza dei membri del team saranno diverse. Quindi la domanda è: alcuni membri del team su una squadra agile non sono semplicemente responsabili della progettazione e si riducono a un programmatore? Oppure dovrebbe essere il ruolo di lead nel design di tornare a quei membri del team e farli riscrivere le specifiche quante volte necessario (e questo sta diventando davvero doloroso) fino a quando non acquisiscono abbastanza abilità per produrre ciò che ci si aspetta?

Le mie linee guida di base che suggerisco a tutti: se eri seduto in una riunione o facevi una presentazione sul diagramma di classe X, cosa diresti se il tuo pubblico avesse bisogno di sapere come funziona il tuo codice. Invece, la metà delle volte si limita a ripetere ciò che posso già vedere nel diagramma delle classi. "Classe X implementa l'interfaccia Y". Questa sarebbe tutta la descrizione della classe.

Modifica Lavoro per una grande azienda con un appetito molto salutare per l'outsourcing / appalto. La squadra in cui lavoro ha membri permanenti, ha anche membri permanenti che sono molto nuovi per il team (dalla recente fusione). E abbiamo appaltatori dall'India e dalla Polonia che molto probabilmente saranno riassegnati ad altri progetti dopo l'attuale rilascio. Quindi diversi membri hanno un buy-in diverso a questo punto. La documentazione è sicuramente importante per quelli di noi che sono stati sul progetto nell'ultima versione e saranno sul progetto nella prossima versione.

    
posta DXM 06.10.2011 - 20:21
fonte

4 risposte

6

Non sono sicuro che tu l'abbia letto, ma ti consiglio di leggere l'articolo di Scott Ambler su Agile / Lean Documentation .

The issue I'm seeing is that while everyone, especially new members find design specs very helpful when learning new components or even going back to components they haven't touched for a while, most people only update the docs for the sake of updating them (i.e. they are told they must do it and so they do it).

Questo sembra alquanto contraddittorio. Se i membri del team effettivamente trovano utile la documentazione, allora dovrebbe essere un fattore motivante per mantenerli aggiornati. Se il tuo team di sviluppo non sta aggiornando attivamente la documentazione per acquisire le decisioni, forse ci sono problemi che devono essere affrontati. La documentazione è pertinente? L'attuale formato del documento facilita la comunicazione? Stai cercando di produrre una documentazione troppo buona o troppo formale per lo scopo?

So the question is, should certain team members on an agile team simply not be responsible for design and be reduced to just a coder? Or should it be design leads role to go back to those team members and make them rewrite the specs as many times as necessary (and this is really becoming painful) until they pick up enough skills to produce what's expected?

Delegare gli aggiornamenti della documentazione di progettazione a un singolo membro del team, a mio parere, va contro l'agilità. Parte del punto di agilità è ridurre il rischio, e lo fai diffondendo la responsabilità. Proprio come nessuno possiede il codice, nessuno dei due possiede documenti. Piuttosto che fare in modo che i membri del team si limitino a riscrivere le specifiche, prova qualcosa come la programmazione in coppia per insegnare a queste persone come scrivere una documentazione migliore o istituire recensioni sui documenti prodotti per fornire un feedback appropriato.

    
risposta data 06.10.2011 - 20:39
fonte
3

C'è un detto che uno dei miei professori al college amava gettare "trova la contraddizione tra ciò che la gente dice sia importante per loro e ciò che effettivamente fa e tu li capirai perfettamente".

Quindi il team dice che gli piace la documentazione, ma in realtà non la crea quando è appropriata? Ciò che apprezzano è la convenienza. È molto più facile leggere una documentazione ben scritta piuttosto che cercare di strappare e capire il codice. È anche molto più facile ignorare la documentazione di aggiornamento che farlo. Quindi, dov'è sempre che mantieni la tua lista dei valori della squadra togli la documentazione (se la metti anche lì) e scrivi convenienza in grassetto.

Quindi ora quando si discutono storie e si creano attività, il team dovrà affrontare i fattori di convenienza. È qualcosa che dovrebbe essere scritto per il futuro? Il valore che potrebbe dare alla strada si bilancia rispetto a quanto costa ora?

    
risposta data 06.10.2011 - 20:54
fonte
3

Credo che il modo in cui hai affermato la tua domanda contenga già la risposta. Parli del tipo di documentazione relativa a un solo tipo di lavoro: progettare e implementare il codice del software, quindi le persone responsabili devono essere coloro che eseguono questo tipo di lavoro: gli sviluppatori di software . Agile o no.

Trovo una contraddizione nella tua domanda e la risoluzione potrebbe aiutarti . Da una parte dici "una cosa che abbiamo identificato che la squadra dovrebbe fare", ma d'altra parte tu dici che la stessa squadra che "l'ha identificata" è ora così riluttante e sciatta nel mantenere la documentazione di progettazione - questo potrebbe indicare che non ci hanno davvero comprato.

Chiederei, chi ha identificato questa attività di documentazione come una necessità? La squadra ci ha comprato? In che modo erano esattamente d'accordo nel portarlo a termine? Rivedi questo argomento e queste domande in una retrospettiva.

    
risposta data 06.10.2011 - 20:59
fonte
0

Poiché menzioni Agile , sarebbe naturale sperimentare approcci diversi e scoprire quale funziona meglio per il tuo team.

Le informazioni fornite finora ti sembrano in una posizione molto favorevole per questo:

It [design specs] is a deliverable, it is tracked in iteration and people are given tasks to both write specs and review specs. Acceptance criteria is team's consensus (with design lead having more weight) that the spec meets what's expected when the review is held...

We have a review meeting...

I suoni sopra sono strumenti quasi perfetti per la raccolta di dati e l'esecuzione di analisi comparative per vari approcci. Preferirei preferire la verifica del QA come criterio di accettazione rispetto al consenso del team , ma anche se ci si sente abbastanza bene.

  • Una parola di cautela: prima di iniziare a sperimentare, è meglio chiarire con il management la loro comprensione di Agile - perché, sai, a volte capita di avere il proprio, piuttosto un modo speciale di guardarlo .
risposta data 07.10.2011 - 00:13
fonte

Leggi altre domande sui tag