Le metodologie BDD e Lean possono essere utilizzate insieme?

3

Durante la settimana scorsa stavo chiacchierando con il mio product manager e si lamentava della mancanza di progressi sul nostro prodotto. È anche una buona critica. Quindi abbiamo avuto modo di parlare della descrizione dei requisiti. Sono un grande fan di BDD e uso qualcosa come la sintassi Gherkin per descrivere come il sistema dovrebbe comportarsi in termini di utente o attore.

È stato piuttosto sprezzante nei confronti del BDD e ha detto che dovremmo usare metodologie Lean come SBCE (ingegneria concomitante basata sui set) e altre cose di cui non conosco una quantità enorme dato che non ho letto molto sulle pratiche Lean finora .

Queste due metodologie si escludono a vicenda? Se non fosse BDD, allora ci dovrebbe essere un altro modo per descrivere cosa dovrebbe fare il sistema. Lean ha una propria lingua per i requisiti?

    
posta Neil 22.12.2014 - 13:01
fonte

2 risposte

5

A mio parere, lo sviluppo Lean intende ottimizzare il processo di sviluppo del tuo team, con l'accento sul bilanciamento tra qualità, costi e tempo. È un metodo organizzativo che non comprende una sintassi, una lingua o una notazione specifica. BDD, tuttavia, si concentra su "costruire il software giusto" e ottenere i requisiti giusti, utilizzando una specifica modellazione e una forma specifica di test - quindi BDD è un approccio meno organizzativo, ma più tecnico. Quindi, se vuoi prendere alcune notazioni, termini o metodi di test da BDD, questo non contraddice Lean - BDD e Lean sono in qualche modo ortogonali.

Tuttavia, se provi a introdurre BDD e si scopre che rallenterà ulteriormente i tuoi processi, non sorprenderti quando il tuo manager in favore di un processo di sviluppo Lean potrebbe identificare BDD come "spreco" (nel senso Lean ) e getta via il materiale BDD. Quindi, quando suggerisci BDD, assicurati di risolvere i problemi che hai davvero nel tuo team, e non è solo perché "sei un grande fan del BDD" - il fanatismo è un grande segnale di avvertimento per i manager più esperti. Dal momento che non ci hai detto finora i motivi per cui la velocità di avanzamento non soddisfa le tue aspettative, non posso dirti se BDD è lo strumento giusto o sbagliato per il tuo problema. Ma fai attenzione a non tentare di utilizzare una soluzione tecnica per un problema organizzativo, che molto probabilmente fallirà.

    
risposta data 22.12.2014 - 13:43
fonte
2

Gran parte della nostra conoscenza Lean deriva dal lavoro svolto da Deming in Toyota. Ci sono due modi principali in cui guardo Lean:

  • Lean Product Development
  • Produzione snella.

Lo sviluppo del prodotto snello è l'equivalente di progettare nuove auto ed è più simile allo sviluppo del software rispetto alla produzione. Siamo impegnati a creare nuove cose, non producendo sempre la stessa vecchia cosa in modo prevedibile. Si tratta di ridurre al minimo il work in progress, ottenere feedback rapidi e utilizzare questi parametri per capire cosa costruire.

Lean Production è più simile a una fabbrica. L'idea è di minimizzare la variabilità per garantire un'alta qualità. L'unico pezzetto di software che è anche vagamente come questo è il sistema di costruzione, ma anche quello è più come progettare la fabbrica insieme alla macchina. In particolare, Lean Six Sigma ha lo scopo di ridurre enormemente la variabilità, ed è completamente, totalmente inappropriato per gli sviluppatori SW.

L'unica cosa che entrambi hanno in comune è la minimizzazione del lavoro in corso. (È un po 'più complicato di così, ma questa è una panoramica leggera per te.)

Sarei molto attento quando guardo "Lean", riguardo a quale delle tecniche applicate. Fortunatamente SBCE è la prima, non la seconda, quindi il tuo capo è per lo più sulla pagina giusta. Anche gli approcci Lean Start-Up (che indovinano di aver letto su SBCE) fanno parte di quel gruppo.

Lean e BDD sono completamente compatibili; in effetti, raccomando comunque un approccio al sistema Kanban con BDD. In breve, questo si traduce nel ridurre il divario tra le conversazioni attorno agli scenari in corso e il lavoro effettivo su questi scenari, riducendo al minimo il numero di conversazioni che non vengono trasferite al software (perché dimenticherai di cosa hai parlato nel tempo).

SBCE è un metodo per eseguire più esperimenti simultanei, utile quando c'è incertezza sul lavoro da svolgere. Il BDD è davvero ottimo per aiutare a capire quali parti del lavoro sono incerte e quali sono ben comprese o richiedono esperienza. Il bit Specification-By-Example di BDD è solo una parte di BDD, anche se è la parte che la maggior parte delle persone conosce, e questo è probabilmente il motivo per cui il tuo capo lo sta chiudendo (inutilmente).

Per maggiori informazioni, prova questo blog che ho scritto su usando BDD come tecnica di senseria (trovare quei confini di cui ho appena parlato), questa su stimare la complessità , o guarda uno dei miei discorsi su BDD e Cynefin . Il tuo capo potrebbe anche trovare il primo blog che ho collegato rassicurante.

    
risposta data 03.01.2015 - 12:32
fonte

Leggi altre domande sui tag