Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #21255

Re: Metodologie Agile

From Alessandro Pellizzari <shuriken@amiran.it>
Newsgroups it.comp.www.php
Subject Re: Metodologie Agile
Date 2016-10-31 17:27 +0000
Message-ID <e7pd8bFlmduU1@mid.individual.net> (permalink)
References <nv767a$oc2$1@dont-email.me> <e7oojlFgp2jU1@mid.individual.net> <nv7n0m$ijp$1@dont-email.me>

Show all headers | View raw


On 31/10/2016 15:12, Gerry wrote:

> Neppure io, però ho preso atto molto presto che è impossibile
> documentare applicazioni ad oggetti con il buon vecchio flowchart.

Ecco, l'unico flowchart che abbia mai fatto deve essere stato nel 1986 o 
87... :D

Il modo più semplice è di spezzare il più possibile l'applicazione in 
micro-moduli indipendenti o quasi. A quel punto hai una "superficie di 
contatto" col resto del mondo che è molto ridotta, e puoi riassumerla in 
un paio di interface, che diventeranno il tuo contratto. Documentate 
quelle, i loro metodi e, a grandi linee, cosa fanno, non ti serve sapere 
cosa fa tutto l'albero di classi sotto.

E quando ti serve saperlo (perché devi cambiare il comportamento, leggi 
il codice, fai le modifiche, fai girare i test e, se sono verdi, sei a 
posto.

Se rompi qualcosa significa che i test erano incompleti. :)

> Sul fatto che ogni 3 per 2 devi "incontrare il committente", ecco... in
> effetti non capisco dove stia la differenza con il Waterfall.

Qui dipende da cosa fai. Nel waterfall, in realtà, dovresti incontrare 
il committente per 1-2 settimane prima di iniziare a scrivere codice, 
stilare tutte le caratteristiche del progetto, pianificare tempi e modi, 
e, dopo 6 mesi o 1 anno, vai dal committente a mostrare il lavoro finito.

Con l'agile dovresti incontrarti con lui alla fine di ogni sprint per 
valutare i progressi e decidere cosa fare dopo.

Nella pratica nessuna delle due cose succede mai, e si tratta sempre di 
una via di mezzo.

> Sono partito dalla solita Wikipedia e poi giù per almeno una dozzina di
> altri siti con pagine e pagine sull'argomento.
> Si ha l'idea di piccoli gruppi di lavoro, sì, ma dentro team molto più
> complessi.

Dipende da quanto è grosso il progetto, ma l'idea di avere 
micro-progetti indipendenti di solito aiuta: se il progetto finale è 
grosso puoi avere mini-team (5 persone) che lavorano a ogni componente, 
quindi con 100 persone, potenzialmente, puoi lavorare su 20 componenti 
in parallelo e finire il lavoro in 1/20 del tempo.

Poi leggi "the mythical man-month" e cambi idea, ma è un'altra storia. :D

> All'idea, poi, di far lavorare in copia due persone sullo stesso PC mi
> hanno subito detto "Pagati però la metà, vero?"

Questa è la tipica obiezione al pair-programming.

Ma non è necessario che si lavori 24h/24 in pair.

Puoi farlo saltuariamente, mentre stai decidendo come deve essere una 
nuova funzionalità, o quando stai facendo un refactoring pericoloso, e 
un altro paio di occhi serve.

Immagino farete code-review. Quella non è una "perdita di tempo"?

A volte fare pair-programming accorcia i tempi di sviluppo, perché la 
seconda persona può vedere i problemi mentre la prima scrive codice, e 
la può fermare prima che lavori 3 giorni su qualcosa che poi va buttato via.

Ti è mai capitato di pensare a come implementare qualcosa e poi, 
parlandone con un collega, capire che c'era un errore di fondo nel 
ragionamento che ti avrebbe portato a nulla? Ecco, col pair-programming 
quello lo becchi presto.

Un'alternativa è che uno dei due scriva i test (basandosi 
sull'interface) mentre l'altro scrive il codice, ma questo, nella mia 
esperienza, è ancora più difficile, e presuppone un "mini-waterfall" per 
la definizione dell'interface.

> Volevo capire se nelle realtà tipicamente Italiane, fatta
> prevalentemente da piccole software house, Agile viene usata o se è una
> delle tante cose che uno studia all'università nella speranza di farsi
> assumere da Google :P

Il trucco è che io non sono (più) in una realtà italiana. :D

Ma all'estero è usato da praticamente tutti, compresa Microsoft.

In alcune aziende italiane, comunque, viene usato, e in modo abbastanza 
proficuo.

Bye.

Back to it.comp.www.php | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Metodologie Agile Gerry <no-user@no-mail.it> - 2016-10-31 11:26 +0100
  Re: Metodologie Agile Alessandro Pellizzari <shuriken@amiran.it> - 2016-10-31 11:35 +0000
    Re: Metodologie Agile Gerry <no-user@no-mail.it> - 2016-10-31 16:12 +0100
      Re: Metodologie Agile Alessandro Pellizzari <shuriken@amiran.it> - 2016-10-31 17:27 +0000
        Re: Metodologie Agile Gerry <no-user@no-mail.it> - 2016-10-31 19:27 +0100
        Re: Metodologie Agile Gerry <no-user@no-mail.it> - 2016-10-31 19:34 +0100

csiph-web