Qual è il modo migliore per spiegare la ramificazione (del codice sorgente) a un client?

6

La situazione è che un cliente ha richiesto un certo numero di modifiche circa 9 mesi fa, che poi ha sospeso con loro a metà. Ora hanno richiesto più modifiche senza aver deciso di procedere con la prima serie di modifiche. Le due serie di modifiche richiederanno modifiche agli stessi moduli di codice.

Mi è stato chiesto di spiegare perché non prendere una decisione sul primo gruppo di modifiche (o finirle o binarle) può comportare costi aggiuntivi (essenzialmente perché le modifiche dovrebbero essere apportate a una succursale, se esse procedere con il primo set di modifiche che dovremmo unirle al trunk - che sarà disordinato - e testarle nuovamente).

La domanda che ho è questa:

Quale è il modo migliore per spiegare la ramificazione del codice a un client non tecnico?

    
posta Jon Hopkins 30.11.2010 - 16:34
fonte

6 risposte

8

Spiegalo come se scrivessi due articoli di ricerca. Potresti voler andare con diversi pensieri. Per fare ciò, crea una copia e continua a lavorare sui "rami" contemporaneamente. Questo problema si presenta quando hai lavorato su vari documenti diversi e devi "unirli" in un risultato finale.

Questa spiegazione ha sempre funzionato per me.

    
risposta data 30.11.2010 - 16:45
fonte
19

Probabilmente non è così importante spiegare la ramificazione. Ciò che è importante è che tu spieghi l' impatto della loro non-decisione.

In questo caso l'impatto è se decidono di volere la prima serie di modifiche lungo la strada, aumentando il costo, se implementerai la modifica ora. Un bel modo in cui riceveranno il messaggio è se fai una stima per entrambi.

Se non capiscono perché le stime sono diverse, puoi spiegare come hai già fatto. I test dovranno essere eseguiti due volte e le incompatibilità dovranno essere risolte, ecc.

Puoi anche usare le metafore dell'edificio. Personalmente non mi piacciono, ma non sarebbe così difficile. Un esempio che mi viene in mente sostituendo una vasca da bagno e l'impianto idraulico insieme è più economico che sostituire la vasca e l'impianto idraulico separatamente, dal momento che devi solo strappare la vasca una volta e ri-calafatare una volta e così via.

    
risposta data 30.11.2010 - 17:24
fonte
2

Stai costruendo un camion. Pensi di volerlo usare per il traino, quindi vuoi un motore più grande e freni. I freni sono più economici quindi li metti per primi. No aspetta .... Potresti non aver bisogno di rimorchiare. Metti in pausa la scelta del motore.

Ora desideri una migliore percorrenza del gas, quindi devi essere più leggero per sostituire alcuni componenti in modo che sia più leggero, ma se non riesci a decidere il pesante motore / traino o meno. I grandi freni ora potrebbero causare la rottura della trazione e sbandare senza controllo. Se togliamo i grandi freni, il camion potrebbe non fermarsi.

Ciascuna situazione pone un problema. Per completare le attività finali, le attività dipendenti devono essere complete o viene generato un doppio / triplo lavoro.

Andare avanti crea un doppio lavoro. Il doppio lavoro costa denaro o tempo. Più soldi == sul budget / più tempo == al di fuori della linea del tempo.

Se puoi fare un problema logico più persone lo capiscono ... la relazione monetaria non fa mai male.

IMO, puoi provare a spiegare l'impatto sui costi una volta. Se non lo capiscono, fai notare che i nuovi risultati richiedono la rinegoziazione del contratto. Ti stai avvicinando a un traguardo di pagamento? Potrebbe essere anche questo, vogliono forzare l'utente a maneggiare la funzionalità o contrattare l'errore di rinegoziazione in modo che possano passare a un altro team di sviluppo con i progressi ottenuti e non pagare per questo.

    
risposta data 01.12.2010 - 00:12
fonte
0

Non preoccuparti. Non è il tuo lavoro educarli sul tuo lavoro.

Basta dire che non avere una decisione sulla prima serie di funzionalità complicherà la gestione del progetto che potrebbe avere ripercussioni in termini di tempo e costi. Questo è tutto ciò che è rilevante per loro.

    
risposta data 30.11.2010 - 16:48
fonte
0

Non ci proverei nemmeno. Dì loro solo se vogliono fare entrambe le serie di modifiche ora costerà meno se si fa un rilascio ora per le loro modifiche recenti e poi una versione successiva che introduce la vecchia serie di modifiche che sono in attesa. Perché? Perché una pubblicazione di per sé costa denaro.

    
risposta data 30.11.2010 - 22:42
fonte
-3

Hai un treno "A" con diverse macchine che trasportano migliaia di scatole. Dopo 9 mesi hai deciso di creare un altro treno sul binario di raccordo denominato "A-b" pieno di un carico simile per addestrare "A", ma alcune scatole e vagoni sono stati aggiunti e alcuni rimossi.

Il treno "A" continua a scendere lungo la pista e nessuno ha deciso se vogliono il treno "A + b". Si sta considerando una deviazione. Il treno "A" dovrà scaricare alcune scatole e caricarne altre e il treno "A" verrà rinominato "A + c".

La ferrovia deve chiedere al cliente di prendere alcune decisioni sulla spedizione che desidera.

  • Dimentica "A + b", scarica tutto auto e mangiare i costi di caricamento.
  • Fai prendere il treno 'A + b' a e sostituire il treno "A" prima del deviazione e creazione del treno "A + b + c".
  • Lascia che il treno "A" faccia diventare la deviazione Il treno 'A + c' e poi il treno 'A + b' catchup e quindi riconfigurare il treno 'A + c' e diventare '(A + c) (A + b)'

(A + c) (A + b) costerà di più e richiederà più tempo a causa di tutto il caricamento, lo scaricamento e la configurazione della nuova configurazione di ordine sul treno.

    
risposta data 30.11.2010 - 17:53
fonte

Leggi altre domande sui tag