Jogando fora o seu primeiro projecto de trabalho - há uma metodologia compatível? [em espera]

StackOverflow https://stackoverflow.com/questions/1024668

Pergunta

Existem metodologias de programação que levam em conta o conceito de que a primeira rodada de código escrito é provável que não ser o que você deseja usar? A coisa mais comum que ouço no final de um projeto de um desenvolvedor é 'Se eu pudesse fazer isso de novo, eu faria de modo diferente.' Isso é quase um espelho exato do processo de um escritor atravessa depois de escrever um primeiro esboço. A diferença parece ser que escritores, em seguida, reescrever e reescrever novamente até que estejam prontos para entrar na fase de edição, enquanto os desenvolvedores parecem gravação e, em seguida, refinar seu primeiro projecto com o teste e refatoração.

Eu sou certamente nenhum fã de tentar usar analogias alternativos para definir o processo de desenvolvimento, mas eu acho que há valor em reconhecer que o seu primeiro projecto é apenas para obter ideias para baixo, você precisa de mais reescreve a fim de produzir algo de valor . Eu só não acho que eu já encontrou um processo de programação ou metodologia de projeto que reconhece que, então eu estava esperando que a grande consciente coletivo de Stackoverflow pode ter uma idéia de onde eu poderia começar a explorar esta possibilidade?

Foi útil?

Solução

Prototipagem parece resolver o problema de alguma forma. A wikipedia artigo sobre nomes de prototipagem uma abordagem chamada 'Throwaway prototipagem' que parece em linha com o seu modo de pensamento.

Outras dicas

O que você está descrevendo é chamado descartável prototipagem . A ideia é que, assim como você tem suas necessidades preliminares, você cria um modelo básico do sistema para mostrar ao usuário e / ou cliente o que o sistema final pode parecer e como ele pode funcionar (embora não há nenhuma funcionalidade real). O usuário fornece feedback sobre este protótipo.

Se você queria utilizar descartável prototipagem, a minha primeira sugestão seria a de começar a olhar para o modelo de processo espiral. No entanto, eu não estou familiarizado com muitas metodologias que utilizam explicitamente descartável prototipagem. Os mais metodologias "ágeis" favorecer prototipagem evolutiva ou prototipagem incremental. A única vez que eu usei nunca pessoalmente descartável prototipagem foi ao protótipo apenas a interface de usuário, como o sistema subjacente já em desenvolvimento foi e eu usei quadros brancos e caneta e papel para os protótipos.

Além disso, esta é uma das idéias de Brooks que ele mesmo não encontradas o mais eficaz depois de alguma revisão: você provavelmente já ouviu falar de "jogar fora dois sistemas depois de planejar a jogar fora apenas um". Felizmente muitos desses problemas podem ser superados nos dias de hoje graças a metodologias ágeis.

Este é exatamente o argumento de que Bruce Eckel está fazendo aqui .

Eu diria que a melhor coisa a fazer é modularize muito bem. Por exemplo, se você estiver escrevendo um kernel, a função "Obter o próximo quadro memória livre disponível" deve residir na sua própria função. Dessa forma, quando você descobrir o que está escrito de uma forma muito ruim, você apagar simples (é claro que você está usando controle de versão) e começar do zero. Dessa forma, existem os módulos existentes como uma forma de testar o novo código.

Indo do início ao fim e, em seguida, começar a terminar novamente é uma maneira impressionante de passar por uma grande percentagem dos mesmos erros novamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top