PMBOK: Técnicas Coleta Requisitos - Protótipos
A utilização de protótipos para a coleta de requisitos (prototipagem) é uma técnica usada numa grande variedade de casos, nomeadamente quando necessitamos de obter rapidamente informações específicas sobre os requisitos de informação do utilizador. Nos últimos anos tem sido usado com êxito em projetos de desenvolvimento de produtos ou sistemas de software, quando se pretende manter o utilizador envolvido no projeto ou como forma de disponibilizar mais rapidamente algumas das funcionalidades do sistema.
Um protótipo é um modelo do produto final. Permite avaliar as reações do utilizador, ao produto que está a ser criado, facilitando a identificando dos requisitos do produto. Pode igualmente ser usado para a realização de testes de funcionalidades, segurança e qualidade.
Sendo algo que o utilizador pode ver e experimentar, o protótipo permite que os utilizadores experimentem algo que se aproxima do produto final em vez de se limitarem a discutir representações abstratas dos requisitos.
Os protótipos, nomeadamente os protótipos incrementais, suportam o conceito de desenvolvimento ágil e incremental, na medida em que recorrem a um processo de desenvolvimento baseado em ciclos iterativos de criação de modelos cada vez mais próximos do produto final, experimentação por parte dos utilizadores, coleta de opiniões e de requisitos a introduzir nos ciclos de desenvolvimento posterior.
Este tipo de protótipo é também uma ferramenta muito útil para ajudar o cliente a prioritizar as diversas funcionalidades.
Tipicamente o recurso a protótipos permite capturar os seguintes tipos de informação:
Reações iniciais do utilizador: Como o utilizador se sente em relação ao sistema que está a ser desenvolvido. As reações ao protótipo podem ser obtidas através da observação, entrevistas, questionário ou relatório de avaliação;
Sugestões do utilizador para melhoria: A utilização de um protótipo torna mais fácil ao utilizador aperceber-se da forma como o sistema irá funcionar. As sugestões de melhoria surgem mais facilmente porque o utilizador não tem de imaginar o que o sistema faz;
Inovações: Ao facilitar a participação do utilizador numa fase inicial do projeto (coleta de requisitos), potenciam a identificação por parte do utilizador de aspetos a melhorar, sendo que muitos deles podem representar verdadeiras inovações. Por outro lado ao ver a atuação do utilizador o técnico de desenvolvimento pode aperceber-se da necessidade de novas funcionalidades que anteriormente não tinham sido percebidas;
Informação sobre prioridades: A utilização do protótipo facilita a recolha de informação para a prioritização dos diversos requisitos. Informação precisa sobre as prioridades permite uma melhor adequação dos planos do projeto.
Tipos de Protótipos
Existem essencialmente 2 tipos distintos de protótipos:
Protótipo para Usar e Deitar Fora – São essencialmente protótipos exploratórios e comportamentais, projetados para testar algumas suposições importantes sobre o sistema ou produto que se pretende desenvolver, pequenos grupos de funcionalidades ou parcelas especificas do sistema final. Um caso típico deste tipo de protótipos é quando usamos “Powerpoint” para desenhar o layout dos écrans / telas de determinada aplicação e a correspondente sequência de apresentação com o intuito de validar com o utilizador se toda a informação necessária está presente e se o fluxo do processo está de acordo com as tarefas que tem de desempenhar.
Não sendo objetivo deste tipo de protótipos que eles se venham a transformar no produto final, existe uma grande liberdade na escolha das ferramentas que podemos usar. Para além disso não existem grandes preocupações com a qualidade (Por exemplo no caso do desenvolvimento de um sistema informático, um protótipo exploratório pode ser desenvolvido em Java mesmo que, por questões de performance o sistema esteja a ser desenvolvido em linguagem C, a qualidade do código produzido não é importante, queremos é ter o protótipo pronto rapidamente, e não serve para avaliar questões como o tempo de resposta).
Protótipo Incremental – São protótipos evolutivos e estruturais, geralmente desenvolvidos na mesma linguagem de programação e com recurso às mesmas ferramentas com as quais irá ser criado o produto final. Aliás este tipo de protótipo é o produto final em construção.
Os protótipos evolutivos, como o nome sugere, evoluem de uma iteração para a seguinte. Dado que estamos a desenvolver um produto que, interação após interação se irá transformando no produto final, as questões de qualidade devem estar presentes desde o início. A necessidade de gestão e o controlo da repetição do trabalho que, naturalmente, acontecem neste tipo de protótipos, obriga a uma maior preocupação com o planeamento das funcionalidades a implementar devendo ser testados com uma certa formalidade mesmo nos estágios iniciais.
Para saber que tipo de protótipo se adequa melhor às necessidades específicas de um determinado projeto deve avaliar o tipo de problema que pretende resolver, a solução a ser apresentada e a complexidade.
Diretrizes para o Desenvolvimento de um Protótipo
Construa o protótipo rapidamente - A construção de um protótipo na fase de análise e especificação de requisitos não pode consumir tempo em demasia, caso contrário perde sua finalidade. Para acelerar a construção, use ferramentas adequadas.
Modifique o protótipo em iterações sucessivas – Se estiver a usar um protótipo evolutivo não se esqueça de programar avaliações periódicas (o período que irá ser definido deve adaptar-se ao tipo de funcionalidades a desenvolver) elas irão marcar o passo do seu projeto já que, a cada nova interação, deverão ter sido incluídas novas funcionalidades, e que introdução de novas funcionalidades deve obedecer as prioridades que foram definidas pelo utilizador.
Enfatize a interface com o utilizador – Uma das áreas onde os protótipos são mais úteis é no desenvolvimento das interfaces do sistema com os utilizadores. As interfaces do protótipo devem permitir que o utilizador interaja facilmente com o sistema. Deve ser requerido um mínimo de formação (as dúvidas potenciais devem ser minimizadas e a interface deve incluir as funcionalidades necessárias para que os erros sejam minimizados).
Vantagens e Desvantagens da Prototipagem
Os protótipos, nomeadamente os protótipos incrementais, suportam o conceito de desenvolvimento ágil e incremental, na medida em que recorrem a um processo de desenvolvimento baseado em ciclos iterativos de criação de modelos cada vez mais próximos do produto final, experimentação por parte dos utilizadores, coleta de opiniões e de requisitos a introduzir nos ciclos de desenvolvimento posterior.
Este tipo de protótipo é também uma ferramenta muito útil para ajudar o cliente a prioritizar as diversas funcionalidades.
Tipicamente o recurso a protótipos permite capturar os seguintes tipos de informação:
Reações iniciais do utilizador: Como o utilizador se sente em relação ao sistema que está a ser desenvolvido. As reações ao protótipo podem ser obtidas através da observação, entrevistas, questionário ou relatório de avaliação;
Sugestões do utilizador para melhoria: A utilização de um protótipo torna mais fácil ao utilizador aperceber-se da forma como o sistema irá funcionar. As sugestões de melhoria surgem mais facilmente porque o utilizador não tem de imaginar o que o sistema faz;
Inovações: Ao facilitar a participação do utilizador numa fase inicial do projeto (coleta de requisitos), potenciam a identificação por parte do utilizador de aspetos a melhorar, sendo que muitos deles podem representar verdadeiras inovações. Por outro lado ao ver a atuação do utilizador o técnico de desenvolvimento pode aperceber-se da necessidade de novas funcionalidades que anteriormente não tinham sido percebidas;
Informação sobre prioridades: A utilização do protótipo facilita a recolha de informação para a prioritização dos diversos requisitos. Informação precisa sobre as prioridades permite uma melhor adequação dos planos do projeto.
Tipos de Protótipos
Existem essencialmente 2 tipos distintos de protótipos:
Protótipo para Usar e Deitar Fora – São essencialmente protótipos exploratórios e comportamentais, projetados para testar algumas suposições importantes sobre o sistema ou produto que se pretende desenvolver, pequenos grupos de funcionalidades ou parcelas especificas do sistema final. Um caso típico deste tipo de protótipos é quando usamos “Powerpoint” para desenhar o layout dos écrans / telas de determinada aplicação e a correspondente sequência de apresentação com o intuito de validar com o utilizador se toda a informação necessária está presente e se o fluxo do processo está de acordo com as tarefas que tem de desempenhar.
Não sendo objetivo deste tipo de protótipos que eles se venham a transformar no produto final, existe uma grande liberdade na escolha das ferramentas que podemos usar. Para além disso não existem grandes preocupações com a qualidade (Por exemplo no caso do desenvolvimento de um sistema informático, um protótipo exploratório pode ser desenvolvido em Java mesmo que, por questões de performance o sistema esteja a ser desenvolvido em linguagem C, a qualidade do código produzido não é importante, queremos é ter o protótipo pronto rapidamente, e não serve para avaliar questões como o tempo de resposta).
Protótipo Incremental – São protótipos evolutivos e estruturais, geralmente desenvolvidos na mesma linguagem de programação e com recurso às mesmas ferramentas com as quais irá ser criado o produto final. Aliás este tipo de protótipo é o produto final em construção.
Os protótipos evolutivos, como o nome sugere, evoluem de uma iteração para a seguinte. Dado que estamos a desenvolver um produto que, interação após interação se irá transformando no produto final, as questões de qualidade devem estar presentes desde o início. A necessidade de gestão e o controlo da repetição do trabalho que, naturalmente, acontecem neste tipo de protótipos, obriga a uma maior preocupação com o planeamento das funcionalidades a implementar devendo ser testados com uma certa formalidade mesmo nos estágios iniciais.
Para saber que tipo de protótipo se adequa melhor às necessidades específicas de um determinado projeto deve avaliar o tipo de problema que pretende resolver, a solução a ser apresentada e a complexidade.
Diretrizes para o Desenvolvimento de um Protótipo
Construa o protótipo rapidamente - A construção de um protótipo na fase de análise e especificação de requisitos não pode consumir tempo em demasia, caso contrário perde sua finalidade. Para acelerar a construção, use ferramentas adequadas.
Modifique o protótipo em iterações sucessivas – Se estiver a usar um protótipo evolutivo não se esqueça de programar avaliações periódicas (o período que irá ser definido deve adaptar-se ao tipo de funcionalidades a desenvolver) elas irão marcar o passo do seu projeto já que, a cada nova interação, deverão ter sido incluídas novas funcionalidades, e que introdução de novas funcionalidades deve obedecer as prioridades que foram definidas pelo utilizador.
Enfatize a interface com o utilizador – Uma das áreas onde os protótipos são mais úteis é no desenvolvimento das interfaces do sistema com os utilizadores. As interfaces do protótipo devem permitir que o utilizador interaja facilmente com o sistema. Deve ser requerido um mínimo de formação (as dúvidas potenciais devem ser minimizadas e a interface deve incluir as funcionalidades necessárias para que os erros sejam minimizados).
Vantagens e Desvantagens da Prototipagem
- Vantagens
- Permite alterar o sistema mais cedo no desenvolvimento, adequando-o mais de perto as necessidades do utilizador (menor custo de uma alteração);
- Permite descartar um sistema quando este se mostrar inadequado (protótipo de viabilidade);
- Possibilidade de desenvolver um sistema que atenda mais de perto as necessidades e expetativas dos utilizadores. Permite uma interação com o utilizador ao longo de todo o ciclo de vida do desenvolvimento.
- Desvantagens
- Gestão do projeto: Normalmente, várias iterações são necessárias para se refinar um protótipo. Sob esta ótica, surge uma importante questão: quando parar? Se esta questão não for tratada com cuidado, a prototipagem pode se estender indefinidamente. E importante, pois, delinear e seguir um plano para coletar, analisar e interpretar as informações de realimentação do utilizador;
- Considerar o protótipo como sendo o sistema final: a qualidade pode não ter sido apropriadamente considerada.