Sviluppo fuori sincrono nel back end vs front-end

6

Abbiamo due sviluppatori che lavorano allo stesso progetto. Uno sta facendo il front-end e l'altro sta facendo il back-end.

Tutto funziona bene, tuttavia ci siamo imbattuti nello sviluppatore che ha fatto il back-end e sta diventando più veloce di quello su cui sta lavorando lo sviluppatore front-end. Quindi il back-end dev salta alle altre storie su cui ha bisogno di lavorare.

Sto indovinando che va bene, ma non sono sicuro di cosa succederà quando lo sviluppatore front end entrerà e finirà per non essere in grado di ottenere tutte le storie, e dobbiamo fermarci perché il tempo è stato speso più avanti dallo sviluppatore back-end che fa le sue attività fuori dall'ordine di priorità.

Lo sviluppatore back-end dovrebbe aspettare che lo sviluppatore front-end raggiunga o debba continuare?

Se continua così, cosa fai per il budget e non per completare lo sprint?

    
posta Djacobs 23.08.2018 - 02:17
fonte

5 risposte

13

Rallentare un lavoratore potrebbe essere una scelta molto scarsa.

Cose che prenderei in considerazione:

  • Verifica se riesci a riequilibrare il carico di lavoro. Alcune cose non sono chiaramente attività front-end o back-end, e puoi spostare più oneri per il programmatore che sta procedendo.

  • In questa stessa luce, non c'è magia sul front end rispetto al back-end: specialmente se condividono uno scopo comune (applicazione), API, ecc. Si potrebbe pensare di avere il programmatore meno impegnato a prendere alcune attività UI . Lo discuterò almeno con loro, per vedere se sono aperti. Questa è una cosa molto personale, e alcune persone semplicemente non vogliono e gli altri ameranno la possibilità

  • Inserisci un'altra risorsa UI per dare una mano (anche se solo a tempo parziale).

  • Avvia il programmatore back-end su un'altra attività e fallo separare il tempo tra i due progetti.

In breve: essere pragmatico ed efficiente. Ricorda, agile (e i suoi strumenti / processi) sono solo lì per aiutare. L'aderenza rigorosa al dogma non produrrà risultati migliori del pragmatismo e della flessibilità.

    
risposta data 23.08.2018 - 02:26
fonte
7

Fai in modo che lo sviluppatore veloce impari come eseguire attività di "front end".

Dividere gli sviluppatori in base alla lingua o all'esperienza del framework è solo qualcosa che le risorse umane fanno per rendere più facile la pubblicità per i dipendenti.

Nella vita reale gli sviluppatori sono, o dovrebbero essere, costantemente all'apprendimento di nuovi linguaggi, strutture, strumenti software ecc.

Non lasciare che alcuni sviluppatori lavorino su un sottoinsieme di attività sta rallentando il tuo progetto e ostacolando le carriere degli sviluppatori

    
risposta data 23.08.2018 - 14:07
fonte
5

Se ti stai esercitando con agilità, non ci dovrebbero essere un front end dev e un back end dev, ci sono due sviluppatori. Possono interrompere il lavoro in base ai loro punti di forza, e il back-end dev può fare le parti più complicate del back-end e viceversa, ma dovrebbero essere entrambe in grado di sostenersi a vicenda. Lo sviluppatore back-end potrebbe non essere altrettanto efficiente nello sviluppo di componenti front-end, ma entrambi sono necessari per ottenere qualsiasi valore dal progetto.

Il concetto di sviluppatori di font o back end è in gran parte obsoleto, ogni sviluppatore dovrebbe essere in grado di apprendere le tecnologie rilevanti per diventare abile. Questo è vantaggioso per te come gestore / proprietario del prodotto perché ottieni maggiori vantaggi dai tuoi sviluppatori, ed è vantaggioso per gli sviluppatori che li rendono più commerciabili e un potenziale migliore per la crescita della tua carriera.

    
risposta data 23.08.2018 - 14:12
fonte
2

Sembra una situazione molto familiare.

All'inizio della mia carriera ho lavorato per una piccola startup. Era una squadra di tre persone. Uno sviluppatore back-end (uno sviluppatore PHP esperto), uno sviluppatore front-end (io, appena uscito dal college) e un designer grafico.

Ero lo sviluppatore front-end lento.

Non stavamo praticando agile, ma abbiamo trovato il modo di utilizzare al meglio le nostre risorse, che è la vera radice della tua domanda. Lo sviluppatore di back-end si sarebbe inevitabilmente impennato davanti a me. Doveva conoscere abbastanza "cose da front-end" per ottenere le informazioni direttamente sullo schermo. Sapeva HTML di base, e questo era sufficiente per verificare l'output. Più tardi entrerò e riscriverò completamente il livello dell'interfaccia utente. Se avessimo bisogno di materiale AJAX-y, l'abbiamo progettato e concordato in anticipo. Abbiamo trattato le chiamate AJAX come qualsiasi altra chiamata API tra server e client: è necessario pensarci prima del tempo.

Quindi lascia che ognuno lavori al proprio ritmo. Progettare in anticipo, in modo che gli sviluppatori back end e front end conoscano le strutture dati prima dell'avvio del lavoro, quindi disattivano ciascuna di esse. Sembra che la tua sfida sia tenere il passo con lo sviluppatore back-end, non accelerando lo sviluppatore front-end. La velocità arriva con la pratica.

Quindi le storie vengono completate in periodi di tempo più lunghi. Dividi le storie in quelle più piccole (waaaaaaaay più piccole) per limitare i lavori in corso, allungare i tuoi sprint o semplicemente conviverci. Quello che scegliete è irrilevante, a condizione che le persone lavorino costantemente e che venga consegnato un software funzionante. Questo è il vero spirito di Agile Development.

    
risposta data 23.08.2018 - 13:25
fonte
1

Therefore the back end dev skips ahead to other stories that he needs to work on. I'm guessing this is fine

Da una prospettiva agile (in particolare, mischia) non è assolutamente soddisfacente. Lo strumento di back-end dovrebbe aiutare gli sviluppatori a finire le loro storie. Ad esempio, possono aiutare a scrivere o eseguire test, fare documentazione, aiutare a preparare la demo, ecc.

Should the back end developer wait until the front end developer to catch up or should he keep going?

L'attesa è un'opzione, ma ancora una volta, la soluzione migliore è che lo sviluppatore back-end aiuti lo sviluppatore front-end in qualsiasi modo possibile.

In agile, l'obiettivo è ottimizzare per la squadra, non l'individuo. La cosa importante in uno sprint non è necessariamente quella di tenere tutti occupati, ma di consegnare un codice finito e spedibile.

    
risposta data 23.08.2018 - 14:52
fonte

Leggi altre domande sui tag