Come si inserisce la prototipazione rapida in una metodologia agile?

10

Lavoro per una grande azienda, che impone l'uso di processi agili. Ad esempio, per i nostri progetti, utilizziamo servizi basati su cloud che sono specificamente mirati alla gestione dello sviluppo agile.

Il gruppo di ingegneria specifico per cui lavoro non ha tradizionalmente sviluppato software (invece, aiutiamo a guidare i progetti da un punto di vista molto più da vicino), ma questo sta cambiando. Abbiamo una vasta gamma di progetti software imminenti / pianificati che sono per lo più incentrati sui dati, ad esempio eseguiremo il monitoraggio dei dati, la raccolta, l'aggregazione e alcuni rapporti. Altre attività riguardano l'automazione con hardware specializzato e vari tipi di architetture client / server (multi-livello). Devo assistere al processo di assunzione di più persone e formulare molti dei nostri piani per andare avanti.

La mia domanda è se fare o meno la prototipazione rapida (codice per lo scarto) si adatta a una filosofia agile. Ad esempio, adoro Python e la sua vasta gamma di pacchetti. Vedo la possibilità di implementare molte delle nostre idee molto rapidamente con un flusso di lavoro basato su Python. Tuttavia, penso che ci saranno molte percezioni sul fatto che Python non è "enterprise-quality", e gran parte di questo lavoro dovrebbe essere riscritta in Java o forse in C ++.

Tuttavia, la creazione dei prototipi Python ci darebbe un sacco di buonsenso per consentirci di fornire rapidamente risultati reali.

Sei riuscito a incorporare la prototipazione rapida, si spera in Python, in un solido flusso di lavoro agile in un ambiente aziendale?

    
posta BobIsNotMyName 15.11.2013 - 20:51
fonte

6 risposte

11

Il concetto di "prototyping", come previsto in RAD , è un po 'estraneo allo sviluppo agile. Questo non significa che non possa essere fatto, ma è insolito.

Ci sono diversi casi che devono essere esplorati:

  1. Il prototipo è un "guscio vuoto", un mock up o una demo, creato per dare un'idea di come sarebbe un prodotto? Puoi certamente farlo con una o più storie - comunque stai costruendo qualcosa dalla tua immaginazione, non costruendo un prodotto da un vero feedback. Le persone non valutano una demo come valutano un prodotto. Per esempio vedi il feedback sul nostro prototipo di barra superiore rispetto alla nostra implementazione della barra in alto .

  2. Il prototipo è qualcosa che deve essere costruito per comprendere meglio lo spazio dei problemi? Quindi dovrebbe essere coperto come un picco , e solo i suoi risultati conservati (il codice sorgente è transitorio).

  3. Il prototipo è una versione 0.x? Un prodotto realizzabile minino ? Quindi usa il processo agile di tua scelta per questo. Se è necessario ricostruirlo in un'altra lingua, è probabile che si stia meglio se si tratti di un prodotto diverso. Nota che a volte questo è trattato come un modo per abbreviare la scrittura di una specifica ("dovrebbe fare lo stesso del prototipo!"). Questo è un modo davvero scadente di documentare un prodotto, ma probabilmente è meglio spiegarlo come una domanda e una risposta separate: -)

risposta data 16.11.2013 - 15:29
fonte
8

Non è prototipazione rapida (cioè sviluppo iterativo e incrementale) una specie dell'intero punto di Agile?

Sembra che tu abbia problemi con "la percezione è realtà" nella tua organizzazione. Potresti voler ricordare a tutti che Agile non significa "buttare via tutti i piani", non più di Test-Driven Development significa "buttare fuori tutta l'architettura".

E Python non è (se mai lo era) un linguaggio giocattolo. La NASA e i suoi appaltatori usano Python , e se è abbastanza buono per loro, è abbastanza buono per me.

    
risposta data 15.11.2013 - 21:22
fonte
1

Stai per buttare via il codice e non metterlo in produzione (rendilo perfettamente chiaro a TUTTI), quindi essere agili o meno non ha molta importanza. Qualsiasi pratica agile è puramente facoltativa per i prototipi: sprint, burn-down, test, programmazione della coppia o qualsiasi altra cosa si preveda di utilizzare.

Se stai principalmente costruendo modelli funzionali in Python per aiutare i proprietari di prodotti e altri decisori a concettualizzare il progetto, non è necessario essere pronti per l'impresa. Tuttavia, se stai creando un proof of concept o stai provando a vedere se riesci a gestire certi livelli di performance, dovresti probabilmente limitarti al linguaggio di produzione. Ciò non significa che non puoi provarlo in Python.

Indipendentemente, stai per buttare via il codice, ma hai la consapevolezza di essere in grado di farlo funzionare insieme a un migliore senso di ciò che vogliono i proprietari. Ora puoi usare qualsiasi metodo che desideri.

    
risposta data 15.11.2013 - 23:47
fonte
0

Aggiungo che i prototipi sono cruciali per l'apprendimento, e anche nello spirito Agile. Se il prototipo ti consente di imparare, specialmente all'interno di cicli di feedback più rapidi, allora fallo. Si tratta di massimizzare l'apprendimento e condividere gli apprendimenti con il team.

    
risposta data 18.11.2013 - 21:19
fonte
0

In termini di apprendimento, aggiungerei che la prototipazione ti aiuta a imparare, più velocemente. In questo modo, puoi verificare se alla gente interessa anche il problema che stai cercando di risolvere, e se la soluzione che hai in mente è proprio quello che stai cercando - senza perdere molto tempo a costruire una soluzione completa che possa , alla fine, non risolvere un problema abbastanza doloroso o non risolverlo nel modo giusto.

    
risposta data 18.11.2013 - 21:23
fonte
0

Il vero spirito di Agile riguarda l'interazione e la comunicazione. Direi che se il prototipo funziona bene come strumento per aiutare la comunicazione, non c'è niente di sbagliato nell'usarlo nel mondo Agile. Nel nostro team (abbiamo praticato Agile per più di 5 anni) lo abbiamo usato di volta in volta. E ci sono alcuni benefici che posso vedere da questo

1) Assist comunicazione

2) Consenti agli utenti di interviste alla soluzione e ottieni feedback precoce

Caveat:

La comunicazione diretta tra UX e gli ingegneri non dovrebbe MAI essere sostituita da alcun artefatto di prototipazione. Se possibile, l'abbinamento con l'ingegnere funziona molto meglio della comunicazione tramite un mediatore (prototipo).

    
risposta data 18.11.2013 - 21:07
fonte

Leggi altre domande sui tag