Pergunta

Quem está vencendo no "Low vs alta fidelidade prototipagem" debate? Deve protótipo de zero (P0) ser a primeira versão do produto final? Ou deveria ser P-0 sempre uma descarga? Qual abordagem é o favorecimento da indústria?

artigo Excelent da wikipedia: Software prototipagem

Foi útil?

Solução

Um protótipo deve ser sempre uma descartável - um protótipo é usado para rapidamente provar um conceito e influenciar a concepção do produto real. Como tal, um monte de coisas que são importantes para um produto real (a arquitetura e design pensamento-out, confiabilidade, segurança, manutenção, etc.) cair no esquecimento. Se você tomar essas coisas em consideração ao construir seu protótipo, você não está realmente construindo um protótipo mais.

A minha experiência com protótipos onde o código diretamente evoluiu para uma mostra de produtos reais que sofre o resultado final por causa disso - a falta de uma arquitetura real, resultou em um monte de código-together calçada que tinha de ser constantemente cortado para adicionar Novas características. Eu mesmo vi um caso a tecnologia original escolhido para o rápido desenvolvimento do protótipo não foi a melhor escolha para o produto real, e uma re-escrita completa era necessária para V2.

Outras dicas

Escreva o protótipo, em seguida, manter refatoração-lo até que se torne o produto. A chave é não hesite em refatorar quando necessário.

Ela ajuda a ter poucas pessoas trabalhando nisso inicialmente. Com muitas pessoas trabalhando em algo, refatoração se torna mais difícil.

Eu penso que nós, os pedantes, perderam esta batalha particular - alegada "protótipos" (que por definição deve ser reescrita a partir do zero !!! -) estão de facto a ser "evoluído" em (muitas vezes meia-boca "betas"), etc.

Ainda hoje, eu aplaudido na tentativa inteligente por um colega meu para recapturar a conceito , mesmo que o termo é uma batalha perdida: ele está a criação de uma forma de provas do conceito pequenos projetos a serem desenvolvidos (e, se o conceito não se comprovada, transferido para engenheiros de software para prototipagem real, então o desenvolvimento).

A idéia é que, no nosso departamento, nós temos muitas pessoas que não são (e não são, de facto, deveria ser -!) Desenvolvedores de software, mas são muito inteligente, experiente de computador e em contato diário com a realidade "nas trincheiras" - que são os que têm mais probabilidade de cheirar uma oportunidade para algum potencial de inovação que pode ter impacto real uma vez implementado como um "produção- ready" projeto de software. Vendedores, gerentes de contas, analistas de negócios, gerentes de tecnologia -. Em nossa empresa, todos eles muitas vezes se encaixam nessa descrição

Mas eles não vão para o programa em C ++, quase nada em Java, talvez em Python, mas milhas de distância "productionized" - na verdade, eles são muito mais propensos a preparar uma prova inteligente do conceito em php, javascript, perl, bash, Excel + VBA, e diversas outras tecnologias "rápida e suja" não quero nem sonhar sobre productionizing e apoiar para sempre! -)

Então, chamando os seus protótipos "provas de conceito", esperamos incentivá-los a incorporar os seus conceitos ousados ??em forma concreta (blabberings de linguagem natural vago e muito acenar de mãos sendo menos útil, e alheio à cultura da companhia de qualquer maneira; -) e ainda fortemente indicam que tais projectos, se promoveu a existir entre objetivos e prioridades dos engenheiros de software, tem que ser programado a partir do zero - o serve de prova de conceito, na melhor das hipóteses, como um bom projecto / spec esboço para o que os engenheiros estão apontando para, definitivamente não deve ser incrementalmente enriquecido, mas refeito a partir da raiz para cima -!).

É cedo para dizer quão bem essa idéia funciona - pergunte-me em três meses, quando avaliamos esforços do trimestre (no momento, estamos apenas fornecendo um modelo para eles, quente nos saltos de avaliação última empresas department- e empresa-wise trimestre -!).

Resposta do BUNDALLAH, Hamisi

Um protótipo normalmente simula apenas alguns aspectos das características do eventual programa, e pode ser completamente diferente da eventual implementação. Ao contrário do que meus outros colegas têm sugerido acima, eu não aconselharia meu chefe para opt para o modelo de protótipo jogar fora. Estou com Anita nisso. Dado os dois modelos de protótipos e as circunstâncias fornecido, eu recomendo fortemente a gestão (meu chefe) para opt para o modelo de protótipo evolutivo. A empresa ser grande, com todas as outras variáveis ??dadas como a complexidade do código, a novidade da linguagem de programação para ser usado, eu não usaria jogar fora modelo de protótipo. O modelo protótipo jogar fora se torna o ponto a partir do qual os usuários podem re-examinar suas expectativas e esclarecer as suas necessidades. Quando isso tiver sido alcançado, o modelo de protótipo é 'jogado fora', eo sistema é formalmente desenvolvido com base nas necessidades identificadas (Crinnion, 1991). Mas com esta situação, os usuários podem não saber todos os requisitos de uma só vez, devido à complexidade dos factores dados nesta situação particular. prototipação evolucionária é o processo de desenvolvimento de um sistema de computador por um processo de refinamento gradual. Cada refinamento do sistema contém uma fase de desenvolvimento especificação de sistema e software. Em contraste com tanto a abordagem em cascata tradicional e prototipagem incremental, que exigia que todos possam obter tudo certo na primeira vez que esta abordagem permite que os participantes a refletir sobre as lições aprendidas a partir do ciclo anterior (s). É comum passar por três desses ciclos de refinamento gradual. No entanto, há nada que impeça um processo de evolução contínua, que é frequentemente o caso em muitos sistemas. De acordo com Davis (1992), uma prototipação evolucionária reconhece que nós não entendemos todos os requisitos (como já foi dito acima que o sistema é complexo, a empresa é grande, o código vai ser complexo, ea linguagem é bastante novo para a equipe de programação). O principal objetivo ao usar Evolutionary Prototipagem é construir um protótipo muito robusto de uma forma estruturada e constantemente refiná-lo. A razão para isto é que o protótipo Evolutiva, quando construído, forma o coração do novo sistema, e as melhorias e outras exigências serão construídas. Esta técnica permite que a equipe de desenvolvimento para adicionar recursos, ou fazer alterações que não poderiam ser concebidas durante os requisitos e fase de projeto. Para um sistema para ser útil, deve evoluir através de utilização em seu ambiente operacional pretendido. Um produto nunca é "feito"; é sempre amadurecendo como a mudança ambiente de utilização. Os desenvolvedores geralmente tentam definir um sistema usando seu quadro mais familiar de referência - onde eles estão atualmente (ou melhor, o estado atual do sistema). Eles fazem suposições sobre a forma como os negócios serão realizados e a base tecnológica sobre a qual o negócio será implementado. Um plano é promulgada para desenvolver a capacidade e, mais cedo ou mais tarde, algo parecido com o sistema Envisioned é entregue. (SPC, 1997). Evolutivos Protótipos têm uma vantagem sobre Throwaway Protótipos em que eles são sistemas funcionais. Embora eles não podem ter todas as características dos usuários não planejado, eles podem ser usados ??de forma interina até que o sistema final é entregue. Em Evolutionary Prototipagem, os desenvolvedores podem concentrar-se a desenvolver partes do sistema que eles entendem em vez de trabalhar no desenvolvimento de um sistema inteiro. Para minimizar o risco, o desenvolvedor não implementar recursos mal compreendidos. O sistema parcial é enviado para sites de clientes. Como os usuários trabalham com o sistema, eles detectam oportunidades para novos recursos e dar solicitações para esses recursos para desenvolvedores. Desenvolvedores em seguida, tomar essas solicitações de melhoria, juntamente com as suas práticas de gestão de configuração própria e usar o som para mudar o software de requisitosespecificação, atualizar o design, recode e reteste. (Bersoff e Davis, 1991). No entanto, os principais problemas com prototipação evolucionária são devido à má gestão: Falta de marcos definidos, falta de realização - sempre colocando fora o que seria no presente protótipo até a próxima, a falta de avaliação adequada, falta de clareza entre um protótipo e um sistema implementado, a falta de compromisso contínuo dos usuários. Este processo requer um grau maior de compromisso sustentado dos usuários por um período mais longo do que tradicionalmente se necessário. Os usuários devem ser constantemente informado sobre o que está acontecendo e estar completamente ciente das expectativas dos 'protótipos'.

As referências

Bersoff, E., Davis, A. (1991). Impactos do Ciclo de Vida Modelos de Software de Gerenciamento de Configuração. Comm. ACM.

Crinnion, J. (1991). Evolutionary Development Systems, um guia prático para o uso de protótipos dentro de uma metodologia de sistemas estruturados. Plenum Press, New York.

Davis, A. (1992). Prototipagem Operacional: Uma nova abordagem para o Desenvolvimento. IEEE Software.

Software Produtividade Consortium (SPC). (1997). Evolutionary rápido desenvolvimento. documento SPC SPC-97057-CMC, versão 01.00.04.

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