Come impostare una ricerca one-man nella differenza tra BDD e Waterfall?

5

In precedenza, ho fatto una domanda su come misurare la qualità di un progetto. L'esito di questa domanda è stato che la qualità del progetto può essere divisa in due parti:

  • Qualità interna (qualità del codice, misurabile mediante metriche sulla qualità del codice)
  • Qualità esterna (test di accettazione, quanto bene il software soddisfa i requisiti)

Quindi, sulla base di ciò, voglio avviare delle ricerche e convalidare i risultati del progetto. Il problema è che condurrò questa ricerca da solo, quindi non è possibile eseguire il progetto una volta in stile BDD e l'altro in cascata da solo. Inoltre, non è possibile confrontare i progetti BDD e Cascate su una scala più ampia, poiché non ci sono abbastanza progetti BDD che possono essere misurati a causa dell'età del BDD.

Quindi, la mia domanda è: qualcuno ha affrontato questo problema? Come potrei eseguire il mio esperimento in modo tale che abbia un valore scientifico?

    
posta Martijn van der Maas 12.03.2012 - 00:14
fonte

6 risposte

4

È impossibile generare set di dati abbastanza grandi in un laboratorio di ricerca, per non parlare di soli, per convalidare i processi di sviluppo. Le tue opzioni sono:

  1. Collaborazione con l'industria. Per i principianti, dovrai istruirlo su BDD all'inizio del progetto e devono essere disposti ad adottarlo - un compito arduo! Avrai anche bisogno di alcuni anni per eseguire i tuoi esperimenti su diversi progetti e possibili in diverse aziende, probabilmente in diversi settori! Per i progetti di controllo Waterfall, puoi semplicemente fare affidamento sui dati esistenti.

  2. Utilizzare i progetti degli studenti. Questa opzione è pratica, ma non è affidabile come la scala dei progetti deve essere piccola. Ehi, devi fare quello che devi fare! Forse se hai accesso agli studenti universitari, potrebbe essere meglio.

Se devi continuare, l'opzione 2 sembra essere l'unica opzione pratica. Tuttavia, potresti voler riconsiderare il tuo argomento di ricerca!

Buona fortuna!

    
risposta data 22.04.2012 - 01:00
fonte
2

Ti sei prefissato un compito molto difficile!

Ogni progetto software è praticamente unico, un gruppo diverso di persone che implementa un diverso insieme di requisiti per un cliente diverso in un ambiente diverso.

Inoltre, le organizzazioni commerciali non renderanno pubblici i dati interni sui costi del progetto, sugli sforzi o persino sul successo o sul fallimento. In effetti, quasi tutti i progetti per le imprese hanno successo solo perché il "successo" viene ridefinito come qualsiasi cosa sia stata consegnata.

Le organizzazioni governative, d'altra parte, devono operare in pubblico e vengono pubblicate cifre su costi, risorse e successo / fallimento. Almeno all'inizio dei progetti tendono ad essere piuttosto aperti su ciò che stanno facendo e su come, quindi, tra comunicati stampa, rapporti di audit e account pubblicati (e richieste di libertà di informazione in ultima istanza) dovresti essere in grado di costruire un buon corpo di dati da analizzare.

L'avvertenza è che i progetti governativi (almeno quelli per cui pagano le tasse) hanno una lunga e sordida storia di insuccessi e generalmente seguono stili di gestione di progetti unici e incoerentemente incoerenti.

    
risposta data 04.04.2012 - 08:22
fonte
1

Cascata è un ALM , BDD-1 / BDD-2 è un metodo per il test di accettazione in corso in questo modo TDD è un metodo per il test delle unità in corso.

I due coprono aspetti diversi e non si escludono a vicenda.

es. Potresti utilizzare uno qualsiasi di questi ALM {Waterfall, UP, SCRUM} con o senza BDD.

    
risposta data 08.05.2012 - 17:27
fonte
0

Il vero valore di BDD è scoprire le situazioni difficili in cui gli scenari non sono ovvi: le incognite sconosciute di un progetto.

Dal momento che ogni progetto implica fare qualcosa di nuovo (altrimenti potresti semplicemente acquistarlo dallo scaffale o usare open-source) di solito ci sono alcune di queste scoperte. Sono la cosa che occupa più tempo nei progetti. ("Se un progetto non ha rischi, non farlo" - Waltzing with Bears).

Quindi mi dispero di poter mai confrontare un progetto con un altro, soprattutto se usi BDD per aiutarti a fare quelle scoperte, perché saranno radicalmente differenti per ogni progetto - e se proverai a rifare un progetto, avrai trovato tutte le scoperte già ed essere prevenuto di conseguenza. (Queste scoperte spiegano perché Waterfall non funziona così bene, a proposito.)

Al contrario, chiederei ai principali stakeholder quanto fossero felici con la qualità interna ed esterna del software che hanno ottenuto da un gruppo di progetti BDD e Waterfall su una scala da 1 a 10 e confrontare i risultati. Questo è tanto oggettivo quanto è probabile che tu possa essere in grado di ottenere, e dovrebbe funzionare su più progetti.

    
risposta data 08.05.2012 - 15:01
fonte
0

Sto semplicemente seguendo ciò che ho letto qui . Perché non paragoni BDD a TDD? Prendi un gruppo di major CS del primo anno e confronta la loro capacità di usare test unitari con e senza BDD. Sviluppano una migliore comprensione del processo?

C'è un merito nel cercare di ottenere alcuni dati su metodi agili in cascata, ma questo va oltre la tesi di laurea IMHO.

    
risposta data 08.05.2012 - 15:40
fonte
0

Penso che la seconda opzione di rrufai potrebbe essere la migliore da perseguire. Tuttavia, lo cambierei un po '.

Trova alcune classi di programmazione di livello medio-alto e dividi gli studenti in due gruppi: cascata e BDD. A seconda della dimensione della classe, potresti facilmente avere più team per ciascun approccio.

Successivamente, affronta sfide specifiche dal progetto CodeJam di Google. Assegnare le squadre in modo da avere almeno una cascata e un gruppo BDD per sfida. Aggiungi ulteriori requisiti come documentazione, indicatori di avanzamento, tracciabilità / registrazione, ecc ... per aumentare il numero di funzioni che devono essere progettate e integrate nel progetto.

Il vantaggio dell'utilizzo degli inceppamenti è che hai una convalida integrata per il loro codice. Dovrai determinare i criteri di valutazione per i requisiti aggiuntivi.

Idealmente, ogni team affronterà alcune delle sfide nel loro stile assegnato. Quindi puoi cambiare le metodologie di progettazione e farle affrontare alcune altre sfide.

    
risposta data 08.05.2012 - 17:12
fonte

Leggi altre domande sui tag