Eu trabalho para uma empresa de desenvolvimento de software onde o trabalho de desenvolvimento nos foi esquecido. A equipe em terra lida com o suporte e conversa diretamente com os clientes. Nunca conversamos diretamente com os clientes, apenas conversamos com pessoas da equipe on shore, que conversam diretamente com os clientes.
Quando os requisitos chegarem, a equipe em terra conversará com os clientes, fará os documentos de requisitos e nos informará. Criamos documentos de design depois de estudar os requisitos (seguimos o modelo tradicional em cascata).
Mas há um problema em todo o processo: ninguém na equipe offshore ou onshore entende a funcionalidade do aplicativo completamente. Sabemos apenas que é um aplicativo Web complexo e grande que lida com processamento complexo de pedidos, gerenciamento de catálogos, gerenciamento de campanhas e outras atividades. Lutamos com o documento de design, pois os requisitos não seriam claros. Em seguida, ele entra em uma série de perguntas / respostas entre a equipe on shore, a equipe off shore e os clientes. Frequentemente nos diziam para entender a funcionalidade do código. Mas isso geralmente não é viável, pois a base de código é enorme e até a compreensão de um item de menu simples leva dias, se não semanas. Tentamos dizer aos clientes para nos dar transferência de conhecimentosobre o aplicativo, mas sem sucesso. Nosso gerente costumava nos dizer para começar a codificar, mesmo que o documento de design não esteja completo ou os requisitos não estejam claros. Começamos codificando a parte dos requisitos que parece clara e aguardamos o resto.
Isso normalmente atrasaria a implantação em um mês. Em casos extremos, teríamos erros muito baixos no desenvolvimento e na produção, mas os clientes diriam que não foi isso que pediram. Isso iniciaria um jogo de culpa e uma série de solicitações de mudança e acabaríamos desenvolvendo algo muito diferente.
Minha pergunta é como você faria o trabalho de desenvolvimento se não conhecesse completamente a funcionalidade do aplicativo?
ATUALIZAR
A metodologia de desenvolvimento não é realmente minha escolha e não sou o líder da minha equipe. É assim que tudo começou. Tentei falar às pessoas sobre as vantagens do ágil, mas sem sucesso. Além disso, não acho que minha equipe tenha a mentalidade necessária para trabalhar em um ambiente ágil.