Pianificare significa impegnarsi e dividere storie di utenti impegnate in attività.
have a planning session with him after he is back.
Decisamente no. La sessione di pianificazione dopo il suo ritorno non ha senso perché l'impegno doveva essere già fatto.
have a planning session with him before he goes on annual leave i.e. before sprint planning.
Decisamente no. Non ci dovrebbe essere pianificazione quando lo sprint corrente non è completato = il risultato dello sprint corrente è sconosciuto e nessuno sa se tutte le storie degli utenti saranno completate e il cliente sarà soddisfatto con loro durante la revisione.
don't schedule him for any task and assign him on non sprint tasks e.g. spikes etc
Decisamente no. Tornerà e la sua capacità dovrebbe essere utilizzata per lo sprint target.
have his peers plan on his behalf during sprint planning and absent person can then add tasks when he is back and if he cannot do all the work he can descope.
Questo è corretto. Il team si impegna - non un particolare membro del team. Il team si impegna a creare storie di utenti perché conoscono la loro velocità e sulla base della loro ipotesi professionale che possono modificare l'impegno per il prossimo sprint in base alla capacità disponibile. Non ci dovrebbero essere compiti assegnati al singolo sviluppatore in anticipo. Gli sviluppatori dovrebbero essere cross-funzionali, anche se non è sempre possibile, dovrebbero comunque essere in grado di dividere almeno la storia dell'utente in attività. Ci possono essere problemi con la stima dei compiti, ma a mio parere non è affatto necessario.
have him sit with another developer and do pair programming for a while.
Decisamente no. La programmazione delle coppie dovrebbe essere coperta dalla velocità stessa. Se non contate con lo sviluppatore, è come dire che sarà fuori dallo sprint. Perché il cliente paga il tempo dello sviluppatore che non ha fatto nulla durante lo sprint?