Trabalho em uma equipe que trabalha principalmente no desenvolvimento, mas também é responsável pelos sistemas complexos existentes. Também tivemos esse problema.
Basicamente, estimamos nossos pontos com base no último sprint (s) e, em seguida, reservamos vários pontos para o trabalho de manutenção esperado. Caso ocorra uma tarefa de manutenção que exceda significativamente isso, como uma grande interrupção, nós a adicionamos como uma história de usuário e removemos uma história existente que ainda não foi iniciada, para manter o sprint do mesmo tamanho. Se surgir um problema importante que é menos urgente, passamos para o próximo sprint.
Sim, tecnicamente isso não está seguindo o scrum. Mas a flexibilidade funcionou bem para nós.
Refinamos esse tempo reservado, perguntando à equipe em todas as reuniões de planejamento se eles veem motivos para se desviar da reserva padrão. Introduzimos isso depois de fazer uma mudança no escritório que nos levou muito mais tempo do que prevíamos, levando a muitas histórias não sendo concluídas.
No entanto, não se prenda apenas à maneira como minha equipe ou qualquer outra equipe faz isso. Escolha algo e apenas faça. Não há como garantir que funcione bem para sua equipe. Tente e avalie na retrospectiva. Se a equipe estiver insatisfeita, tente algo diferente e avalie novamente. Todas as equipes são diferentes, e suas necessidades e limitações também são diferentes.