O problema ao qual você está se referindo significa que várias coisas foram ignoradas; portanto, o sistema resultante deu errado. Deixe-me descrever algumas das etapas ausentes:
Gestão da Qualidade - Faça certo da primeira vez! Nunca use hacks temporários ou compromissos temporários. Não haverá retrabalho necessário. Todos os recursos são usados com eficiência e tudo o que você faz é uma contribuição adequada para o projeto.
Análise de viabilidade - Descubra as necessidades de negócios. Crie um caso de negócios para o projeto.
Plano do projeto - defina claramente seu escopo inicial, planeje como a solução será entregue, crie uma linha de base e atenha-se ao plano. Não gaste tempo com nada que não esteja no caminho crítico.
Engenharia de requisitos - Elicite requisitos de negócios (por exemplo, capture processos de negócios e determine quais operações de negócios devem ser suportadas pelo sistema computadorizado, traduza operações de negócios 1: 1 para casos de uso do sistema). Valide e verifique! (estamos construindo a coisa certa? Estamos construindo a coisa certa?) Todos os requisitos devem estar vinculados à necessidade comercial original.
Design de software - traduza casos de uso e modelo de domínio em design de componentes e arquitetura de soluções. Todos os componentes devem estar vinculados aos requisitos do ER.
Implementação - Codifique o software como no design. Todo o código deve estar vinculado aos componentes do SD.
Validação - Teste de unidade, teste de integração, desempenho, ... (todos os casos de uso do ER agora precisam ser testados)
Esses são alguns aspectos principais de um processo de software. As atividades mencionadas fazem parte da Engenharia de Software. É assim que você cria a solução de software certa para as necessidades reais dos negócios e a desenvolve dentro do prazo, do orçamento e da especificação.
Consulte estes termos para criar um software melhor e corrigi-lo da primeira vez:
- Análise de viabilidade (especialmente como construir um Business Case)
- Gerenciamento de projetos (esp. Plano do projeto e registro de riscos com mitigação de riscos)
- Engenharia de Requisitos (elicitação, análise, especificação, validação)
- Design de software (UML e engenharia de software baseada em componentes)
- Construção de software (padrões de design, estruturas, programação defensiva)
- Validação de software (teste de unidade, UAT, etc.)