Molte di queste risposte si concentrano sulla gestione del capo, adotterò un approccio diverso.
La risposta, direttamente
Prima di rispondere alla tua domanda, la tua risposta dovrebbe essere: "Ovviamente accetto di lavorare nei fine settimana se significa incontrare uno sprint Scadenza." La ragione di ciò è chiara (per me).
Dal punto di vista dei programmatori
Uno sprint, se usato correttamente, è un "accordo" tra (in questo caso) programmatori e non programmatori, su quando una serie di lavori sarà completata. È uno strumento meraviglioso, perché mentre nel mondo reale devi essere flessibile, una volta che lo sprint inizia il traguardo non si muove . In aggiunta a ciò, affinché uno sprint possa essere utilizzato correttamente, i "programmatori" (individualmente o come team tramite un lead) possono avere un impatto importante, quasi esclusivo, su ciò che entra in uno sprint. Ora l'azienda (o il cliente, o qualsiasi altra cosa) potrebbe desiderare che tu faccia di più in uno sprint, e questo può essere un obiettivo su cui lavorare, ma non importa. Se tutto ciò che puoi fare è un'attività in uno sprint, allora è tutto ciò su cui sei d'accordo.
Ecco il layout che uso. Ho uno sprint settimanale (in questo esempio) con lavoro previsto lunedì. Guardo il backlog (o cosa mai) e metto abbastanza lavoro nello sprint per riempire 4 giorni. Ciò significa che dal lunedì al giovedì ho un carico di lavoro completo. Non troppo pieno, solo pieno. Il lunedì, mi metto un po 'perché abbiamo la configurazione dello sprint e le riunioni di demolizione, e il venerdì, non programma affatto alcun lavoro. Questo mi lascia con 1 giorno intero, con tecnicamente niente da fare.
Nel mondo reale, quell'imbottitura extra significa che non devo lavorare nei fine settimana e che i venerdì di solito sono giorni "leggeri", dove mi occupo solo di cose che sono state ritardate per il resto della settimana. Il resto della giornata posso dedicare compiti amministrativi, come guardare avanti alla prossima settimana e prepararmi per il prossimo sprint. Ovviamente, se succede qualcosa e ho bisogno di un "giorno in più di lavoro" per finire le mie attività di sprint, non è un grosso problema. Sì, significa che il mio normale "venerdì amministrativo" diventa una "corsa per portarlo a termine venerdì", ma queste cose accadono di tanto in tanto.
Dal punto di vista dell'azienda
Quindi, come manager dell'azienda, ciò che ti interessa veramente sono i "costi" e le "scadenze". Gli sprint sono un ottimo modo per capire quale sia una scadenza da un processo che è ancora in gran parte "magico" per chiunque non scriva codice. Quello che vedono è che le cose vanno sulla lista, ho un appuntamento, le cose funzionano magicamente perché queste persone lo fanno funzionare. Il punto è che alla maggior parte delle aziende non interessa quale sia la data di scadenza, a patto che tu la raggiunga, e sembra ragionevole.
I costi d'altra parte sono un fattore importante. Se l'azienda deve pagare gli straordinari (negli Stati Uniti anche un dipendente stipendiato ha diritto a un risarcimento nel tempo se è costante), allora diventa rapidamente meglio assumere un nuovo dipendente, piuttosto che pagare nel tempo, o avere a che fare con il incertezza del "tempo flessibile".
L'azienda, nel suo insieme, dovrebbe trarre vantaggio dall'avere una base di costi più stabile e una migliore "percentuale di completamento" degli sprint, anche se ciò significa che vengono svolte meno attività per sprint.
Considerazioni finali
Se hai molti problemi per cui non riesci a portare a termine i tuoi sprint in tempo, allora tu (o la tua azienda) non lo stai facendo sprint correttamente. Dovresti essere in grado di completare sempre uno sprint, anche se significa una "distanza più breve". Ci sono altre metriche (cioè velocità) per ottenere di più per sprint.
Ricorda che uno sprint è "entrambe le parti". Accetti di fare X entro la fine dello sprint. O non essere d'accordo (spezza X in pezzi più piccoli) o fai quello che hai detto che avresti fatto, anche se questo significa perdere il tuo weekend. Allo stesso tempo, il "lavoro extra" non fa parte di quello sprint. Assicurati di farlo notare.
A volte fallirai uno sprint. Sono cose che capitano. Secondo me, dovresti essere pronto a lavorare il fine settimana in questi casi. Allo stesso tempo, l'azienda dovrebbe essere in grado di rispondere a poche scadenze mancate. Si tratta davvero di credibilità. Stai "lavorando le ore" o stai "lavorando al progetto"?
"Lavoro extra" è abbastanza comune, di solito può rovinare un buon piano, ma è per questo che suggerisco il "giorno in più" di imbottitura. A volte non avrai molta codifica da fare e puoi concentrarti sulla qualità dei ticket e della documentazione o sul lavoro di preparazione. Alcune volte, puoi spenderlo per gestire problemi come questo (nella tua domanda).
Se questo lavoro extra accade spesso, puoi affrontarlo sottolineando che lo sprint è il modo in cui imposti i tuoi giorni di scadenza e che non dovresti spostare il traguardo. Se succede spesso hai un fallimento nella gestione e dovresti chiedere qualcosa del tipo "Cosa possiamo fare per pianificare meglio i nostri sprint in modo da non avere questo Jack-in-the-box così spesso?"
La programmazione è un lavoro in cui dovrai solo succhiarlo alcune volte (ce ne sono altre). Le cose accadono e dovrai lavorare più delle tue 40 ore. Dovresti essere pronto e disposto a farlo. Il tuo capo / azienda ha tutto il diritto di chiedere e tu hai tutto il diritto di dire di no, ma dire di no sembrerà davvero brutto. La chiave è assicurarsi di mitigare e insegnare i tempi in cui ciò deve accadere. Ci saranno sempre momenti critici, ma di solito puoi ridurre il numero di volte a qualcosa di più gestibile. Se ritieni che stia succedendo troppo, affrontalo cercando di inserire quel lavoro "extra" nel tuo normale flusso di lavoro di sprint. Se è solo una o due volte all'anno, allora affrontalo, può essere uno strumento potente (lavori il fine settimana a volte) quando hai bisogno di quel paio di giorni in più per la tua fantastica vacanza.