Esta pergunta é realmente duas perguntas em uma.
Todo comentário
De todas as maneiras de rastrear itens de ação, esse é o pior. TODO comentários são bons durante o trabalho ativo ou como uma forma de sugestão para um mantenedor, "aqui está algo que poderia ser melhorado no futuro". Mas se você confiar nos comentários TODO para realizar o trabalho, estará fadado ao fracasso.
O que fazer sobre isso
TODO os comentários são basicamente dívida técnica, então eles devem ser tratados como qualquer outra dívida técnica. Enfrente-os imediatamente, se tiver tempo, ou coloque-os no backlog para que eles possam ser rastreados e priorizados.
De um modo geral, e isso é totalmente opinativo e aberto ao debate, TODO comentários podem ser considerados um cheiro de código. Se um comentário TODO faz com que seja verificado o controle de versão, você tem que se perguntar, você está indo realmente para segui-lo agora? Se não, tudo bem. Apenas seja honesto consigo mesmo e coloque-o no backlog.O modo como você gerencia esse backlog se resume a processos de negócios, políticas da empresa e talvez alguma autonomia pessoal. Mas você ainda precisa de um backlog rastreado e priorizado para garantir que isso aconteça.
Alterações no banco de dados
Sim, as alterações do banco de dados são complicadas com uma política de tempo de inatividade zero. Alguns truques para ajudar a torná-lo menos doloroso:
Processo pós-implementação
Crie um processo de pós-implantação que seja executado como parte do mesmo release. No entanto, você quer que ele funcione. No último sistema em que trabalhei, projetei uma implantação de quatro fases:
- scripts do banco de dados do preapp
- aplicativos da web
- scripts de banco de dados postapp
- scripts do banco de dados da janela de manutenção
A idéia era que, sempre que possível, colocássemos o máximo possível de mudanças no banco de dados no pré-pico.
O postapp foi reservado para os casos incomuns em que precisávamos fazer alterações de esquema incompatíveis. Nesses casos, o preapp faria uma mudança suficiente para tornar o novo código do aplicativo compatível (talvez criando uma exibição temporária para compatibilidade) e o postapp iria limpar esses artefatos temporários.
A fase da janela de manutenção foi reservada para alterações que realmente exigiam tempo de inatividade ou onde o risco ou custo de uma implantação ativa não valeria a pena. Por exemplo, scripts que alteram grandes quantidades de dados podem precisar bloquear uma tabela inteira.
Implante com frequência
Se você implantar novos lançamentos com frequência suficiente, poderá chegar a um ponto em que carregar uma alteração em 2 ou 3 versões é trivial. Ciclos de lançamento longos amplificam o custo das alterações do banco de dados.