È agile nello sviluppo o nella gestione?

9

In un dibattito su ciò che riguarda Scrum, ho scoperto che forse ho totalmente frainteso la cosa agile. Mi sembra che Scrum (che è sicuramente considerato un processo Agile) si basa sulla gestione di funzionalità e sprint e ruoli e cose che non hanno nulla a che fare con TDD, pair programming, CI, refactoring e altre tecniche e pratiche incentrate sugli sviluppatori fino ad ora) sono il cuore dell'agile. Ora sto affrontando una difficoltà!

1) Scrum è agnostico se gli sviluppatori fanno pratiche agili?

2) È possibile implementare Scrum in un team che non utilizza test automatizzati? non esegue il refactoring o non aderisce alle pratiche di programmazione agili?

    
posta اشکان نظری 25.09.2012 - 17:40
fonte

7 risposte

19

È un errore comune pensare che Scrum sia uguale a Agile.

Essere Agile segue i quattro principi del Agile Manifesto . Scrum è un processo di project management coerente con quei principi ma non è, di per sé, essere Agile. XP (TDD, pair programming) è un processo di sviluppo, anch'esso coerente con questi principi e coerente con Scrum, ma non è Agile. Integrazione continua, consegna continua, DevOps, tutti coerenti con i principi Agile.

Segui i principi, prima di tutto. Tutte queste frasi-buzz sono solo metodologie che le persone hanno trovato utili per aiutarle a seguire i principi. Ma la parte principale di "essere Agili" è essere in grado di adattare i processi a volontà dove non seguono i principi di Agile.

    
risposta data 25.09.2012 - 17:53
fonte
6

Is Scrum agnostic to whether developers do agile practices?

Scrum è un insieme di linee guida che incoraggiano una squadra ad essere agile.

Can you implement Scrum in a team that does not utilize automated tests? does not perform refactoring or does not adhere to the agile programming practices?

Molto difficile, perché entro la fine di ogni sprint devi avere un prodotto funzionante. Se devi eseguire un test di regressione manuale completo per dimostrare che sta funzionando, è probabile che sia irrealizzabile.

    
risposta data 25.09.2012 - 18:01
fonte
5

Alistair Cockburn (uno dei fondatori del movimento Agile) dice questo su Crystal Clear (un aspetto di la sua metodologia Agile):

Crystal Clear can be described to a Level 3 listener in the following words:

“Put 4-6 people in a room with workstations and whiteboards and access to the users. Have them deliver running, tested software to the users every one or two months, and otherwise leave them alone.”

Questa è una definizione di agile, certamente per lo staff di sviluppo con esperienza che sa cosa sta facendo e può essere considerato affidabile per andare avanti e farlo. Questo significa che hai per usare CI e TDD e Pair Programming e tutte le altre cose alla moda? In parole semplici ... No.

Agile non si tratta di seguire un insieme di processi, si tratta di essere efficaci. Ciò che questo significa per te dipende dalla tua squadra e da come funziona, ciò che trovi utile a te. Se TDD non ti aiuta a produrre codice funzionante, smetti di ascoltare le luci minori che gridano sul web e non usarlo! Se Pair Programming aiuta davvero il tuo team a focalizzarsi e a fare le cose, allora ignora chi dice che è una perdita di tempo e organizza la tua squadra come una gara a 3 zampe a scuola.

L'ho fatto agile molti anni fa, così tanti non ci siamo nemmeno resi conto che stavamo facendo agilità - abbiamo consegnato le iterazioni del prodotto ogni mese, e ripetuto il ciclo di correzioni di bug e aggiunte regolarmente nuove funzionalità. Abbiamo fatto assolutamente zero test unitari in quanto tali cose non erano state inventate, e il libro di refactoring non era stato scritto. Quindi sì, puoi assolutamente fare agile senza nessuna delle cosiddette pratiche agili.

Alistair dice anche questo di Kent Beck:

Asked about XP and the five levels of the Software Engineering Institute’s “Capability Maturity Model,” he replied with XP’s three levels of maturity:

  1. Do everything as written.

  2. After having done that, experiment with variations in the rules.

  3. Eventually, don’t care if you are doing XP or not.

Alla fine, non importa se stai facendo XP o meno ... parole sagge che dovrebbero ricordarti di non cadere in questa trappola .

    
risposta data 25.09.2012 - 18:47
fonte
0

Is agile about development or management?

Agile è un insieme di pratiche di sviluppo del software per soddisfare i requisiti di flessibilità e rapidi cambiamenti del mercato - o la cosiddetta consegna accelerata . Quindi, in un quadro generale, si tratta di un approccio flessibile per soddisfare le mutevoli esigenze complesse del cliente suddividendo il lavoro in piccole porzioni e offrendo funzionalità in iterazioni rapide di 2-4 settimane.

Tuttavia, per soddisfare questa flessibilità, il team di sviluppo deve mettere in pratica le pratiche di programmazione Agile .

Descrizione del Wiki in merito a Sviluppo software Agile :

Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle.

    
risposta data 25.09.2012 - 17:53
fonte
0

Infatti, puoi usare mischia in progetti che non hanno nulla a che fare con lo sviluppo del software. È un metodo projectmanagement / gestione del team.

    
risposta data 27.09.2012 - 08:11
fonte
0

Scrum è un sapore agile che segue uno schema specifico per raggiungere gli obiettivi della metodologia di sviluppo agile. Non puoi seguire Scrum e non essere agile, ma puoi essere agile e non seguire Scrum.

Scrum non ha alcun rapporto con l'uso di test automatici, agile tende a favorirli ma non sono affatto necessari. Il refactoring dovrebbe essere un obiettivo in agile e Scrum, ma è spesso ignorato. non avere intenzione di mai refactoring non è veramente agile.

    
risposta data 25.09.2012 - 17:58
fonte
-2

1) NO !!!! Scrum è Agile, il che significa che le pratiche di sviluppo agile (TDD, pair programming, CI, refactoring, ecc.) Sono molto importanti per tutti gli aspetti di un progetto Scrum. Sarà molto più difficile capire la frequenza di esecuzione del tuo team, il lavoro di stima, impostare le dimensioni dello sprint appropriate, ecc. Se non usi queste pratiche.

2) Sì, puoi implementare Scrum in una squadra che non rispetta le pratiche agili, ma ritengo che limiti davvero il potenziale della squadra. Gran parte del perché Scrum / Agile ha così tanto successo sono le prestazioni e i guadagni di qualità ottenuti dalle pratiche di sviluppo di Agile, che sono fondamentali per offrire funzionalità complete per ogni sprint.

Se qualcun altro nel tuo gruppo sta cercando di convincerti che le pratiche di sviluppo di Agile sono una perdita di tempo, penso che dovresti dedicare del tempo ad enfatizzare il motivo per cui queste pratiche sono sempre sottolineate con Scrum e con Agile nel suo insieme. Fanno davvero la differenza.

    
risposta data 25.09.2012 - 18:00
fonte

Leggi altre domande sui tag