Para responder sua pergunta, não, isso não é normal em um processo Agile.
O ponto em que parece resultar de uma atitude do Agile é o ciclo de design / desenvolvimento / teste do Agile de iteração curta e a ênfase do Agile em soluções leves que atendem aos requisitos conhecidos, mas são bem estruturadas para poder atender novos requisitos com o Agile. mudança mínima. Dadas essas duas coisas, você pode dizer que um desenvolvedor, sem saber o que pode acontecer, mas sabendo que sua mudança não deve afetar o banco de dados de uma maneira que não pode ser desfeita, simplesmente faz as alterações necessárias no esquema no maneira "mais leve" possível e, em intervalos, vários conjuntos de mudanças "leves" serão refatorados para algo mais permanente e estável.
Dito isso, ainda não trabalhei com um desenvolvedor que subscreveu a teoria e a metodologia Agile e também pensei que a criação e a exclusão rotineiras de tabelas no esquema eram necessárias por qualquer motivo. Agile não significa slap-dash ou bolt-on. Se você receber uma história que exija a adição de um novo campo de dados pertencente a um registro específico, adicione o campo à tabela. Se essa mudança quebra alguma coisa, você descobre o porquê e faz outras alterações necessárias (posso pensar em poucas coisas que quebrariam adicionando uma coluna a um banco de dados que está sendo consultado; se ela romper com esse tipo de alteração, você problemas maiores). A refatoração é normalmente limitada ao código; alterar o esquema geralmente é um processo mais envolvido do que alterar o código; portanto, quando mudanças no esquema precisam ocorrer, elas geralmente são feitas com mais cuidado, e pelo menos alguma atenção prestada ao conhecimento da direção futura do projeto. Ter que reestruturar parte ou todo o banco de dados indica uma falha fundamental no design; Ser ágil não significa que não exista um "plano mestre" de regras básicas de arquitetura e design a serem seguidas ao criar organicamente o programa e a estrutura de dados.
Agora, existem casos no Agile em que o que você "sabe" agora será contradito pelo que aprenderá mais tarde. Digamos que você tenha um requisito de que seu sistema deve ter um endereço para cada pessoa. Como esse é um relacionamento 1: 1 e os dados serão necessários na maioria dos casos, basta adicionar os campos Endereço à tabela Pessoa. Uma semana depois, você recebe um requisito de que uma Pessoa pode ter mais de um Endereço. Agora é um relacionamento 1: N e, para modelá-lo adequadamente, você deve desfazer as alterações anteriores, dividindo os campos em uma nova tabela de endereços. Isso não é rotina, especialmente entre os desenvolvedores seniores. Um desenvolvedor experiente verá que uma Pessoa tem um Endereço, considere-os como conceitualmente separados e criará uma tabela de Pessoa e uma tabela de Endereço, vinculando Pessoa a Endereço com uma referência FK a um AddressID. Um esquema como esse é mais fácil de alterar, caso a natureza do relacionamento mude; sem criar ou excluir tabelas de dados "amplas" inteiras, o relacionamento entre Pessoa e Endereço pode ser facilmente modificado de 1: 1 para 1: N para N: N.