Protótipo é realmente necessário?

39 respostas
Fabricio_Cozer_Marti

Olá,

o que vocês acham da criação do protótipo ? Eles devem atender a quêm ? Ele é realmente útil ? E na programação ágil , existe a elaboração do protótipo ?

Surgiu esse questionamento, porque vejo que muitas atividades se prendem a criação de protótipos, sem necessidades, aí queria saber se alguém defende a utilização de protótipos e por quê ?

39 Respostas

Beren

Olha, nao defendendo nem criticando, mas fizemos o Prototipo da versao 1.0 do [modo propaganda=on]TraceGP[modo propaganda=off] e usavamos para apresentar aos clientes, e tambem para validar a interface com o analista, ver se era realmente isso que ele desejava e se atendia os requisitos de usabilidade definidos. Era engracado que quando alguem ia nos clientes, alguns queriam saber pq nao atualizava os dados… hehe mas era puro HTML O_O e um cliente quis saber qual servidor de aplicacoes rodava o prototipo hahaha.

O bom era que, feito o prototipo podiamos mudar meia duzia de coisas no HTML e jah estava feito o front-end! :-p

cv1

Sobre prototipos e programacao agil, a resposta eh: vai trazer algum valor pro cliente? Se sim, entao faz o prototipo, ue :wink:

C

Aqui na empresa, como os web-designers não sabem JSP, eles fazem o protótipo das telas e os programadores fazem o barato ficar dinâmico, inserindo as tagslibs e EL

Pedrosa

Eu acho válido a prototipação de sistemas, pois quando é apresentado ao cliente fica façil mudar alguma coisa caso o cliente não aprove, pois é simplesmente html sem nenhuma inteligência, e o cliente já vai ver a cara do sistema.

marcelomartins

Vale a pena sim fazer protótipos quando você tem pessoas especificas para fazer o protótipo (não programadores Java), e quando o código criado na prototipação pode ser utilizado na construção do sistema.

O problema do protótipo é que o cliente olha e diz: “- Ta pronto, agora só falta salvar no banco” :smiley:

louds

Protótipo é especialmente útil quando se está usando linguagens, frameworks ou metodologias com feedback demorado.

cv1

Bem lembrado. Tem inumeros casos aqui na empresa onde um ‘prototipo’ em Rails foi direto pra producao, pq o cliente se tocou que nao tinha o menor motivo pra desenvolver em Java a nao ser inercia.

louds

Bem lembrado. Tem inumeros casos aqui na empresa onde um ‘prototipo’ em Rails foi direto pra producao, pq o cliente se tocou que nao tinha o menor motivo pra desenvolver em Java a nao ser inercia.

Então nesse caso ou o sistema era simples demais ou o protótipo fazia muita coisa.

Um protótipo tem que focar em apenas um aspecto do sistema, normalmente a UI, e usar stubs para todo resto. No caso de projetos green field, ir do protótipo pro produto final é bem mais simples.

Fabricio_Cozer_Marti

Não sei ao certo qual é o protótipo correto, ou se existem diversos tipos de protótipos, que se adequam a situações diversas…

Um protótipo pode ser bem confeccionado, podendo se tornar já o próprio sistema, ou pode ser feito de forma funcional, sem se preocupar no entanto nos detalhes da aplicação ?

Questões como máscaras, validação, navegação, layout, simulações … devem estar presentes sempre ?

Outra coisa, um protótipo aprovado, vcs acham que um programador estaria mais apto a desenvolver o produto com qualidade ? Ou protótipo seria apenas para mostrar ao cliente ?

rodrigoy

É importante o protótipo sim! Ajuda muito a fechar requisitos e dá uma visão para o usuário de campos e navegação que não estão nos requisitos e nem no modelo de casos de uso (como exemplo). Sem o protótipo aprovado seu usuário vai falar: -“Não dá para colocar esse campinho mais para a direita. Não gostei da cor de fundo… Essa tela tem que ter o campo X, ou o Campo Y”. São coisas fáceis de mexer no protótipo e difíceis de mexer na aplicação rodando.

Mas cada projeto é diferente um do outro.

É importante que o protótipo acompanhe o desenvolvimento. Se é web faça em HTML, aí ele é reaproveitado sendo convertido para JSP, não vai fazer em PowerPoint como exemplo…

Rodrigo Yoshima
www.aspercom.com.br - Sua Escola de Análise de Sistemas

Fabricio_Cozer_Marti

Não vejo problema em se alterar um campinho mais pra direita ou mudar a cor de fundo depois que a aplicação estiver pronta, se isso for tão difícil assim, é melhor nem entregar o sistema, porque ninguém vai querer dar manuntenção no seu sistema.

Protótipo com certeza ajuda muito a entender como vai ser mostrado a disposição dos componentes, a navegação também como você falou, mas a quetão é fazer um protótipo muito rebuscado, bem detalhado não pode vir a atrasar o desenvolvimento ? Um programador deve sempre ter um protótipo pra se basear ? Quando o cliente deseja ter um dinamismo maior, realizando algumas modificações nas telas tem que manter sempre o protótipo atualizado ? Esse protótipo geralmente não é produzido com qualidade , e alterar 200 telas só pra manter atualizado, gera um desconforto … é por isso que perguntei se em desenvolvimento ágil ele é usado.

cv1

Então nesse caso ou o sistema era simples demais ou o protótipo fazia muita coisa.

Um protótipo tem que focar em apenas um aspecto do sistema, normalmente a UI, e usar stubs para todo resto. No caso de projetos green field, ir do protótipo pro produto final é bem mais simples.[/quote]

Os prototipos eram pra projetos greenfield, e so tinham que falar com banco de dados local (ou seja, prato cheio pra Rails). Dai fica facil. Em outros casos, como no projeto que eu tou trabalhando agora, a gente fez o prototipo em Rails, mas pra falar com a mainframaiada toda teve que usar Java (e ai de quem tentasse comprar a briga pra rodar FastCGI no WebSphere 4…)

Beren

Fabrício Cozer Martins:
Não vejo problema em se alterar um campinho mais pra direita ou mudar a cor de fundo depois que a aplicação estiver pronta, se isso for tão difícil assim, é melhor nem entregar o sistema, porque ninguém vai querer dar manuntenção no seu sistema.

Protótipo com certeza ajuda muito a entender como vai ser mostrado a disposição dos componentes, a navegação também como você falou, mas a quetão é fazer um protótipo muito rebuscado, bem detalhado não pode vir a atrasar o desenvolvimento ? Um programador deve sempre ter um protótipo pra se basear ? Quando o cliente deseja ter um dinamismo maior, realizando algumas modificações nas telas tem que manter sempre o protótipo atualizado ? Esse protótipo geralmente não é produzido com qualidade , e alterar 200 telas só pra manter atualizado, gera um desconforto … é por isso que perguntei se em desenvolvimento ágil ele é usado.

Mauricio, quando entrei na empresa comecei fazendo o prototipo, sempre fui um cara ligado ao front-end e tal entao foi um approach que consegui desenvolver tranquilo (nao conhecia Java de verdade) entao estavamos mudando o layout de TODA a aplicacao, ao mesmo tempo que eu aprendia sobre a aplicacao em si, aprendia sobre JSP/Struts e EJB (naquele tempo usavamos EJB) eu dava suporte a um prototipo que era utilizado como esboco para os desenvolvedores aplicarem na aplicacao, na epoca foi uma ideia excelente eu acho e um jeito bem interessante de se utilizar mais de um prototipo :wink:

S

Acho protótipo excelente, pois o Cliente vê o que está levando e não ocorrerão (Muitos) problemas quanto a mudança de interface.
Além disto, dependendo de como você fizer o protótipo, você pode aproveita-lo em sua implementação facilitando o desenvolvimento.

Abraços

Samuel

cv1

Um bom prototipo nao serve pra evitar mudancas, serve pra encoraja-las :wink:

rodrigousp

Uma idéia…

Abrir o nvu  e rabiscar a idéia.

Enquanto (o rasbisco não estiver legal ) {

Conversar com a equipe,

Conversar com o cliente e

rabiscar um pouco mais.

}

Pegar o código-fonte e postá-lo no wiki do projeto, ou gravá-lo no diretório doc do projeto e protegê-lo no controle de versões.

Assim, rascunho = protótipo = documento.

Fabricio_Cozer_Marti

Fala rodrigo,
cara eu particularmente não gostei muito do NVU não … achei complicado criar protótipos nele, tinha horas que ele salvava, e outras não, outras ele não apresentava fielmente o layout no modo design , tinha que usar o browser mesmo, enfim, não serviu muito não, principalmente para as pessoas que não conheciam muito bem html, e foi usar.

Aproveitando, existe alguma ferramenta pra design melhor pra usar no linux que não seja o NVU ? Algo que um analista que não programa muito, pudesse usar ?

rodrigousp

Fala Fabrício,
Olha … o nvu melhorou bastante (e eu não enfretei esses problemas que você falou). Mas se essa última versão ainda não está Ok, aí você está num mato sem cachorro. Possivelmente a melhor opção seria utilizar o OpenOffice2 (que tem um modúlo para Web: o Writer/Web. O código gerado não é (tão) ruim _ pena que o OO2 não consegue trabalhar com xhtml ainda).

:wink:

S

cv:

Um bom prototipo nao serve pra evitar mudancas, serve pra encoraja-las ;)

Sim… mudanças no protótipo, não no produto pronto.

cv1

Samuel_Pessorrusso:
cv:

Um bom prototipo nao serve pra evitar mudancas, serve pra encoraja-las ;)

Sim… mudanças no protótipo, não no produto pronto.

Verdade. So tem um problema na sua afirmacao: “produto pronto” nao existe quando se fala de software. :wink:

Fabricio_Cozer_Marti

A definição de Produto na área de software hoje é muito relativa, um serviço pode ser um produto, uma manutenção pode ser um produto, um aplicativo versão X.X pode ser um produto, enfim em todo o caso quando se define o protótipo de algum produto, está dizendo o seguinte: "Agora vamos unir forças para construir um produto que deve estar de acordo com este protótipo "

Hoje em dia, na área de arquitetura tem aquelas maquetes, na de engenharia um protótipo de um avião, um carro, um edifício, agora na área de software, principalmente na área de desenvolvimento, e principalmente ainda mais na área de desenvolvimento ágil, seria realmente útil construir esse protótipo ?

O cliente por exemplo depois pode querer mudar os requisitos e acaba mudando o protótipo , e nesse caso seria mais um artefato a ser atualizado, no entanto eu particularmente não sei ainda se a construção de um layout bem elaborado seria interessante, isso também pode depender do tipo de projeto, se o cliente quer um sistema totalmente engessado, que ele acha que vai durar 100 anos como um edifício, tudo bem … aí acho completamente válido.

rodrigousp

Sabe aquela história de XP de manter um quadro negro no local de desenvolvimento para auxiliar na comunicação do grupo!? Então… inventaram o tal de wiki para servir como um quadro negro virtual.

Pensando nisso, eu acho que da mesma forma que você poderia desenhar no quadro negro o layout do cliente (na tranqüilidade, apenas um diagrama de vaga idéia) … você também poderia desenhá-lo num wiki ou mesmo num arquivo eletrônico e guardá-lo num controle de versões. A idéia é fazer telas espartanas, como você desenharia num quadro negro… sem emperrar o desenvolvimento, e guardando a serventia do artefato, que aliás pode ser reutlizado como código fonte do desenvolvimento.

Ideal mesmo é, ao testar o programa, automagicamente atualizar alguns arquivos (digamos html) que seria uns screenshots do programa. Desse jeito a documentação (do visual) e o projeto passam a ser um só e você não vai precisar mais ter que se preocupar em atulizar esse documento.

fmeyer

rodrigousp:
Sabe aquela história de XP de manter um quadro negro no local de desenvolvimento para auxiliar na comunicação do grupo!? Então… inventaram o tal de wiki para servir como um quadro negro virtual.

ps. O pessoal prefere o whiteboard :twisted: eh mais bonitinho e nao da alergia. hehehehehe

nefertiti

Olá…

Um protótipo é de extrema importância…faz com que o seu cliente possa visualizar de uma forma ‘palpável’ aquilo que ele quer que você faça, apontando os erros e acertos, o que deve ser incluido ou retirado do software. Assim passa a existir um feedback entre o desenvolvedor e o usuário. Até por experiência própria, aconselho o uso de protótipos.

Até mais

Patty

F

Os problemas que eu vejo com relação a prototipação são:

  • O cliente quando ve o prototipo acha que já tá pronto o sistema, ou que só falta “ligar” no BD.
  • Ou vc destrincha o prototipo totalmente com o cliente (antes de começar a “codar”) isso significa que vc esta usando um processo não ágil.
  • Usando um processo ágil cada iteração deve ser “entregue” ao cliente, então isso serve como uma “prototipação”
  • Vc gastar muito esforço com o prototipo, e depois não ter tempo para o desenvolvimento em si. De duas uma, ou vc atrasa ou alguem com tem a brilhante ideia de pegar o prototipo e colocar o codigo por trás.
nefertiti

Com certeza. Pelo menos no RUP, a utilização de ‘pequenos protótipos’ é recomendada porque a cada iteração realizada você pode mostrar ao cliente. Ocorre uma evolução do protótipo até chegar ao ‘produto final’ (apesar que não existe produto final porque o software nunca é finalizado completamente… :D…sempre existem modificações a fazer )

Até mais

Patty

F

nefertiti:
flaleite:

  • Usando um processo ágil cada iteração deve ser “entregue” ao cliente, então isso serve como uma “prototipação”

Com certeza. Pelo menos no RUP, a utilização de ‘pequenos protótipos’ é recomendada porque a cada iteração realizada você pode mostrar ao cliente. Ocorre uma evolução do protótipo até chegar ao ‘produto final’ (apesar que não existe produto final porque o software nunca é finalizado completamente… :D…sempre existem modificações a fazer )

Até mais

Patty

Você considera RUP um processo ágil?

rodrigousp

flaleite:
nefertiti:

Com certeza. Pelo menos no RUP, a utilização de ‘pequenos protótipos’ é recomendada porque a cada iteração realizada você pode mostrar ao cliente.

Você considera RUP um processo ágil?

Acho que essa pergunta (alfinetada) não cabe nesta discussão. O que a Paty falou é que no RUP, recomenda-se a utlização de protótipo para que se tenha algo ostensivo no final de cada interação. Processos ágeis, que também são interativos podem compartilhar dessa mesma recomendação.

nefertiti

Concordo com o que o rodrigousp falou. Em nenhum momento eu disse que o RUP é um processo ágil. Você interpretou erroneamente o que eu disse.

Até mais

Patty

F

nefertiti:
Concordo com o que o rodrigousp falou. Em nenhum momento eu disse que o RUP é um processo ágil. Você interpretou erroneamente o que eu disse.

Até mais

Patty

Desculpa não quis dar uma alfinetada…

Só queria entender sua resposta… Não liguei o meu comentario “quotado” com o seu comentario…

Eu quis dizer naquele item: Nos processos ageis vc já deve “entregar” o “produto” no final de cada iteração ao seu cliente, por isso não faz sentido criar um prototipo nesse caso…

nefertiti

Olá…

Tudo bem…discussão é bom por causa disso…várias opiniões e pontos de vista. O ruim de se escrever é que as vezes os que dizemos não condiz com o que pensamos…ai já viu…acho que também acabei não me expressando muito bem. Não se preocupe… :wink:

Até mais

Patty

ciciliaartista

Olá pessoal,

estou precisando fazer um protótipo para um sistema que será feito com JSF, estou começando a pesquisar sobre o assunto, a minha dúvida é que ferramenta usar, há um tempo atrás eu usava o Fireworks para protótipos de sistemas em PHP, mas no caso de Java com Jsf, como normalmente pe feito o protótipo?

faelcavalcanti

ciciliaartista:
Olá pessoal,

estou precisando fazer um protótipo para um sistema que será feito com JSF, estou começando a pesquisar sobre o assunto, a minha dúvida é que ferramenta usar, há um tempo atrás eu usava o Fireworks para protótipos de sistemas em PHP, mas no caso de Java com Jsf, como normalmente pe feito o protótipo?


se para vc for mais produtivo, talvez sim, mas seria mais interessante você procurar saber como a equipe de desenvolvimento espera receber este protótipo, pois você já parou para ver o código final que ele gera?

procure tentar equilibrar o que facilita para você e equipe de desenvolvimento.

ciciliaartista

Hum…
onde voce trabalha o que voces usam??
no caso do Fireworks ele gera html e css puro,
eu teria que adaptar tudo pra jsp para a camada de visao do jsf?

R

qual o problema em programadores prototiparem? :smiley:

o protótipo não deve ser apenas um html “burro”,que serve mais pra validar a interface com o usuário?

abraços!

cv1
faelcavalcanti

ciciliaartista:
Hum…
onde voce trabalha o que voces usam??

no projeto que me encontro o próprio cliente o especifica. ainda não sabemos qual ferramenta é utilizada, mas para nós tanto faz, o importante é que esteja válido e possa representar a navegação do sistema.

ciciliaartista:
no caso do Fireworks ele gera html e css puro,
eu teria que adaptar tudo pra jsp para a camada de visao do jsf?

se você for efetuar apenas o papel do webdesigner não é necessário adaptar, pois isto é de responsabilidade do desenvolvedor, mas caso você queira desenvolver aprendizado e entender como as coisas funcionam, acho válido.

Lembre-se de acertar com a equipe de desenvolvimento ou arquiteto do projeto como deve ser esperado este repasse de artefato, ou seja, o protótipo! É interessante que alguém esteja validando isto com você, como analista de negócios.

Java_Boy

Hm, fiquei com uma dúvida, o rodrigousp falou a respeito do wiki e de jogar o layout do protótipo nele. Então seria por exemplo uma área do wiki pra navegação de protótipos apenas?

E falando de wiki´s, num momento atoa dei uma fuçada para ver se existia coisa pronta e achei algums opções dentre elas a wetpaint . Costumam usar algo semelhante ou é algo mais simples e direto mesmo?

[]s

faelcavalcanti

de forma alguma. o seu protótipo deverá ser independente da wiki, mas na wiki poderá ter um link(gancho) para acessar o protótipo.


Criado 22 de abril de 2006
Ultima resposta 1 de set. de 2008
Respostas 39
Participantes 17