ANÁLISE COMPARATIVA ENTRE OS MODELOS DE PROCESSO: PROTOTIPAÇÃO, PSP E SCRUM Peterson Vieira Salme 1, Claudete Werner 1 1 Universidade Paranaense (UNIPAR) Paranavaí PR Brasil petersonsalme@gmail.com, claudete@unipar.br Resumo. Este artigo tem por objetivo efetuar uma revisão bibliográfica sobre três modelos de processo, para que se possa obter uma análise comparativa entre eles, modelos esses que foram criados com o propósito de auxiliar na organização e na produção de produtos computacionais para que se possa manter a qualidade e eficácia no desenvolvimento com prazos. 1. Introdução Pressman [2006 p. 37] afirma que o objetivo dos modelos de processo era sanar os problemas envolvidos no desenvolvimento de produtos computacionais, e evidentemente, tem trazido muitos benefícios às equipes de software, mas apesar disto o produto final aparentemente continua estável. Os modelos de processo estão diretamente ligados à estratégia de produção de software com qualidade, para que se possa manter o controle da situação mediante aos prazos. Este artigo colocará em discussão três modelos de processo: Prototipação, PSP (Personal Software Process) e a metodologia de desenvolvimento ágil Scrum e ao final destas citações será realizada uma analise comparativa entre eles. 2. Prototipação Segundo Pressman [2006 p. 42] a Prototipação auxilia tanto engenheiro de software quanto cliente a entenderem o que realmente deve ser desenvolvido, pois com o passar do tempo é necessário que o software sofra alterações para que o mesmo continue atendendo as necessidades do cliente, mas em algumas situações, o problema a ser resolvido demanda de uma solução complexa. Na figura 1 podemos visualizar as etapas necessárias para a realização da Prototipação. Figura 1: Modelo de Prototipação. Fonte: PERES 2012.
Este modelo pode ser considerado um modelo genérico, por poder ser utilizado no contexto de qualquer outro modelo de processo, para que se possa obter melhor especificação dos requisitos do sistema. 2.1. Comunicação É realizada uma reunião entre cliente/usuário e engenheiro, para definir os objetivos do sistema e os pontos que necessitam de mais detalhamento. [PRESSMAN 2006, p. 42] 2.2. Plano rápido Nada mais é do que a representação daquilo que o cliente/usuário irá visualizar no software. [PRESSMAN 2006, p. 42] 2.3. Construção do protótipo Nesta etapa será construído um protótipo referente ao discutido no plano rápido, e após implantado o cliente/usuário terá de analisar e avaliar. [PRESSMAN 2006, p. 42] 2.4. Implantação, entrega e feedback Assim que avaliado pelo cliente/usuário a partir do feedback recebido, se obterá uma noção quanto a uma possível necessidade de maior detalhamento dos objetivos do sistema (retornando à etapa de comunicação), ou se será criada a versão final com base no protótipo que está de acordo com o planejado. [PRESSMAN 2006, p. 42] 3. PSP (Personal Software Process) De acordo com Humphrey [2000 p. 1] o PSP foi criado com o propósito de auxiliar os profissionais de software a planejar e acompanhar seu trabalho de forma a estabelecer metas e melhorias. Auxilia também no gerenciamento de qualidade de seu trabalho, e a analisar os resultados obtidos de maneira a melhorar seu desempenho nos próximos projetos em que estejam envolvidos. Na figura 2 podemos ver representação de como funciona o PSP e a seguir suas etapas principais segundo Pressman [2006 p. 29]: 3.1. Planejamento Figura 2: PSP. Fonte: HUMPHREY 2000. São avaliados todos os requisitos do projeto, e com base neles são criadas estimativas de tamanho, recursos necessários e possíveis problemas, tudo é registrado em planilhas ou gabaritos. [PRESSMAN 2006, p. 29]
3.2. Projeto de alto nível Aqui são desenvolvidas todas as especificações, e quando há incerteza, são criados protótipos e tudo é registrado e monitorado. [PRESSMAN 2006, p. 29] 3.3. Revisão do projeto de alto nível Nesta etapa são aplicados vários métodos de verificação para encontrar possíveis erros no projeto. [PRESSMAN 2006, p. 29] 3.4. Desenvolvimento Antes dos projetos serem codificados, revisados e testados é feita uma revisão em nível de componente. [PRESSMAN 2006, p. 29] 3.5. Pós-conclusão No fim do processo, é feito um apanhado das informações coletadas durante o desenvolvimento do projeto de forma estatística para medir o desempenho obtido, para que possa identificar suas falhas e buscar não as cometer mais. [PRESSMAN 2006, p. 29] 4. Scrum Scrum nada mais é do que um framework estruturado utilizado no auxílio aos times de desenvolvimento de software na produção dos produtos computacionais. O Scrum permite à equipe tratar e resolver problemas e entregas no prazo, enquanto mantém a eficácia, produtividade e qualidade. Na figura 3 temos as etapas do Scrum, este que apesar de rápido e fácil de entender é extremamente difícil de ser aplicado. [SCHWABER; SUTHERLAND 2011, p. 3]. 4.1. Papéis Figura 3: Scrum. Fonte: SCRUM ALLIANCE. Consistem em papéis o que cada membro da equipe possui. Esses papéis são: Product Owner, equipe de desenvolvimento e Scrum Master. [SCHWABER; SUTHERLAND 2011, p. 5]
4.2. Eventos São rotinas pré-definidas com o objetivo de minimizar reuniões que não estejam definidas no Scrum, onde cada membro possui um tempo máximo determinado para prever o tempo não útil ao desenvolvimento. Esses eventos são: Sprint, Sprint Planning, Sprint Review, Daily Scrum e Sprint Retrospective. [SCHWABER; SUTHERLAND 2011, p. 8] 5. Analise comparativa Após uma investigação científica, foi realizada uma análise comparativa entres os modelos de processo citados, e foram feitas as seguintes considerações para cada tópico conforme a Tabela 1. Protótipo Comunicação Crescimento profissional Feedback Planejamento Tabela 1. Comparação entre modelos Prototipação PSP Scrum Fase principal deste modelo. Fase inicial do projeto com este modelo. Necessário para verificar a possibilidade de reespecificar os requisitos. Faz parte da etapa de comunicação. Desenvolvimento Efetuado na etapa de construção do protótipo. Pode ser utilizado. Etapa referente à pós-conclusão. Verificação do que será feito, recursos que serão utilizados e possíveis erros. É feita uma reavaliação da especificação para se iniciar. Pode ser utilizado. Efetuada através do Product Owner (Pode ser o próprio cliente). Incentiva aprender, criar e ser criativo. Ao fim da Sprint é demonstrado o que foi desenvolvido ao PO e ele dirá se condiz com o que foi pedido. É o evento da Sprint onde são definidas e são explicas as atividades do backlog. Etapa coordenada pelo Scrum Master onde ele deve auxiliar removendo impedimentos e problemas no decorrer da Sprint.
6. Metodologia Para este artigo foi realizada uma revisão bibliográfica em livros, sites da Internet e guias. Após isso foi compreendido todo o contexto sobre os modelos de processo escolhidos e transcritos neste artigo. 7. Conclusão Os modelos de processo foram criados com o propósito de organizar o que era uma grande bagunça, pois foi perfeitamente visível na Crise do Software o impacto que a falta que um modelo de processo pode fazer, pois muitas empresas faliram ou perderam muito dinheiro pela falta de gestão por parte das empresas que prestavam serviços em TI naquela época. Após esta revisão bibliográfica concluiu-se que não existe o melhor modelo de processo e sim o modelo que mais se adequa à necessidade da empresa prestadora de serviços em TI. Apesar de modelos distintos todos podem ser utilizados ao mesmo tempo, ou seja, a utilização de qualquer um não impactará ao outro, pelo contrário, irá agregar muito mais, pois o Scrum é referência em gestão dos projetos, PSP auxilia e muito na autoavaliação do profissional e a prototipação permite a evolução do projeto de forma controlada, tornando-se assim uma forma de se manter total qualidade na entrega de produtos computacionais, respeitando os prazos. 8. Referências HUMPHREY, Watts S. The Personal Software Process (PSP), 2000. Disponível em: <http://www.sei.cmu.edu/library/abstracts/reports/00tr022.cfm>. Acessado em 01 ago. 2013, 02:30. PERES, Leticia Mara. Modelo de Prototipação. 2012. Disponível em: <http://www.inf.ufpr.br/lmperes/ciclos_vida/prototipacao.pdf>. Acessado em 01 ago. 2013, 01:16. PRESSMAN, Roger S. Engenharia de Software, Sexta Edição. Editora MCGrawHill: Porto Alegre, 2006. SCHWABER, Ken; SUTHERLAND, Jeff. Scrum Guide. 2011. Disponível em: <http://www.scrum.org/scrum-guides>. Acessado em 03 ago. 2013, 16:18. SCHWABER, Ken; SUTHERLAND, Jeff. What is Scrum? 2013. Disponível em: <http://www.scrum.org/resources/what-is-scrum>. Acessado em 03 ago. 2013, 15:56. SCRUM ALLIANCE. Why Scrum? Disponível em: <http://www.scrumalliance.org/why-scrum> Acessado em 01 ago. 2013, 01:32.