Quando sou contratado para o desenvolvimento de uma nova aplicação eu sei que esse novo cliente, futuro usuário da aplicação a ser desenvolvida, realmente não sabe o que quer.
Esse fato é uma realidade e que ocorre por diversas razões.
Primeiramente ele resolve informatizar ou automatizar um processo, por que ouviu falar que vai aumentar a produtividade do seu negócio, ou então por que viu algo parecido em algum lugar ou por que não quer ficar para trás.
É feito um levantamento das necessidades, um projeto é elaborado, uma solução proposta é aceita e desenvolvida. A partir desse instante o processo na empresa é outro. A automação do processo provoca modificações na empresa. O usuário começa a ter “mil ideias”. Ele descobre como as coisas realmente funcionam e ele quer melhorar alguma coisa, ou modificar outro detalhe que não está funcionando adequadamente.
Em algumas situações as mudanças ocorrem por pressões externas, tipo novas imposições legais e fiscais. Em outros casos essas modificações são decorrentes da própria dinâmica dos negócios que estão em constante evolução, modificação, adequação a novas realidades e por aí vai.
Inclusive o comportamento dos funcionários é modificado. Existe uma nova realidade e eles têm que se adequar a ela.
Eles geram novas solicitações e novas demandas. Agora não é apenas o dono que participa do processo, mas também todos os usuários do sistema se envolvem.
A aplicação é como um ser vivo e muito dinâmico. Se você desenvolveu uma aplicação e nunca mais foi solicitado a implementar algum tipo de modificação, provavelmente a aplicação não teve o desempenho esperado ou então ela não foi corretamente desenhada.
Existe ainda a alternativa da empresa ser extremamente conservadora e altamente burocratizada e com uma tremenda resistência a mudanças.
Em suma o usuário nunca sabe o que quer e se você tem aplicação e não modifica ela, atualiza ela, incremente ela, pode ter certeza de que ela está morta.