Così ho iniziato a lavorare per una grande corp., una di quelle con 3 lettere nel nome, e stanno cercando di diventare Agile, ma hanno tonnellate di processi, che non mi sembrano agili.
Quello che mi ha ferito di più sono le revisioni del codice. Il mio ultimo lavoro è stato con una startup che direi che è il team di sviluppo più agile che abbia mai visto, sia stato, e / o abbia mai sentito parlare.
In ogni caso, la mia tesi è che le recensioni di codice sono una perdita di tempo nello sviluppo iterativo o agile in cui UX / UI è estremo / intenso (si pensi alla perfezione di Apple / Steve Jobs). Forse qualcuno qui può aiutarti a capire prima che mi licenziano?
Ecco il mio processo di sviluppo e quello del mio ultimo avvio ... molto agile.
Facciamo il primo lavoro di feature per ordinare task di sviluppo / tutti i giorni. Potremmo prendere in giro una coppia di versioni e presentarle agli utenti, al team e al marketing per ottenere feedback. Quindi eseguiamo un'altra iterazione di simulazione per ottenere un round dalle stesse parti interessate sopra. Poi divideremo il lavoro e iniziamo. Abbiamo pietre miliari e date da incontrare, ma continuiamo a tappare. Non abbiamo recensioni di codice durante tutto questo. Diverse volte durante le settimane del nostro sviluppo teniamo le sessse con gli stakeholder di nuovo per vedere se sono ancora d'accordo caratteristiche / funzioni / UX / UI sono ancora in forma e obiettivo.
Mentre ci avviciniamo alla fine del ciclo di iterazione di 8 settimane, il QA inizia a testare, quindi passa agli utenti alfa e infine agli utenti beta. Ma durante gli alfa e beta gli sviluppatori stanno esaminando le nuove funzionalità e le funzionalità meno recenti che fanno cambiamenti iterativi quotidiani o orari all'interfaccia utente per migliorare la UX. Quindi, una funzionalità sviluppata durante questa release potrebbe finire per essere modificata 3 volte in più nelle ultime quattro settimane per migliorarla e perfezionarla o aggiungere alcune caratteristiche minuscole (ad esempio, rendere il componente un po 'più agile o più intelligente). A volte i cambiamenti potrebbero essere un significato superficiale, nessuna operazione CRUD viene modificata o modificata, ma l'intera interfaccia utente cambia solo.
Quindi, con questo tipo di processo di sviluppo, estremo Agile, le revisioni del codice non sarebbero una perdita di tempo? Significa che se avessi un altro sviluppatore o due rivedere il mio codice, ma poi quel codice cambia altre 3 volte prima che vada alla porta, a causa di tutti i miglioramenti UI / UX, non stiamo perdendo il nostro tempo per le prime 3 volte codice in quanto quel codice / componente / UI è stato scartato?
Non abbiamo mai avuto molti problemi di qualità con questo processo e sì, se uno sviluppatore ha lasciato fuori tutta la conoscenza, ma abbiamo sempre trovato sviluppatori intelligenti a prenderlo e rilevarlo.
E sì, abbiamo un sacco di tester perché potrebbero dover ripetere il test 3 o 4 volte. Inoltre, per favore non rimanere impiccato a chiedere perché tutte le UI / UX cambiano ... questo è solo il modo in cui le cose sono fatte ... è stato allora ecco perché l'app vince un sacco di premi per UI / UX e gli utenti uccideranno per il app. Il processo di pensiero è se riesco a ottenere un miglioramento anche del 2% in qualcosa, perché ho un'ora in più e poi lo faccio. Gli utenti saranno più felici, il che significa più $ o utenti. E sì, i nostri utenti stanno bene con l'app che cambia continuamente perché questo è stato fatto fin dal primo giorno in modo che non lo vedano come negativo o negativo.
Spero che questo post non sia così pomposo, ma non riesco a vedere come le recensioni di codice non siano sprecate. Forse il 2% di tutto il nostro codice nel codice recensito ha dei bug. Ogni versione potremmo trovare 3 bug tramite la revisione del codice. Quindi si ottengono 40 ore di revisione del codice per sviluppatore per versione (4 x 40 = 160 ore) per trovare da 3 a 5 bug? È probabile che il 50% dei bug da 3 a 5 sia stato prelevato dal QA. Non sarebbe meglio spendere 40 ore per sviluppatore aggiungendo una nuova funzionalità o migliorando quelle esistenti?