TCC - Utilização de Metodologias Ágeis para Adaptação de um Processo de Desenvolvimento de Aplicações Web
Upcoming SlideShare
Loading in...5
×
 

TCC - Utilização de Metodologias Ágeis para Adaptação de um Processo de Desenvolvimento de Aplicações Web

on

  • 547 views

 

Statistics

Views

Total Views
547
Views on SlideShare
547
Embed Views
0

Actions

Likes
1
Downloads
9
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

TCC - Utilização de Metodologias Ágeis para Adaptação de um Processo de Desenvolvimento de Aplicações Web TCC - Utilização de Metodologias Ágeis para Adaptação de um Processo de Desenvolvimento de Aplicações Web Document Transcript

  • CENTRO UNIVERSITÁRIO LUTERANO DE SANTARÉM CURSO DE SISTEMAS DE INFORMAÇÃO FELIPE DOS SANTOS NASCIMENTOUTILIZAÇÃO DE METODOLOGIAS ÁGEIS PARA ADAPTAÇÃO DE UM PROCESSO DE DESENVOLVIMENTO DE APLICAÇÕES WEB SANTARÉM 2012
  • FELIPE DOS SANTOS NASCIMENTOUTILIZAÇÃO DE METODOLOGIAS ÁGEIS PARA ADAPTAÇÃO DE UM PROCESSO DE DESENVOLVIMENTO DE APLICAÇÕES WEB Trabalho de Conclusão de Curso apresentado para obtenção do Grau de Bacharel em Sistemas de Informação pelo Centro Universitário Luterano de Santarém. Orientadora: Profª. Msc. Marla Teresinha Barbosa Geller SANTARÉM 2012
  • FELIPE DOS SANTOS NASCIMENTOUTILIZAÇÃO DE METODOLOGIAS ÁGEIS PARA ADAPTAÇÃO DE UM PROCESSO DE DESENVOLVIMENTO DE APLICAÇÕES WEB Trabalho de Conclusão de Curso apresentado para obtenção do Grau de Bacharel em Sistemas de Informação pelo Centro Universitário Luterano de Santarém. Data de Apresentação: _____/_____/_____ _________________________________ ___________ Conceito _________________________________ ___________ Conceito _________________________________ ___________ Conceito
  • Esta obra é dedicada a toda minha família,em especial aos meus pais Gilson e Luzia,minha irmã Fernanda e meus professores eamigos que contribuíram no meuaprendizado enquanto acadêmico.
  • AGRADECIMENTOS Primeiramente a Deus que me deu forças, estrutura e entendimento ao longodessa trajetória. A minha família, em especial aos meus pais e irmã, que sempre me apoiaram,dando o máximo para que eu pudesse atingir meus objetivos. A minha orientadora professora Marla Geller pelo apoio e confiança e por tercontribuído grandemente com sua experiência e didática neste trabalho. Ao Júnior Tapajós, Diretor Comercial da W3Mais Comunicação Interativa, porter me dado a oportunidade de alcançar um dos meus objetivos de trabalhar comdesenvolvimento web, além de ter contribuído indiretamente com este trabalho. A todos os meus amigos e colegas pelo incentivo e colaboração no decorrerdeste trabalho.
  • Não devemos ter medo dos confrontos.Até os planetas se chocam e do caosnascem as estrelas. Charles Chaplin
  • RESUMOCom a crescente demanda por aplicações web e a dificuldade de empresas quetrabalham com esse tipo de serviço, de manter um processo organizacional egerencial no decorrer do desenvolvimento de um produto, de forma a criar somenteo necessário quando for preciso, muitas tem adotado metodologias ágeis. Porém,seguem o mesmo padrão do desenvolvimento de software, o que ainda geratranstornos, pois muitas vezes as equipes não conseguem assimilar o que deve serfeito e nem conseguem se tornar ágeis. Diante do exposto problema, este trabalhotem como objetivo propor um processo ágil específico para o desenvolvimento deaplicações web. O WAAPRO (Processo Ágil para Desenvolvimento de AplicaçõesWeb) utiliza fundamentos de metodologias ágeis como XP, Scrum e P@PSI, porémdirecionadas para web. Além de utilizar princípios do Lean, que visa mudar a culturadas equipes de desenvolvimento no que diz respeito ao desenvolvimento enxuto.Para validação do processo ágil WAAPRO foi realizado um estudo de caso, atravésdo desenvolvimento do Portal Guarany, para mostrar a utilização do processo ágil.Palavras-chave: Metodologia Ágil. Customização de Processo. Aplicação Web.
  • ABSTRACTWith the growing demand for web applications and the difficulty of companies thatwork with this type of service, to maintain an organizational and managerial processduring the development of a product, to create only what you need when you need it,many companies have adopted agile methodologies. However, follow the samepattern of software development, which still generates disorders, as teams often failto grasp what should be done and can not become agile. Considering the aboveproblem, this paper aims to propose a specific agile process for developing webapplications. The fundamentals of WAAPRO (Agile Process for Web ApplicationDevelopment) uses agile methodologies like XP, Scrum and P@PSI, but directed tothe web. In addition to using Lean principles, a way to change the culture ofdevelopment teams regarding the lean development. To validate the agile processWAAPRO was conducted a case study through the development of the PortalGuarany to show the use of agile process.Keywords: Agile Methodology. Process Customization. Web Application.
  • LISTA DE ILUSTRAÇÕESFigura 1 - Exemplo de Diagrama de Caso de Uso .................................................... 25Quadro 1 - Descrição dos Casos de uso mostrados na figura 1. .............................. 25Figura 2- Exemplo de Diagrama de Classes. ............................................................ 26Figura 3 - Exemplo de Diagrama ER ......................................................................... 27Figura 4 - Exemplo de Diagrama de Sequência. ....................................................... 28Figura 5 - Wireframe da página inicial de um site. .................................................... 30Quadro 2 - Exemplo de uma Planilha de Requisitos ................................................. 29Figura 6 - Template da aplicação web Dinheirama Online ........................................ 31Figura 7 - Visão geral do WAAPRO .......................................................................... 41Figura 8 - Diagrama de Caso de Uso do Portal Guarany. ....................................... 44Quadro 3 - Descrição dos Casos de Uso do Portal Guarany. ................................... 44Figura 9 - Diagrama de Caso de Uso do Sistema de Administração do PortalGuarany..................................................................................................................... 45Quadro 4 - Descrição dos Casos de Uso do Sistema de Administração do PortalGuarany..................................................................................................................... 46Figura 10 - Wireframe da página inicial do Portal Guarany. ...................................... 47Figura 11 - Template do site Portal Guarany............................................................. 48Figura 12 - Sistema de Administração do Portal Guarany......................................... 49Figura 13 - Diagrama de Classe da funcionalidade Notícia....................................... 51Figura 14 - Diagrama de Classe da funcionalidade Rádio Interativo ......................... 52Figura 15 - Diagrama de Classe da funcionalidade Mural de Recados ..................... 52Figura 16 - Diagrama ER - Notícia. ........................................................................... 53Figura 17 - Diagrama ER - Rádio Interativo. ............................................................. 54Figura 18 - Diagrama ER - Mural de Recados. ......................................................... 54Figura 19 - Diagrama de Sequência da ação comentar Notícia ................................ 56Figura 20 - Diagrama de Sequência da ação comentar Rádio Interativo .................. 57Figura 21 - Diagrama de Sequência da ação de enviar recado através do Mural deRecados .................................................................................................................... 58
  • SUMÁRIO1 INTRODUÇÃO ....................................................................................................... 122 VISÃO GERAL DO DESENVOLVIMENTO DE UMA APLICAÇÃO WEB ............. 142.1 INÍCIO DO PROJETO ......................................................................................... 142.2 PROGRAMAÇÃO ................................................................................................ 152.3 FINALIZAÇÃO ..................................................................................................... 152.4 MANUTENÇÃO ................................................................................................... 153 METODOLOGIAS ÁGEIS UTILIZADAS NA CUSTOMIZAÇÃO DO PROCESSOWEB WAAPRO ......................................................................................................... 173.1 PROCESSOS CUSTOMIZADOS PARA APLICAÇÕES WEB ............................ 173.2 PROGRAMAÇÃO EXTREMA (XP) ..................................................................... 183.2.1 O Jogo do Planejamento ............................................................................... 193.2.2 Entregas Frequentes ...................................................................................... 203.2.3 Projeto Simples .............................................................................................. 203.2.4 Design Incremental ........................................................................................ 213.2.5 Programação em Pares .................................................................................. 213.2.6 Propriedade Coletiva...................................................................................... 223.2.7 Contrato de escopo negociável .................................................................... 223.3 SCRUM ............................................................................................................... 223.3.1 Ciclos............................................................................................................... 233.3.2 Produto Total .................................................................................................. 243.4 P@PSI................................................................................................................. 243.4.1 Diagrama de Caso de Uso ............................................................................. 243.4.2 Diagrama de Classes ..................................................................................... 263.4.3 Diagrama ER ................................................................................................... 263.4.4 Diagrama de Sequência ................................................................................. 273.5 OUTROS RECURSOS PARA DOCUMENTAÇÃO NO WAAPRO ...................... 283.4.1 Planilha de Requisitos ................................................................................... 283.4.2 Documento de Design Funcional .................................................................. 293.4.3 Template.......................................................................................................... 304 APLICAÇÃO DO LEAN NO PROCESSO ............................................................. 324.1 PRINCÍPIOS LEAN PARA O DESENVOLVIMENTO DE SOFTWARE ............... 334.1.1 Elimine o desperdício .................................................................................... 334.1.2 Amplifique o aprendizado .............................................................................. 334.1.3 Entregue o mais rápido possível .................................................................. 334.1.4 Respeito .......................................................................................................... 344.1.5 Construa com integridade ............................................................................. 344.1.6 Visualize o todo .............................................................................................. 344.2 OS BENEFÍCIOS DO LEAN ................................................................................ 345 MODELO DE CUSTOMIZAÇÃO DO PROCESSO ÁGIL PARA APLICAÇÕESWEB - WAAPRO ...................................................................................................... 375.1 O QUE É WAAPRO?........................................................................................... 375.2 PLANEJAMENTO................................................................................................ 375.3 DESENVOLVIMENTO ......................................................................................... 385.4 FINALIZAÇÃO ..................................................................................................... 39
  • 5.5 MANUTENÇÃO ................................................................................................... 406 ESTUDO DE CASO ............................................................................................... 426.1 O CLIENTE ......................................................................................................... 426.2 O PROJETO........................................................................................................ 426.3 PLANEJAMENTO................................................................................................ 436.3.1 Levantamento e Análise de Requisitos ........................................................ 436.3.2 Proposta de desenvolvimento....................................................................... 466.3.3 Briefing ............................................................................................................ 476.3.4 Template.......................................................................................................... 476.4 DESENVOLVIMENTO ......................................................................................... 496.4.1 Coleta de conteúdo ........................................................................................ 506.4.2 Diagramação do Template ............................................................................. 506.4.3 Codificação ..................................................................................................... 506.5 FINALIZAÇÃO ..................................................................................................... 586.5.1 Revisão do Produto........................................................................................ 596.5.2 Apresentação do produto ao cliente ............................................................ 596.5.3 Entrega do produto ........................................................................................ 596.5.4 Treinamento .................................................................................................... 596.6 MANUTENÇÃO ................................................................................................... 607 CONCLUSÃO ........................................................................................................ 61REFERÊNCIAS ......................................................................................................... 63ANEXOS ................................................................................................................... 65
  • 121 INTRODUÇÃO Com o crescimento do número de empresas que produzem negócios para seusclientes na internet, e consequentemente, o grande envolvimento de profissionais daárea, torna-se necessário encontrar uma maneira de gerenciar o trabalho dessesprofissionais a fim de gerar produtos de qualidade que agreguem valor ao negóciodo cliente. Lidar com pessoas, e nesse caso, clientes, é uma tarefa difícil, pois asmudanças que ocorrem no que se refere a características e requisitos do sistema,durante o desenvolvimento de aplicações web afetam os custos, prazos e muitasvezes a qualidade do produto. Para acompanhar essas mudanças é preciso umaorganização. É nesse aspecto que a modelagem ágil ajuda os desenvolvedores e,também, o cliente a compreender o escopo do produto antes, durante e após afinalização do mesmo. É preciso entregar um produto que satisfaça as necessidadesdo cliente, afinal, esse é o primeiro objetivo do desenvolvimento de software. A utilização de metodologias ágeis é uma proposta que vem sendo estudadahá anos no desenvolvimento de software. Basicamente, todas tentam definir um guiade desenvolvimento, identificando quem está fazendo o quê, onde, por que, como equando. Jacyntho (2008), afirma que um processo de software é definido com umconjunto de atividades interdependentes que visam desenvolver, manter e gerenciarsistemas de software. Sendo que cada atividade pode ser composta de outrasatividades e são executadas por atores que desempenham um papel no processo(programador, gerente, cliente, etc.). O resultado das atividades são artefatos(código, documentação, modelos) que servem de entrada para outras atividadespara produzir novos artefatos. Sem um processo de software, o risco de falha doprojeto se torna muito alto, em especial para as aplicações web modernas cujacomplexidade não para de crescer. Com a proposta de desenvolver projetos de maneira capaz de responder rápido às mudanças, com foco nas pessoas e na colaboração com o cliente, surgiram as metodologias ágeis que, devido às suas características, possibilitam gerar produto com maior valor agregado e ao mesmo tempo manter pessoas motivadas dentro das corporações (AKITA, 2009 apud TANIGUCHI; CORREA, 2009). A partir da concepção das metodologias ágeis é possível criar um processo ágilvoltado para desenvolvimento de aplicações web, que por sua vez, têm foco no
  • 13produto em si, ou seja, sendo mais importante entregar algo de qualidade sem seprender em intermináveis documentos, eliminando desperdícios e desenvolvendosomente o necessário e quando necessário. Pois, assim como no desenvolvimentode software tradicional, aplicações web estão constantemente sofrendo mudançasdurante e após sua implementação, trabalhando assim com releases iterativos eincrementais de entrega. Segundo Bohem e Turner (2004 apud JACYNTHO, 2008) não existe umprocesso correto ou incorreto, tanto processos rigorosos quanto processos ágeis,ambos têm suas vantagens e desvantagens. Ou seja, é preciso encontrar um pontode equilíbrio entre as duas abordagens para cada tipo de projeto, e assim definir umprocesso híbrido que traga benefícios reais. Diante da necessidade de um processo de desenvolvimento voltado paraambientes e aplicações web, será mostrado neste trabalho um processo ágilcustomizado a partir de metodologias ágeis já existentes, sendo elas: ProgramaçãoExtrema (XP), Scrum e P@PSI. Este trabalho também cita o conceito Lean, umametodologia voltada para o desenvolvimento de produtos de forma a eliminardesperdícios e criar um ambiente de aprendizado constante a partir de expectativasda equipe e feedback dos clientes, assim produzindo somente o que gera valor parao cliente. Este trabalho está organizado em capítulos, onde após a introdução o segundocapítulo apresenta uma visão geral do desenvolvimento de uma aplicação web, oterceiro capítulo apresenta as metodologias ágeis utilizadas na customização doprocesso web WAAPRO, o quarto capítulo mostra a aplicação do Lean no processoproposto, o capítulo cinco exemplifica o modelo de customização do WAAPRO e ocapítulo seis apresenta um estudo de caso utilizando como processo ágil oWAAPRO no desenvolvimento de um site.
  • 142 VISÃO GERAL DO DESENVOLVIMENTO DE UMA APLICAÇÃO WEB O tópico a seguir descreve a experiência do autor no desenvolvimento deaplicações web e o processo utilizado desde o início de um projeto, passando pelafinalização até a manutenção após entrega do produto ao cliente.2.1 INÍCIO DO PROJETO O projeto de desenvolvimento de uma aplicação web se inicia com uma reuniãopreliminar com o cliente, a fim de se obter informações sobre a real necessidadepara se criar o produto. Neste primeiro momento, é decidido o tipo de produto,podendo variar desde um website informativo, apresentando informações acerca daempresa do cliente, por exemplo, quanto a sites de venda de produtos on-line,conhecido como e-commerce. No desenvolvimento web existem outros produtos como hotsites, quegeralmente são sites pequenos e específicos para um determinado evento ou açãopublicitária. E, também, sistemas on-line, como grandes portais de conteúdo quepossuem diversas funcionalidades. Definido o tipo de aplicação a ser desenvolvida, é feito um levantamento derequisitos junto ao cliente. Primeiro, para conhecer suas necessidades ao procurareste tipo de produto e, segundo, para saber quais funcionalidades a aplicação iráconter. Com essas informações em mãos é, então, elaborada uma proposta dedesenvolvimento, contendo todas as informações necessárias para iniciar odesenvolvimento do produto. Esta proposta inclui informações detalhadas de cadafuncionalidade, as páginas que serão criadas, custo total do projeto, tempo dedesenvolvimento e, também o que não será produzido, pois após o contrato fechadoo que for solicitado como mudança fora do escopo não fará parte do valor fixado nocontrato, este sofrerá um acréscimo. Esta proposta é apresentada ao cliente. Caso haja algum item emdiscordância, este tem a total liberdade de pedir a reformulação até chegar a umponto comum com a equipe responsável pelo desenvolvimento da aplicação web.Sendo a proposta aprovada, o início do desenvolvimento dá-se pela criação dolayout baseado nas informações previamente coletadas. O layout baseia-se,
  • 15principalmente, na harmonia de cores e localização das informações. A equiperesponsável tem total liberdade para criar algo dentro dos padrões web deusabilidade e, posteriormente, esse layout passa pela aprovação do cliente.2.2 PROGRAMAÇÃO Uma vez que o layout é finalizado, e o cliente se satisfaça com a localização decada funcionalidade e informação que a aplicação irá conter, inicia-se o processo deprogramação, ou seja, a codificação dos requisitos. Durante esta etapa os requisitospodem sofrer alterações, fazendo-se necessário o uso de padrões web deprogramação que facilitam a manutenção dos códigos a fim de se evitar desperdíciode tempo.2.3 FINALIZAÇÃO Após a finalização da programação de toda a aplicação, esta é testada porcompleto localmente (off-line), e depois é enviada para um servidor on-line paratestes finais. Caso existam falhas, estas são corrigidas, senão, uma nova reuniãocom o cliente é realizada para apresentação do produto final. Se aprovada, aaplicação fica disponível para o público geral, senão volta para a etapa deprogramação.2.4 MANUTENÇÃO No desenvolvimento web, após a entrega da aplicação funcionandocorretamente, se inicia mais uma etapa, que é a manutenção do mesmo. Esta etapaengloba desde a atualização do conteúdo, layout e até mesmo mudanças nosrequisitos iniciais, como a inclusão de novas funcionalidades. Essa fase de Manutenção deve ser especificada em contrato de formacoerente, pois o cliente pode eventualmente achar que pode requerer qualquermudança após a finalização do projeto, o que é um equívoco. O desenvolvedor irárealizar qualquer mudança no escopo descrito em contrato, caso seja acrescentadauma nova funcionalidade, o valor do projeto passa por um reajuste. Para isso, háuma negociação prévia com o cliente, para que fique tudo bem claro. É importante
  • 16ressaltar, que qualquer manutenção solicitada pelo cliente passa pelo gerente deprojetos primeiro. Ele, junto com a equipe de desenvolvimento analisa o que podeser feito e as consequências de tal mudança antes de entrar em processo deimplementação. Nem todas as alterações poderão ser realizadas após a finalizaçãodo projeto, pois podem comprometer muitas funções. Por isso é importante umaanálise de requisitos bem criteriosa, no início do desenvolvimento do projeto.
  • 173 METODOLOGIAS ÁGEIS UTILIZADAS NA CUSTOMIZAÇÃO DO PROCESSOWEB WAAPRO Metodologias ágeis são vistas como as melhores alternativas às abordagenstradicionais de desenvolvimento de software. Uma vez que métodos tradicionaissurgiram em um contexto de desenvolvimento de software baseado apenas em ummainframe e terminais burros (ROYCE, 1970 apud SOARES, 2004), onde nãoexistiam ferramentas de apoio ao desenvolvimento de software, e todo o projeto erabaseado em documentos produzidos antes de o software ser implementado. Essas metodologias surgiram para mudar o conceito de desenvolvimento desoftware baseado somente em documentos. Com isso, passou-se a se preocuparcom as pessoas que compõe os projetos, principalmente, desenvolvedores eclientes. A partir disso, houve uma melhoria no processo de codificação, passando aser guiado por testes e utilizando de forma mais eficiente as práticas da Engenhariade Software. Este capítulo se divide na breve descrição de alguns processos customizadospara desenvolvimento de aplicações web, e algumas das principais metodologiaságeis utilizadas no desenvolvimento de software, sendo elas, o Scrum, XP e P@PSIcom foco na implantação em ambientes que ainda não utilizam metodologias ágeiscomo parte do processo de desenvolvimento de software. Essas metodologiasserviram de base para a customização do Processo Ágil para Desenvolvimento deAplicações Web, denominado WAAPRO.3.1 PROCESSOS CUSTOMIZADOS PARA APLICAÇÕES WEB Existem algumas propostas de processos voltados para aplicações web, comoo XWebProcess que foi criado adaptando elementos do XP para lidar comimportantes questões de sistemas web, tais como: interfaces com usuáriocomplexas, navegação, requisitos não-funcionais, testes e suporte de infraestrutura(SAMPAIO, 2004 apud JACYNTHO, 2008). Outro processo é o OPEN-Web Process,e foi adaptado para desenvolvimento web a partir do OPEN (Object-OrientedProcess, Environment, and Notation) que é um meta-processo e abrange o ciclo devida completo de desenvolvimento, incluindo aspectos de negócio e de software(HAIRE et tal, 2001 apud JACYNTHO, 2008). Além desses, também pode-se citar o
  • 18WebPraxis que como propósito ser utilizado no desenvolvimento de aplicativos querodem em ambientes web e não simplesmente sites estáticos ou dinâmicos(ÁLVARES, 2001). Foi proposto a partir do Praxis, por ser um processo genéricopara produção de aplicativos interativos e orientados a objetos. Assim, o WebPraxisherda as características usadas para desenvolvimento de aplicativos comunsdesktop e insere outras para atender às necessidades do desenvolvimento web.3.2 PROGRAMAÇÃO EXTREMA (XP) A Programação Extrema (XP) é uma metodologia para equipes dedesenvolvimento pequenas, de duas a dez pessoas, que desenvolvem softwaresonde os requisitos do usuário são vagos e que se modificam rapidamente. SegundoBeck (2004), o desenvolvimento de software tem falhas, sendo estas na entrega enos valores entregues. Essas falhas geralmente são vistas quando o software jáestá em produção, o que ocasiona em impactos econômicos e humanos. A XP visaeliminar os erros durante os processos de desenvolvimento de software, por issoencoraja o diálogo entre membros da equipe e, principalmente, com o cliente, tendoassim feedback diário. A XP segue quatro variáveis, sendo elas: custo, tempo, qualidade e escopo.Além de se basear em cinco valores para conduzir o desenvolvimento, sendo:comunicação, coragem, feedback e simplicidade. Dessa forma, ela tenta prever osproblemas antes que estes aconteçam e assim achar a melhor solução para resolvê-los de forma rápida. “Como programadores, nos habituamos a antecipar problemas. Quando elesaparecem mais tarde, ficamos felizes. Quando não aparecem, nem notamos.”(BECK, 2000 apud TELES, 2005). Junto com essas características, foram utilizadas no WAAPRO o ciclo codificar,testar, ouvir e projetar, que são as quatro atividades básicas da XP. Segundo Beck(2004), o código serve como meio de comunicação que expressa intenções táticas edescreve algoritmos; os testes servem tanto como recurso quanto a umaresponsabilidade, pois dizem quando se terminou de codificar; ouvir faz com que ofeedback do programador ajude o cliente a entender melhor seus problema; e porfinal, projetar é desenvolver o que foi planejado de forma organizada, ou seja, o
  • 19código tem que ser projetado para suportar modificações de forma que o sistemaseja impactado o mínimo possível em outras partes. No WAAPRO buscou-se utilizar práticas XP que pudessem ser utilizadastambém no desenvolvimento web como: Jogo do Planejamento, EntregasFrequentes, Projeto Simples, Design Incremental, Programação em Pares,Propriedade Coletiva e Contrato de escopo negociável.3.2.1 O Jogo do Planejamento O Jogo do Planejamento determina brevemente o escopo do projetocombinando prioridades de negócios e estimativas técnicas. O desenvolvimento web, assim como o desenvolvimento de software é umdiálogo evolutivo entre o possível e o desejável. Assim, segundo Beck (2004) aspessoas da área do negócio precisam decidir sobre:  Escopo – o objetivo de um projeto é entregar um produto que gere valor de negócio ao cliente, porém quanto de um problema precisa ser resolvido para que o sistema tenha valor em produção? A pessoa da área de negócios precisa estar apta a responder questionamentos como esse, entendendo o quanto não é suficiente e o quanto é demais.  Prioridade – está ligado a escolhas, às vezes é preciso escolher entre funcionalidades a serem desenvolvidas primeiro. A pessoa da área de negócios está em posição de decidir isso, muito mais do que um programador, por exemplo.  Composição das versões – basicamente, é preciso saber quanto da aplicação web precisa ser feita para que o produto comece a entregar valor ao cliente.  Datas de entrega – datas são importantes, pois servem como metas. A área técnica está diretamente ligada com a área de negócios, pois fornece amatéria-prima para a tomada de decisão. Portanto, as pessoas da área técnicadecidem sobre:  Estimativas – informação sobre quanto tempo levará para implementar uma funcionalidade, por exemplo.
  • 20  Consequências – existem decisões estratégicas de negócios que devem ser tomadas apenas quando há informações sobre as consequências técnicas. Por exemplo, um caso de uso muda durante o desenvolvimento e este atinge pelo menos outra funcionalidade, podendo fazer o sistema parar por alguns instantes. A área de desenvolvimento precisa explicar as consequências.  Processo – a equipe de trabalho precisa ser organizada, para isso é importante programar bem a aplicação web sem se prender a uma cultura fechada.  Cronograma detalhado – os programadores precisam de liberdade para dizer o que deve ser feito primeiro na aplicação web, a fim de reduzir o risco total do projeto.3.2.2 Entregas Frequentes No desenvolvimento web as mudanças são muito rápidas e os usuários finaisesperam sempre algo novo. A prática de Entregas Frequentes diz que se possível,coloque um sistema simples rapidamente em produção e depois libere novasversões em ciclos curtos. Cada versão entregue deve ter o menor tamanho possível, contendo osrequisitos de maior valor para o negócio. Beck (2004) ainda afirma que a entregaprecisa fazer sentido como um todo, de nada adianta entregar versões malfeitas, ouseja, implementar meia função e entregá-la, só para tornar mais curto o ciclo deentrega.3.2.3 Projeto Simples Basicamente, a XP propõe uso de métodos que tornem o projeto dedesenvolvimento mais simples, onde programadores podem utilizar recursos comopadrões de projeto e framework na codificação, por exemplo. Tufte (1992 apudBECK, 2004) propõe um exercício para designers gráficos. “Desenhe um gráfico daforma que você quiser. Então apague todos os elementos, desde que você nãoremova nenhuma informação. O que restar quando você não puder apagar maisnada é o design certo para o gráfico”.
  • 21 Para que um projeto se torne simples é necessário ter funcionalidades oucasos de usos bem definidos, o que nem sempre acontece, pois as mudanças fazemparte do escopo e podem acontecer em qualquer estágio do projeto. Mas éimportante fazer somente o que for preciso quando realmente precisar, ou seja,evitar criar algo que não será usado ou que a falta deste não irá ter grandesimpactos.3.2.4 Design Incremental O objetivo do Design Incremental é sempre tornar o código e design maissimples, legível e preparado para mudanças. Deve ter suporte de outras práticas,como a refatoração1 e os teste automatizados para garantir que a equipe seja capazde solucionar os problemas futuros com mais rapidez. Sato (2009) alerta para ainterpretação dessa prática, “seu objetivo não é minimizar o investimento com designno curto prazo, mas sim manter esse investimento proporcional às necessidades dosistema conforme ele evolui”. Para que isso funcione existe padrões dedesenvolvimento web que podem ser seguidos e que melhoram a legibilidade doscódigos e consequentemente a performance da aplicação, como por exemplo, usode frameworks.3.2.5 Programação em Pares Na Programação em Pares existem dois papéis em cada par. O primeiro éaquele indivíduo com o teclado e o mouse que está pensando qual a melhor formade implementar um método específico. O segundo pensa de forma estratégica:  Essa abordagem como um todo vai funcionar?  Que outros casos de testes podem não funcionar?  Existe uma maneira de simplificar todo o sistema para que o problema simplesmente desapareça? Isso promove o trabalho coletivo e colaborativo, une a equipe e melhora,também, a comunicação e a qualidade do código (SATO, 2009). O aprendizado é1 Para Beck (2004), refatorar um código significa alterar seu comportamento a fim de removerduplicidade, melhorar a comunicação, simplificar e acrescentar flexibilidade.
  • 22sempre repassado para toda a equipe, assim há uma maior comunicação de todosque passam a compartilhar de técnicas e ideias novas.3.2.6 Propriedade Coletiva Mesmo que um programador tenha levado dias em um código, a XP sugereque qualquer um da equipe pode modificar tal código. Isso quer dizer que, não háum dono, “a qualquer momento, qualquer um que perceba uma oportunidade deacrescentar valor a alguma parte do código é obrigado a fazê-lo” (BECK, 2004). A XP sugere que todos sejam donos do sistema inteiro. Obviamente, nemsempre todos da equipe irão conhecer todas as partes do código, mas podem saberum pouco sobre cada parte. Isso dá uma visão mais ampla do sistema, facilitando aexecução de refatoração e espalhando conhecimento por toda a equipe. Nodesenvolvimento web, onde toda a equipe está conectada diretamente ao código,isso é importante, pois não se deve perder tempo solicitando mudanças quando opróprio programador puder melhorar o código.3.2.7 Contrato de escopo negociável Contratos devem ter fixados tempo, custo e qualidade, deixando o escopo dasfuncionalidades em aberto para negociação. Isso porque no desenvolvimento deaplicações web as mudanças no decorrer do projeto são frequentes, sendo que emXP, o escopo é revisado o tempo todo para garantir que a equipe esteja sempretrabalhando no que é mais importante para o cliente. Com o escopo dasfuncionalidades em aberto, o cliente pode solicitar mudanças conforme a evoluçãoda aplicação e, também, do seu aprendizado.3.3 SCRUM O objetivo da metodologia ágil Scrum é definir um processo para projeto edesenvolvimento de software orientado a objetos, que seja focado nas pessoas eque seja indicado para ambientes em que os requisitos surgem e mudamrapidamente. O Scrum também é considerado um método específico para ogerenciamento de processo de desenvolvimento de software (LUNA; COSTA; DE
  • 23MOURA, 2011). Surgiu a partir de um estudo feito por Takeuchi & Nonaka, no qual,notaram que projetos de curta duração, usando equipes pequenas emultidisciplinares, produzem melhores resultados (DE CARVALHO, 2009). Scrum é uma metodologia baseada em simplicidade e adaptabilidade. Um fundamento dessa filosofia é a manutenção da base desse conceito: equipes gerenciáveis. A maioria dos livros aponta equipes de no máximo 9 pessoas, multidisciplinar e motivada. Mas é inescapável a existência de projetos onde essa força de trabalho tem de ser multiplicada, devido ao tamanho do sistema sendo desenvolvido (GOLÇALVES, 2011). Tudo o que acontece sob Scrum é realizado em um período limitado de tempo,denominado Time Boxing. Isso é fundamental para entregar software no menortempo possível. Além do mais, o Scrum busca a simplicidade. Isso se reflete nospapéis que cada pessoa tem durante o processo de desenvolvimento, são apenastrês e não há nenhuma hierarquia entre elas: Product Owner (dono do produto),Scrum Master (coordenador da equipe) e o Scrum Team (equipe dedesenvolvimento). Com essa simplicidade a equipe se esforça em planejar menos erealizar mais, sendo objetivo nas atividades a serem executadas (GONÇALVES,2011). O WAAPRO busca a simplicidade dos projetos web, por isso foi um princípioutilizado na customização deste processo, além de imaginar como será o produtofinal.3.3.1 Ciclos No processo ágil WAAPRO foi utilizado o elemento Ciclo da gestão iterativa eincremental, que no Scrum é chamado Sprint. Cada Sprint é o período de tempo emque um ou mais incrementos reais são desenvolvidos e, ao final, tais incrementosdevem ser demonstrados ao cliente. Essa é uma forma de tornar o cliente presenteno desenvolvimento e diminuir o risco de mudanças nos requisitos após a finalizaçãodo projeto. O importante aqui é o tempo de vida de um Ciclo, que não deveultrapassar quatro semanas. No desenvolvimento web a velocidade de desenvolvimento é acelerada, quantomais rápido se desenvolve uma funcionalidade mais rápido será o feedback daequipe e do cliente.
  • 243.3.2 Produto Total As funcionalidades no Scrum são vistas primeiro como um todo, chamadoProduct backlog, ou seja, tudo o que a aplicação irá conter. Depois disso, passa porum processo de avalição para priorizar as funcionalidades a serem desenvolvidasnaquele Sprint, gerando assim um Sprint backlog. No WAAPRO foi adotado a mesma ideia, é necessário visualizar a aplicaçãoweb como um todo, não com todas as funcionalidade que pode conter, mas sim oque é necessário para a aplicação se tornar funcional e gerar valor para o cliente. Apartir dessa ideia é que as funcionalidades são priorizadas e implementadas no fluxode desenvolvimento.3.4 P@PSI “Pode-se descrever o [..] P@PSI, como sendo gerenciado pelo Scrum,adotando práticas XP e com fluxos do Processo Unificado.” (GELLER; KNEBEL;BENTES JÚNIOR, 2007). O processo ágil P@PSI foi criado em 2008 pelo Grupo de Trabalho Ágil (GTA)do Centro Universitário Luterano de Santarém (CEULS/ULBRA), e surgiu com opropósito de auxiliar desenvolvedores de softwares em pequenos projetos paraempresas que buscam soluções personalizadas. Por ser um processo ágil customizado, o P@PSI possui algumas práticas játestadas como o uso de modelos para representar aspectos do sistema e também ociclo iterativo oriundo do Processo Unificado. Alguns desses recursos tambémpodem ser utilizados no desenvolvimento de aplicação web e foram utilizados,principalmente, para servir de documentação dos projetos. Serão apresentados osdiagramas mais comuns que podem facilitar a documentação no processo ágilWAAPRO.3.4.1 Diagrama de Caso de Uso Um recurso da UML muito utilizado em desenvolvimento de software é oDiagrama de Casos de Uso (figura 1), que permite agrupar o comportamentoesperado do sistema em rotinas de limites muito bem definidos, que farão a
  • 25interação com os usuários (MELO, 2009). O caso de uso é utilizado para representaros requisitos do sistema, ou seja, o que a aplicação deve fazer a fim de atender asnecessidades dos interessados, principalmente os clientes. Através de um caso de uso é possível descrever o funcionamento de umafuncionalidade de maneira informal, sendo de fácil assimilação por clientes queacompanham um projeto. Os principais conceitos associados ao Diagrama de Casode Uso são: atores, e casos de uso. Figura 1 - Exemplo de Diagrama de Caso de Uso Fonte: Arquivo pessoal, 2012. Além da forma visual, é bom utilizar um quadro descritivo (quadro 1) para cadacaso de uso, assim, mesmo depois de muito tempo da finalização de um projeto,caso surja alguma alteração, o desenvolvedor saberá exatamente porque aquelecaso de uso foi feito e o que ele representa na aplicação web. Quadro 1 - Descrição dos Casos de uso mostrados na figura 1. O usuário efetuará Login para ter acesso ao Fazer Login sistema Fazer Cadastro O usuário faz seu cadastro no sistema. Comprar Produto O usuário efetua a compra de um produto. Verificar se os dados do usuário já estão na Validar Dados base de dados e se estão corretos. O sistema valida a compra e fornece para o Dar Desconto usuário um campo para inserir seu código de desconto.Fonte: Arquivo pessoal, 2012.
  • 263.4.2 Diagrama de Classes O Diagrama de Classes (figura 2) é utilizado para modelar a visão estática doprojeto de um sistema. Nele mostra-se um conjunto de classes, interfaces ecolaborações e seus relacionamentos de dependência, generalização e associação(BOOCH; RUMBAUGH; JACOBSON, 2005). Também ajuda a visualizar a estruturade classes antes de implementá-las, e assim, corrigir eventuais erros. Cada classefunciona em colaboração com outras e não sozinhas, a fim de se fazer sentido. Figura 2- Exemplo de Diagrama de Classes. Fonte: Arquivo pessoal, 2012.3.4.3 Diagrama ER A partir do Diagrama de Classes (figura 2) pode ser feito um mapeamento dasclasses em tabelas através do Diagrama ER (figura 3), em que este representa omodelo relacional das tabelas. Dependendo do padrão de codificação, com a basede dados pronta, fica mais simples codificar as classes do projeto. Porém, sãonecessários ambos os diagramas para modelar as aplicações web antes dequalquer codificação.
  • 27 Principalmente no desenvolvimento web, a modelagem da base de dados émuito importante, pois a partir dela o sistema pode responder de forma rápida ounão. Por exemplo, às vezes os desenvolvedores não se preocupam com aquantidade de usuários que a aplicação pode suportar simultaneamente, umamodelagem da base de dados errada junto com uma programação malfeita podecomprometer toda a aplicação, podendo às vezes, ficar inacessível ou lenta. Figura 3 - Exemplo de Diagrama ERFonte: Arquivo pessoal, 2012.3.4.4 Diagrama de Sequência Um Diagrama de Sequência é um artefato que ilustra - para um cenárioespecífico de um caso de uso, com o auxílio das classes identificadas num modelode classes - os eventos de entrada e saída relacionados num sistema, como trocade mensagens, dentro de uma linha de tempo sequencial. Na modelagem doDiagrama de Sequência (figura 4) cada item descrito nos cenários principais ealternativos é representado por mensagens. Essas mensagens podem serexpressas do ator para o sistema, ou da interface para os objetos (MELO, 2009).
  • 28 Figura 4 - Exemplo de Diagrama de Sequência.Fonte: GELLER, 2012.2 O P@PSI também possui uma herança do Processo Unificado que são osfluxos iterativos, no qual o processo possui: Planejamento, Desenvolvimento eEncerramento. No WAAPRO também foram utilizados fluxos iterativos, porém osfluxos são Planejamento, Desenvolvimento, Finalização e Manutenção, sendodescritos no capítulo 5.3.5 OUTROS RECURSOS PARA DOCUMENTAÇÃO NO WAAPRO Alguns recursos são válidos no desenvolvimento de aplicações web, tais comoPlanilha de Requisitos, Documento de Design Funcional e Template.3.4.1 Planilha de Requisitos A planilha de requisitos, como mostra o quadro 2, é um artefato paraarmazenar as informações feitas no levantamento de requisitos. Esse recurso éimportante para orientar os desenvolvedores sobre as funcionalidades do sistemaque interagem entre si, facilitando a manutenção dos mesmos, em caso demodificações durante ou após a implementação. Para isso, a planilha especifica umcódigo único para cada funcionalidade ou ação que a aplicação irá conter, além de2 Geller, Marla. (Centro Universitário Luterano de Santarém). Comunicação pessoal. Santarém, 2012.
  • 29um campo descritivo, categoria que indica o tipo do requisito, prioridade, dificuldade,status se o requisito já foi implementação ou não, e comentários adicionais. Essaplanilha é atualizada a cada iteração do projeto, assim se tem um maior controle doque está sendo feito e principalmente quais os requisitos mais urgentes que devemser priorizados. Quadro 2 - Exemplo de uma Planilha de RequisitosAplicação web DificuldCod Requisito Prioridade ade Atendido ComentáriosF001 Inserir/Alterar/Excluir Enquete. Baixo Baixo Não Todo comentário deve gravar o IP do IP não deve serF002 usuário Alto Baixo Sim exibido para usuário.F003 Listar Notícias por Categoria Médio Médio Não Somente usuário nível "Master" podeF004 cadastrar Novos usuários Alto Alto SimFonte: Arquivo pessoal, 2012.3.4.2 Documento de Design Funcional O Documento de Design Funcional é um conjunto de Wireframes onde cadaum representa cada página da aplicação. O Wireframe (figura 5) representa aarquitetura de uma página web com a disposição dos elementos, mas não é funçãodemonstrar a estética, como conjunto de cores e fontes, por exemplo. Entretanto,serve como esboço para o designer produzir os Templates da aplicação.
  • 30 Figura 5 - Wireframe da página inicial de um site. Fonte: Arquivo pessoal, 2012.3.4.3 Template O Template, também chamado de Protótipo de Interface, como mostra a figura6, pode representar parte da aplicação a ser implementada, uma funcionalidade, ouuma proposta de layout, feita pelo designer. Para isso, o designer precisa utilizar oDocumento de Design Funcional ou parte dele para ter uma base de como será oposicionamento de cada elemento na aplicação. Além disso, este recurso fornece aocliente uma prévia, ainda que não funcional, de como será a interface da aplicação,demonstrando principalmente o conjunto de cores. Por isso é importante o clienteaprovar o Template antes de este ser implementado.
  • 31 Figura 6 - Template da aplicação web Dinheirama Online Fonte: DINHEIRAMA ONLINE, 2012. Como visto no capítulo, o WAAPRO possui vários recursos que tem origem emprocessos já existentes. Outros foram inseridos para atender às características deaplicações web.
  • 324 APLICAÇÃO DO LEAN NO PROCESSO A maioria das empresas que querem adotar processos ágeis não fazem uso deboas práticas de engenharia de software, e adotar qualquer procedimento pode serdifícil. Por esse motivo, criou-se um conceito que tem como objetivo auxiliar asempresas a equilibrar corretamente o uso de práticas, princípios e valores em todosos níveis de uma organização, promovendo assim, uma mudança segura esustentável na cultura interna e nos métodos de desenvolvimento e assim criar umaempresa efetivamente ágil e enxuta. O suporte à mudança precisa ser geral, não somente da gerência executiva, mas também do chão de fábrica. Normalmente, a primeira reação das pessoas é a resistência – sendo assim, imposição nunca será o melhor caminho. É preciso abrir espaço, dar as ferramentas adequadas e criar um ambiente que seja propício à mudança (CRESCÊNDIO, 2011). O Lean é uma filosofia de negócio baseada no Sistema Toyota de Produção.Durante 25 anos a Toyota aperfeiçoou seu sistema enxuto e provou que pode sercompetitiva, tornando-se a maior e mais lucrativa montadora de automóveis. Atravésdesse pensamento Lean, é possível identificar o que gera valor na visão dos clientese usuários. O ponto inicial para o pensamento Lean é reconhecer que apenas uma fraçãodo tempo total e esforço de uma organização adicionam, de fato, valor ao cliente.Apesar dos princípios e conceitos gerais sobre essa abordagem já terem mais de 50anos, só recentemente é que estes passaram a ser conhecidos e terem uma devidaaceitação. Isso mostra que a economia mundial afeta muitas empresas, deixandomuitas em dificuldades para sobreviver, lutando para reduzir custos sem prejudicar aqualidade e serviço ao cliente. A visão do Lean além de evitar o desperdício é produzir serviços ou produtosde qualidade e que gerem valor para o cliente. De forma simplificada, valor consistenas características perceptíveis ao cliente, que cada produto ou serviço proporcionaao seu negócio. Por exemplo: preço, qualidade, prazo de entrega, atendimentoprestado, funcionalidades de acordo com as necessidades especificadas. Ou seja, oproduto ou serviço exatamente como o cliente deseja.
  • 334.1 PRINCÍPIOS LEAN PARA O DESENVOLVIMENTO DE SOFTWARE Neste tópico são mostrados os princípios do Lean direcionados para odesenvolvimento de aplicações web, tais como, eliminar o desperdício, amplificar oaprendizado, entregar o mais rápido possível, respeitar, integrar e visualizar o todo.4.1.1 Elimine o desperdício Evite fazer mais que o necessário. Elimine qualquer coisa que não agreguevalor ao produto e que não são percebidas pela cliente. Por exemplo, se o timeentrega funcionalidades incompletas, se produz documentação de análise apenaspara estar em concordância com o processo, se não prioriza casos de uso eimplementa mais funcionalidade que o necessário de imediato. Isso tudo édesperdício.4.1.2 Amplifique o aprendizado É importante ter um processo de desenvolvimento que encoraje a sistemáticade aprendizagem ao longo do ciclo de desenvolvimento. Os desenvolvedores têmque ter a capacidade de responder rapidamente a mudanças de requisitos por partedo cliente. Um código sofre constantes mudanças, portanto, é preciso codificar deforma simples, geralmente orientado a testes. Desenvolvimento é um exercício de descoberta, enquanto produção é um exercício de redução de variações, e por essa razão, aprender a abordagem de desenvolvimento resulta em práticas que são bastante diferentes do que aprender abordagens de práticas de produção (DAVIDSON, 2010).4.1.3 Entregue o mais rápido possível Segundo Crescêndio (2011), há duas grandes razões para entregar rápido:para que o cliente não mude de ideia enquanto um projeto está em desenvolvimentoe para que o concorrente não entregue antes. Além disso, reduzir os ciclos eentregar rápido e de forma incremental permite feedback e aprendizado sobre o que
  • 34está sendo feito. Assim, é que preciso descobrir como entregar uma aplicaçãofuncional tão rápido que clientes não tenham tempo para mudar suas ideias.4.1.4 Respeito Respeitar as pessoas do ponto de vista do Lean não significa aplicar apenas obom senso e a boa educação. A forma como uma equipe se organiza influenciaprofundamente no respeito às pessoas. Fazer o simples como dar visibilidade dotrabalho feito, prover e aceitar feedback, errar o quanto antes e deixar todo mundosaber, são exemplos de respeito. “Um ambiente Lean dá espaço para que todospossam aprender abertamente sobre esse tipo de problema e assim resolvê-los deuma forma adequada” (CRESCÊNDIO, 2011).4.1.5 Construa com integridade Existem dois tipos de integridade, sendo: Conceitual é aquela que só osconstrutores sabem que existe. Percebida é aquela que os usuários podem notar.Para que se tenha integridade, é preciso uma comunicação efetiva, criando assim,um fluxo contínuo de informações entre desenvolvedores, usuários e clientes.4.1.6 Visualize o todo Este princípio valoriza o aprendizado do ambiente de desenvolvimento, todasas pessoas precisam enxergar e compreender o todo e criar uma organização quecontribua para a melhoria de seus processos. Por exemplo, se uma equipe temespecialistas em certas partes de um código e só eles conseguem mexer lá,certamente as demais pessoas da equipe não estão vendo o todo.4.2 OS BENEFÍCIOS DO LEAN Mesmo com origem em um ambiente de produção industrial, o Lean passou aser aplicado em empresas de diversos setores e atividades. De modo geral, épossível identificar os mais significativos benefícios resultantes da aplicação“pensamento Lean” nas empresas, que podem ser resumidos da seguinte forma:
  • 35  Crescimento do negócio;  Aumento da produtividade;  Aumento da satisfação do cliente;  Aumento da qualidade e do serviço prestado ao cliente;  Maior envolvimento, motivação e participação das pessoas;  Redução das áreas de trabalho;  Aumento da capacidade de resposta;  Redução do lead time (tempo em que se recebe um requisito até a entrega da funcionalidade). O caminho para que uma empresa ou um uma equipe de desenvolvimento setorne Lean nem sempre é fácil, requer o envolvimento e o compromisso de todos.Nesse tempo, as empresas passam por vários estágios de desenvolvimento, enessas etapas é necessário estabelecer metas e objetivos, quantificar resultados eatuar em função de desvios. Alguns requisitos para o sucesso são:  Envolvimento da gestão de topo;  Aderir ao conceito “O cliente em primeiro lugar”;  Estar consciente em relação aos problemas;  Gerenciar o processo através de resultados e fatos;  Criar qualidade em tudo que se faz;  Implementar as mudanças envolvendo todas as pessoas. As metodologias ágeis são um processo de melhoria que uma empresa podeadotar para desenvolver aplicações web com melhor qualidade, seguindo um padrãopara documentação do que está sendo construído, eliminando desperdícios, erro eaté com um custo menor. A grande dificuldade é como implementar essa abordagemde forma eficiente e sem causar grande impacto na empresa. Por exemplo, a equipede desenvolvimento pode sentir dificuldade em aplicar muitas práticas e acabaratrasando o cronograma de entrega do produto. É preciso saber quando usar cadarecurso das metodologias ágeis. Uma solução apresentada para esse problema é aprática Lean, que surge com a finalidade de ser o caminho para a mudança doestado atual da empresa (sem práticas ágeis) até o uso efetivo de uma metodologiaágil. Acredita-se que o Lean junto com o processo ágil WAAPRO pode tornar uma
  • 36equipe mais eficiente ao produzir aplicações web que gerem valor de negócios parao cliente.
  • 375 MODELO DE CUSTOMIZAÇÃO DO PROCESSO ÁGIL PARA APLICAÇÕESWEB - WAAPRO Diante da crescente necessidade de um processo de desenvolvimento ágilvoltado para aplicações web, foi proposto um modelo capaz de suprir os objetivosdos desenvolvedores, no que diz respeito a uma melhor organização dos projetos. A seguir, será descrito o processo WAAPRO (Processo Ágil paraDesenvolvimento Aplicações Web) e as características utilizadas do XP, SCRUM eP@PSI.5.1 O QUE É WAAPRO? WAAPRO é um processo ágil customizado com o objetivo de tornar projetos deaplicações web organizados, no que diz respeito aos ciclos de desenvolvimento edocumentação utilizada, e ser de fácil aceitação para desenvolvedores com poucaou nenhuma experiência no desenvolvimento de projetos utilizando metodologiaságeis. O WAAPRO é dividido em quatro fases, Planejamento, Desenvolvimento,Finalização e Manutenção, como mostra a figura 7. A seguir serão explicadas asfases do processo.5.2 PLANEJAMENTO A fase de Planejamento se inicia com o Levantamento e Análise de Requisitos.Neste momento, ocorre a primeira entrevista com o cliente, onde este expõe suasnecessidades e seus objetivos com o desenvolvimento de uma aplicação web. Éextremamente importante a equipe levantar todas as informações que possam serutilizadas no decorrer do projeto. Com as informações coletadas, a equipe começa a trabalhar nas estórias deusuário, ou seja, analisam cada situação proposta pelo cliente e as transformam emuma funcionalidade como, por exemplo, “Cadastrar Notícia”, representando atravésde um diagrama de caso de uso. Esse é o início da documentação do projeto. Com base nesses dados, é elaborada uma Proposta de Desenvolvimento, queé um documento que expressa todas as informações do projeto, no que diz respeitoao tempo de desenvolvimento, funcionalidades a serem desenvolvidas, mídias e
  • 38conteúdos a serem inseridos, o que o projeto não irá conter, ou seja, o que não fazparte do escopo do projeto, e o custo total. Em seguida, é realizada uma nova reunião com o cliente para apresentar aProposta de Desenvolvimento. Neste momento, o cliente decide se dará ou nãocontinuidade ao projeto. Caso ele não esteja de acordo com alguma especificaçãono documento, pode solicitar alteração. Sendo aprovado, o projeto segue para oinício da criação do briefing. De acordo com Waiteman (2005 p. 38), briefing consisteem: [...] no máximo, duas páginas com informações dissecadas e organizadas, que representam tudo o que o cliente deseja da agência. O briefing explica o problema, sugere caminhos de posicionamento e faz o pedido de trabalho. A você, cabe transforma o problema descrito no briefing em uma solução [...]. O briefing é o documento que auxilia todos da equipe a ter conhecimento sobreo cliente e, mais, serve para os responsáveis pela criação do template produziremas interfaces com base nas informações contidas no briefing. Durante a criação do template é necessário, também, criar um modelo deorganização, uma forma de melhor exibir as informações para o usuário, tornando aaplicação fácil de utilizar e navegar. Após o template finalizado, é necessária aaprovação do cliente, havendo alterações, o processo retorna para a etapa deCriação do template e Modelo de Organização, caso contrário é iniciado a etapa deDesenvolvimento.5.3 DESENVOLVIMENTO Com o início da fase de Desenvolvimento, o template passa por umrefinamento, ou seja, são coletadas e ajustadas as mídias e conteúdos que serãoimplementados na aplicação web. É o conteúdo solicitado previamente ao cliente,como imagens, vídeos, produção de textos, etc. Após o refinamento do template se inicia o ciclo de codificação dos casos deuso, que está divido em três etapas e não deve ultrapassar o período de quatrosemanas, sendo: Codificar funcionalidades, propriamente dito, escrever os códigos e toda alogica de programação, independente das ferramentas e tecnologias utilizadas, a
  • 39codificação tem que ser simples e de fácil manutenção. Para isso, são utilizadosalguns padrões de desenvolvimento, como programação orientada a objetos,frameworks de desenvolvimento ágil, padrões de programação para uso de bancode dados, entre outros. Para cada código escrito, são feitos testes, a fim de secertificar, que além de estar funcionando devidamente, não possui problemasquando for relacionado com outros elementos da aplicação. Com a funcionalidade devidamente codificada, segue-se para a fase deimplementação. Nesse momento, o código vai ser integrado a outros, podendo ser,ao código principal da aplicação. Em caso de erros, estes são corrigidos e váriostestes são feitos para que ao final do ciclo, a aplicação não apresente problemas.Para que não haja nenhuma falha, a funcionalidade ainda passa por mais testes,são os Testes de Funcionalidade. Nesse momento, a funcionalidade já está ativa na aplicação, mas é necessáriocertificar que tudo está em perfeita ordem para uso pelos usuários. Os testes servempara encontrar falhas, assim são simuladas as ações do usuário, caso sejaencontrado algum erro, o ciclo não é finalizado e retorna para a implementação, ouse necessário, para a codificação da funcionalidade. Para finalizar o processo de Desenvolvimento, é preciso fazer a integração dasmídias e conteúdo às funcionalidades. Por exemplo, seguindo o exemplo dadoanteriormente com a funcionalidade “Cadastrar notícia”, os itens necessários paracadastrar uma notícia seriam: texto, imagens, vídeos. Feito a inserção dessematerial, a funcionalidade está concluída e o ciclo continua até que todos os casosde uso sejam concluídos.5.4 FINALIZAÇÃO Na fase de Finalização entende-se que o produto já está completo,necessitando apenas de revisão. Nesse primeiro momento, são realizados testes emtodo o produto, testando cada funcionalidade e revisando todos os textos, bem comorevisão ortográfica nas palavras.Se tudo estiver pronto, o produto é então apresentado para o cliente. Caso, o clientenão esteja satisfeito com algum detalhe, o produto então retorna para o Refinamentodo Template (fase de Desenvolvimento), para que os detalhes possam serreavaliados e as alterações sejam feitas. Não havendo nenhum questionamento por
  • 40parte do cliente, o produto é então entregue, sendo necessário apenas otreinamento para utilização da plataforma de administração da aplicação web,quando necessário.5.5 MANUTENÇÃO No modelo tradicional de desenvolvimento de software, o produto geralmente éfinalizado na fase de encerramento, não tendo uma fase que contemple amanutenção do mesmo. Porém, no desenvolvimento web, as mudanças sãocontínuas, e não se pode dizer que o produto está finalizado após a entrega aocliente e ao seu treinamento. Pois mesmo após essas etapas, a aplicação podesofrer mudanças. Para solucionar esse problema é necessária uma fase deManutenção. Nessa fase é solicitada pelo cliente a alteração em alguma funcionalidade.Quando isso acontece, a funcionalidade volta para fase de Desenvolvimento, maisespecificadamente para a etapa Refinar Template, passando pelo ciclo dedesenvolvimento completo, depois para revisão da alteração, na fase de Finalização,até a apresentação da alteração para o cliente. Assim, pode-se dizer que a manutenção é uma consequência da entrega doproduto, porém cada mudança solicitada termina na fase de Finalização, porquepassa por todas as etapas dessa fase em um ciclo contínuo.
  • Figura 7 - Visão geral do WAAPROFonte: Arquivo Pessoal, 2012. 40
  • 426 ESTUDO DE CASO Este capítulo apresenta um estudo de caso, onde o processo ágil WAAPRO foiutilizado na empresa W3Mais Comunicação Interativa, para o desenvolvimento deum site interativo para a empresa Sistema Guarany de Comunicação. O site podeser visualizado através do link <http://www.portalguarany.com.br>.6.1 O CLIENTE O Sistema Guarany de Comunicação é um grupo formado pela Rádio GuaranyFM, TV e Portal Guarany. A Rádio Guarany FM foi inaugurada em 1981 com a ideia de expandir ostrabalhos que foram iniciados com o serviço de propaganda volante Guarany ecobertura de eventos religiosos. Atualmente a rádio opera na frequência 100,3 Mhze tem ouvintes de todas as faixas etárias, sendo a mais popular na cidade deSantarém (PORTAL GUARANY, 2012). Retransmissora da Rede Record de Televisão, a TV Guarany, “desde suaformação proporciona entretenimento, descontração e jornalismo opinativo decredibilidade mais perto do povo.” (PORTAL GUARANY, 2012). O Portal Guarany foi criado para suprir a necessidade de uma comunicaçãomais ampla via internet com os ouvintes, telespectadores e internautas. Assim, aRádio Guarany FM passou a ser ouvida por pessoas do mundo todo.6.2 O PROJETO A finalidade do Portal Guarany é ser um elo interativo entre os ouvintes daRádio Guarany e os apresentadores dos programas, bem como servir como portalde conteúdo com notícias regionais e do território brasileiro. As funcionalidadesprincipais são: Rádio Interativo, Notícias, Mural de Recados e Programação daRádio. Outras funcionalidades secundárias também fizeram parte do projeto, como:Galeria de fotos, Feed de posts do Twitter, Feed de notícias do Portal R7 3, sistema3 Portal de conteúdo da Rádio e Televisão Record S/A.
  • 43de Publicidade, código de rastreamento do Google Analytics e também, o link paraouvir a rádio on-line.6.3 PLANEJAMENTO A fase de Planejamento inicia-se através do contato com o cliente, no caso ocliente é o Sistema Guarany de Comunicação. Esta fase inclui o Levantamento eAnálise de Requisitos para entender as necessidades do cliente e quaisfuncionalidades o site irá conter; Proposta de Desenvolvimento que é a elaboraçãode um documento com as informações sobre o projeto e Briefing que é um recursoútil para o Designer criar um Template que se adeque a proposta do cliente.6.3.1 Levantamento e Análise de Requisitos A fase inicial do projeto diz respeito à avaliação da situação e dasnecessidades do cliente. Na primeira reunião o cliente expôs suas necessidades.Primeiramente, o site deveria ter uma seção específica em que o usuário pudesseresponder a questionamentos diários, sempre uma pergunta polêmica sobre aatualidade. Esses comentários seriam lidos pelo apresentador do programa RádioInterativo ao vivo, portanto os dados deveriam ser validados de modo que umusuário não se passasse por outro. Segundo, uma seção tipo mural de recados,onde os usuários pudessem enviar mensagens para qualquer pessoa. Terceiro, umaárea especial de notícias com quatro categorias específicas (Santarém, Pará, Brasil,Mundo). Quarto, mostrar o programa que a rádio estaria apresentando no momentoem que o usuário acessasse o site, além de um link que ao ser clicado, o usuáriopudesse ouvir a rádio ao vivo. Outras necessidades também foram mencionadas, como ter uma galeria defotos, onde o administrador pudesse cadastrar fotos dos eventos do SistemaGuarany de Comunicação. Uma forma de exibir as notícias do Portal R7 e aspublicações feitas no Twitter pela conta oficial do Portal Guarany. E, um sistema depublicidade, que empresas interessadas em anunciar no site pudessem ter seubanner exposto de forma simples. De posse dessas informações foi necessário transformar essas estórias deusuário em funcionalidades que o site iria conter. Para isso, foi elaborado um
  • 44Diagrama de Caso de Uso, que serviu para melhorar a visualização de todos osrecursos que o site poderia oferecer. A figura 8 mostra as funcionalidades exibidaspara os usuários, ou seja, o front-end4 do site. Figura 8 - Diagrama de Caso de Uso do Portal Guarany. Fonte: Arquivo pessoal, 2012. Para que o diagrama fique mais bem explicado, estão descritos todos os casosde uso (quadro 3). Quadro 3 - Descrição dos Casos de Uso do Portal Guarany. Apresenta as mensagens enviadas de Comentar Mural de Recados um usuário para outro. Exibe as notícias de todas as categorias em ordem de postagem. Visualizar Notícias Todas as notícias tem formulário para postagem de comentários com moderação pelo administrador. Uma pergunta com opção para o usuário comentar com os campos: Comentar Rádio Interativo nome, bairro e comentário. O comentário só fica visível após a4 Área pública visualizada pelo usuário de um site.
  • 45 liberação pelo administrador. Exibe o programa da rádio transmitido no momento e uma foto do Visualizar Programação ao vivo apresentador. Também exibe um link para o usuário ouvir o programa on-line. Link externo para o usuário ouvir a Ouvir Rádio on-line rádio on-line. Exibe postagens da conta Visualizar Feed Twitter @portalguarany no Twitter. Visualizar Feed Portal R7 Exibe notícias do Portal R7. Exibe fotos separadas por galerias Visualizar Galeria de fotos (álbuns).Fonte: Arquivo pessoal, 2012. O Portal Gurany possui funcionalidades que apenas podem ser vistas pelosadministradores do site. Para não haver confusão no desenvolvimento, foi feito umnovo Diagrama de Caso de Uso, mostrado na figura 9, apresentando asfuncionalidades acessíveis para os usuários da administração do site. Como mais deuma pessoa teria acesso, foi solicitado que os usuários tivessem níveis de acesso.Portanto, ficou definido que o nível Master teria acesso a todas as funcionalidadesdo sistema de administração e o nível Web Master teria acesso apenas à liberaçãode conteúdo, não podendo cadastrar novos usuários, por exemplo. Figura 9 - Diagrama de Caso de Uso do Sistema de Administração do Portal Guarany. Fonte: Arquivo pessoal, 2012.
  • 46 Quadro 4 - Descrição dos Casos de Uso do Sistema de Administração do Portal Guarany. Possibilita inserir, alterar, excluir eManter Notícias consultar notícias publicadas. Possibilita inserir, alterar, excluir osManter Administrador administradores do site. Possibilita inserir, alterar e excluirManter Destaque imagens em destaque na página inicial (slideshow) do site. Possibilita inserir, alterar, excluir eManter Programação ao vivo consultar os programas da Rádio Gurany FM. Possibilita inserir, alterar, excluir eManter Galeria de fotos consultar galerias de fotos publicadas no site. Possibilita consultar, publicar e excluir comentários publicados pelos ouvintes.Manter Rádio Interativo Além de poder inserir, alterar status e excluir as perguntas. Possibilita inserir e excluir asManter Publicidade publicidades do site. Possibilita publicar e excluir comentáriosManter Mural de recados feitos pelos internautas do site. É através desta funcionalidade que oFazer Login administrador pode ser acesso ao sistema administrativo.Fonte: Arquivo pessoal, 2012.6.3.2 Proposta de desenvolvimento Nesta etapa foi elaborada uma proposta de desenvolvimento (ver anexo A),que visa mostrar para o cliente quais funcionalidades seriam desenvolvidas e o queelas fariam (como exemplificado no Quadro 4), além de tempo e custo total dedesenvolvimento. Sabendo que o site iria ter páginas informativas e estáticas, como conteúdosobre a empresa, serviços, área comercial e formulário de contato, esses itens foraminseridos na proposta. Algo muito importante é a verificação de disponibilidade do domínio do site. Odomínio deveria ser portalguarany.com.br, que foi verificado e comprado junto aosite Registro.br, responsável pelo registro de domínios brasileiros.
  • 476.3.3 Briefing Após a aprovação da Proposta de Desenvolvimento pelo cliente foi necessárioelaborar um briefing (ver anexo B) com informações relevantes para odesenvolvimento do site, como informações sobre o Sistema Guarany deComunicação, a identidade visual, e o que seria utilizado no design do site. Essasinformações são úteis no processo criativo do designer responsável por criar oTemplate do site e das páginas que este contém.6.3.4 Template Para o desenvolvimento da parte visual do site foi utilizado o recurso wireframe.A equipe de desenvolvimento fez um rascunho do layout do site com asfuncionalidades descritas no Diagrama de Caso de Uso. O wireframe só representaa disposição do layout e pode ser visto abaixo, na figura 10. Figura 10 - Wireframe da página inicial do Portal Guarany. Fonte: Arquivo pessoal, 2012.
  • 48 A partir do wireframe o designer começou a trabalhar na parte estética do site,ou seja, o desenho com as cores e imagens dispostas no layout. Essa etapa exigiubastante criatividade, mas com o briefing em mãos a tarefa de construir o templateficou mais fácil, pois já se sabia que a cor principal seria um tom de verde e coresvariadas que indicassem cada seção do site, como mostra a figura 11. Terminado o template, este precisou ser aprovado pelo cliente. Para isso, emuma reunião o template foi apresentado e com poucos questionamentos, logo foiaprovado, dando sequência ao desenvolvimento. Figura 11 - Template do site Portal Guarany.Fonte: Arquivo pessoal, 2012.
  • 49 Também é necessário criar o layout para o sistema de administração do site,como mostra a figura 12. Nesse caso, não foi necessário passar pela aprovação docliente, pois essa parte do sistema apenas foi adaptada para o site Portal Guarany,uma vez que a tecnologia é licenciada pela W3Mais Comunicação Interativamediante contrato. Isso gera um ganho de tempo na inclusão e exclusão defuncionalidades no desenvolvimento de novas aplicações. Figura 12 - Sistema de Administração do Portal Guarany.Fonte: Arquivo pessoal, 2012.6.4 DESENVOLVIMENTO O projeto Portal Guarany possui muitas funcionalidades, portanto foi necessáriopriorizar algumas para iniciar a fase de desenvolvimento. O WAAPRO permitiu aoprojeto ser feito em módulos. Neste trabalho é apresentado, na etapa de codificação,o módulo que consiste em três funcionalidades, sendo elas: Mural de Recados,Notícias e Rádio Interativo. Na etapa de desenvolvimento foi testado um princípio do Lean que é adotarmedidas preventivas em tudo o que é feito, como um ciclo onde se planeja, executa,verifica e faz algo funcionar, seja um código ou uma funcionalidade inteira.
  • 506.4.1 Coleta de conteúdo Antes do início do desenvolvimento é necessário ter todo o conteúdo daspáginas. É especificado no contrato de desenvolvimento que o cliente tem um prazopara entregar todo o material necessário para o desenvolvimento do site, isso incluitextos, imagens, vídeos ou qualquer conteúdo que precise estar no site no ato daentrega (alguns conteúdos podem ser inseridos pelo próprio usuário através dosistema de administração). Com o conteúdo em mãos o desenvolvimento foipassado para a fase de codificação.6.4.2 Diagramação do Template A primeira etapa da codificação do site é transformar o Template – que é umaimagem – em código. Isso requer o uso de alguns recursos web como a linguagemde folhas de estilos CSS e o XHTML que é uma linguagem de marcação semântica. No CSS ficam as regras do que será exibido das páginas, como cores, fundos,tamanhos de divs5, posicionamento de divs, fonte do texto, etc. Cabe ao XHTMLseparar o conteúdo semanticamente para receber os estilos do CSS. O site fica exatamente igual ao desenho feito pelo designer, porém em formade códigos prontos para serem implementados em linguagem dinâmica, queespecificamente nesse projeto foi utilizado o PHP.6.4.3 Codificação No Portal Guarany foi utilizado alguns padrões de desenvolvimento comoorientação a objetos, MVC e DAO. Isso traz alguns benefícios, como a rapidez namanutenção do código. Para início da codificação das funcionalidades priorizadas foi utilizadoDiagrama de Classes para modelar as classes de cada funcionalidade. Basicamente, cada diagrama representa a classe seus atributos e uma classeauxiliar com os métodos de controle.5 Elemento HTML que define uma divisão na página e pode ter variadas formatações.
  • 51 A funcionalidade Notícia exemplificada pelo diagrama da figura 13 representaque cada notícia tem apenas uma categoria, podendo ser Santarém, Pará, Brasil,Mundo. Além disso, cada notícia pode receber comentários. Figura 13 - Diagrama de Classe da funcionalidade Notícia Fonte: Arquivo pessoal, 2012. A funcionalidade Rádio Interativo, representada na figura 14, mostra que há umrelacionamento entre uma questão e um comentário, onde a questão pode recebervários comentários, porém os comentários possuem um status do tipo boolean, queindica que o administrador do sistema é quem publica ou não o comentário.
  • 52 Figura 14 - Diagrama de Classe da funcionalidade Rádio Interativo Fonte: Arquivo pessoal, 2012. A terceira funcionalidade priorizada foi a Mural de Recados (figura 15). Aquipode-se ver que apenas uma classe faz o controle dessa funcionadade. O usuáriopode enviar um comentário para um outro usuário, porém esse comentário só ficavisível mediante publicação do administrador do sistema, por isso o uso do atributostatus com tipo de dado boolean. Figura 15 - Diagrama de Classe da funcionalidade Mural de Recados Fonte: Arquivo pessoal, 2012.
  • 53 Também foi utilizado o Diagrama ER para modelar o banco de dados e paradefinir as tabelas necessárias para armazenamento de conteúdo. Este tipo deartefato ajuda a entender melhor os relacionamentos entre tabelas. Como mostramas figuras 16, 17 e 18, representando as funcionalidades Notícia, Rádio Interativo eMural de Recados respectivamente. A partir disso, foi possível criar todo umconjunto de classes que permitem manipular os dados das tabelas. Figura 16 - Diagrama ER - Notícia. Fonte: Arquivo pessoal, 2012.
  • 54 Figura 17 - Diagrama ER - Rádio Interativo. Fonte: Arquivo pessoal, 2012. Figura 18 - Diagrama ER - Mural de Recados. Fonte: Arquivo pessoal, 2012. A modelagem do sistema foi realizada de forma iterativa, pois os modeloscriados foram surgindo conforme a necessidade de registrar o que se produzia. Essaforma de trabalhar é característica das metodologias ágeis.
  • 55 Durante o desenvolvimento do Portal Guarany algumas funcionalidades ficaramum pouco confusas na hora da codificação, uma delas foi o caso de uso RádioInterativo, responsável direto pela interação dos usuários do site com a RádioGuarany FM. De fato, o cliente queria que cada pessoa que comentasse na RádioInterativo fosse única e esses comentários deveriam ser moderados pelaadministração. O problema era como fazer isso da forma mais simples possível eque não dificultasse a forma de interação do usuário com o site. Ao se tentar fazer oque o cliente queria, perdeu-se muito tempo desenvolvendo uma funcionalidade deforma que não gerava valor algum para o cliente e ainda dificultava a interação comousuário. Seguindo a ideia de processo enxuto Lean, para criar algo que realmentetrouxesse valor para o negócio do cliente foi feita uma análise de como o RádioInterativo funcionaria. Uma forma de solucionar o problema foi visualizá-lo melhorcom diagramas de sequência. Não só para a funcionalidade Rádio Interativo, masnesse módulo procurou-se fazer também para a funcionalidade Notícia e Mural deRecados. Na funcionalidade Notícia, representada pelo diagrama de sequência na figura19, foram discutidos quais campos seriam preenchidos pelo usuário e se ocomentário seria moderado pelo administrador ou não. Por fim, a equipe concordouque todos os comentários seriam moderados pelo administrador, onde este poderiaapenas excluir ou publicar o comentário, ficando impedido de alterar qualquerinformação. Essa análise foi fundamental para desenvolver outras funcionalidadesque teriam o mesmo princípio.
  • 56 Figura 19 - Diagrama de Sequência da ação comentar NotíciaFonte: Arquivo pessoal, 2012. Quando foi necessário fazer a codificação da funcionalidade Rádio Interativo,houve uma dificuldade em tentar encontrar a forma mais simples de um usuáriocomentar um questionamento. O cliente queria que o sistema pudesse identificarfraude em um comentário, ou seja, um usuário não poderia comentar com o nomeou outra informação pessoal igual à outra pessoa. A solução final, e mais simples, foique o usuário teria três campos para inserir dados, sendo Nome, Bairro eComentário, pois são as informações que o apresentador do Programa RádioInterativo lê ao vivo. Todos os comentários são moderados pelo administrador dosistema. Somente após a publicação os comentários ficam visíveis para o usuário esomente enquanto o questionamento estiver no ar. A representação do diagrama desequência pode ser vista na figura 20.
  • 57 Figura 20 - Diagrama de Sequência da ação comentar Rádio InterativoFonte: Arquivo pessoal, 2012. Quando a funcionalidade Mural de Recados foi codificada, já se tinha umconhecimento de como ela iria se comportar, porém ainda foi representada atravésde um diagrama de sequência (figura 21) que mostra a ação de enviar um recado ea publicação do mesmo pelo administrador do sistema. Aqui a funcionalidade seguea mesma ideia das outras, o recado só fica visível após a permissão peloadministrador, e este pode excluir o comentário a qualquer momento, mesmo após apublicação.
  • 58 Figura 21 - Diagrama de Sequência da ação de enviar recado através do Mural de RecadosFonte: Arquivo pessoal, 2012. Como pôde ser notado no decorrer do processo de desenvolvimento, oWAAPRO permitiu gerar conhecimento para toda a equipe discutir sobre como umafuncionalidade iria se comportar e assim gerar conhecimento para funcionalidadesfuturas. Os diagramas foram muito importantes para esclarecer dúvidas, pois muitasvezes uma pessoa da equipe não conseguia visualizar, ou mesmo, fazer o clienteentender como determinada ação acontecia.6.5 FINALIZAÇÃO Na etapa de Finalização busca-se fazer testes de toda a funcionalidade ou doprojeto inteiro pronto a fim de encontrar erros. Também, é caracterizada pelaentrega da aplicação para o cliente e o treinamento do mesmo.
  • 596.5.1 Revisão do Produto Cada funcionalidade foi testada a fim de localizar erros. Quando umafuncionalidade apresentava um erro, ela voltava para a fase de Desenvolvimento atéestar pronta para ser testada com o site todo. Essa revisão do produto é importantepor simular a ação do usuário ao acessar o site, bem como o administrador dosistema no momento de gerenciá-lo. O Portal Guarany tem muitas funcionalidades ena hora de testar tudo algumas coisas não saíram como planejado, como o caso deuso Ver Programação ao Vivo. No momento do teste percebeu-se que o fuso horáriodo servidor era diferente do fuso horário brasileiro (Brasília), assim tendo que voltarpara o Desenvolvimento até ser corrigido e pronto para apresentar ao cliente.6.5.2 Apresentação do produto ao cliente O Portal Guarany foi apresentado através de uma reunião da equipe dedesenvolvimento com o cliente. Foi demonstrada cada funcionalidade emfuncionamento. Após o término da apresentação o cliente deu seu parecer sobre oproduto, no final gostou do que viu. Vale ressaltar que o site já estava em suahospedagem oficial, porém acessível apenas para a equipe de desenvolvimento.6.5.3 Entrega do produto A entrega do produto foi feita a partir do momento em que o site foi liberadopara que todos pudessem acessá-lo, deixando-o visível na web.6.5.4 Treinamento A administração do site possui muitas funcionalidades, tudo intuitivo, porém ocliente queria que fosse ministrado um treinamento para duas pessoas responsáveispela administração do Portal Guarany. O treinamento foi feito de forma presencial efoi realizado em dois dias.
  • 606.6 MANUTENÇÃO A fase de Manutenção existiu nesse projeto apenas para edição de algunstextos em páginas estáticas e manutenção de funcionalidades e do banco de dadosque vez ou outra ocorria erros. Dessa forma, qualquer item a ser mudado no sitepassava por todo o processo de Desenvolvimento até a Finalização.
  • 617 CONCLUSÃO O processo ágil WAAPRO se mostrou eficiente no desenvolvimento deaplicações web, como pôde ser constatado no desenvolvimento do Portal Guarany.O uso de etapas permitiu melhor controle do que se estava fazendo e não deixandoa equipe se perder quando ocorriam mudanças nos requisitos. Em algumas etapas do projeto ficou evidente que o uso de um processo ágilajuda a minimizar desperdícios de tempo, regra fundamental de um processo Lean.Como por exemplo, durante a codificação da funcionalidade Rádio Interativo, osrequisitos mudaram diversas vezes, a primeira vez foi produzido algo que o clientequeria, porém não gerava valor algum. Isso foi constatado quando o site foi ao ardurante alguns dias para testes com usuários iniciais. Durante aproximadamente 1semana, não houve nenhum comentário na Rádio Interativo, isso significava quealgo de errado estava acontecendo. Portanto, a funcionalidade foi refeita mais duasvezes, e somente na terceira mudança é que os comentários começaram aaparecer. Para isso, tudo que dificultava a ação de comentar foi retirado. O usuáriosimplesmente comentava e esperava o comentário ser publicado pelo administrador. O Lean passou a ser fundamental junto com o processo ágil WAAPRO, poistoda a equipe pôde aprender melhor como realizar as atividades focando no produtoe no usuário, além de fazer somente o que gerava valor para o cliente. Entretanto avisão do Lean foi superficial. Percebe-se que para o aprendizado de umametodologia ágil e uma mudança de cultura numa empresa que não utiliza esse tipode processo de desenvolvimento leva bastante tempo, porque no início é difícilassimilar o funcionamento do processo e mais difícil ainda é abandonar algunsvícios, como o “pensar e fazer”, sem planejar cada etapa do processo dedesenvolvimento. O uso de metodologias ágeis como o XP e o Scrum foram de extremaimportância para se ter uma visão mais ampla do que poderia ser utilizado comocaracterística para a criação do WAAPRO, uma vez que essas metodologias jáforam bastante testadas. O P@PSI permitiu ter uma melhor ideia de como umprocesso ágil pode ser customizado e quais seus benefícios. Procurou-se mostrar o funcionamento do WAAPRO através de um estudo decaso para ter a validação do processo ágil junto com uma equipe dedesenvolvedores que não utilizavam nenhum tipo de processo específico nos
  • 62projetos, assim pôde-se ter um feedback quanto às vantagens do processo ágil juntocom o processo enxuto Lean em uma empresa. O resultado foi positivo, a equipeconseguiu assimilar a ideia, porém levou bastante tempo. Não foi possível verificar olead time6 em todas as etapas, pois não tinha como comparar com outro estudo decaso ou outro projeto feito a partir do WAAPRO. Assim, o WAAPRO foi customizado para ser um processo simples de serutilizado por equipes inexperientes, mas que tenham interesse por um processo paraorganizar e gerenciar melhor o desenvolvimento de uma aplicação web. Éimportante ressaltar que para que um processo ágil se torne eficiente precisa partirde uma mudança de cultura numa empresa ou na equipe de desenvolvimento. OLean sugere principalmente para empresas pequenas, uma série de princípios erecursos para que desenvolvedores possam adquirir conhecimento para aplicar juntocom um processo ágil no decorrer de um projeto. Portanto, a fim de evitardesperdícios, fazer somente o necessário quando for necessário e ter umaorganização e gerenciamento melhor dos projeto web, o WAAPRO surge com essaalternativa. Mesmo tendo sido visto superficialmente como forma de introduzir o processo egerar conhecimento para a equipe, com o Lean pôde-se comprovar uma melhora nodiálogo e na percepção de erros antes da implementação ou mudança de requisito.Ainda é necessário um aprofundamento na visão Lean para verificar as reaismudanças dentro de uma empresa que utiliza um processo ágil como o WAAPRO, afim de verificar em que pontos ela se torna realmente enxuta. Neste trabalho a únicaetapa testada foi o Desenvolvimento, tendo resultados positivos. São necessáriosmais testes com WAAPRO no desenvolvimento de aplicações web, para se ter umaideia se todas as etapas funcionam e o que precisa ser melhorado, a partir da visãode outros desenvolvedores. Espera-se, que a partir deste trabalho apresentado sobre a utilização demetodologias ágeis na customização do processo web WAAPRO, possam surgirprojetos relacionados com o tema. Pois o mesmo oferece muitos benefícios para osdesenvolvedores que queiram manter seus projetos enxutos.6 Tempo em que se recebe um requisito até a entrega da funcionalidade.
  • 63 REFERÊNCIASÁLVARES, Patrícia Marques Rodrigues de Sousa. WebPraxis – Um processopersonalizado para projetos de desenvolvimento para a Web. 2001. 105p.Dissertação (Pós-Graduação em Ciência da Computação). Instituto de CiênciasExatas da Universidade Federal de Minas Gerais. Belo Horizonte, 2001. Disponívelem: <http://homepages.dcc.ufmg.br/~wilson/pesquisa/DissertacaoPatricia.pdf>.Acesso em 08 dez. 2011.BECK, Kent. Programação Extrema (XP) explicada: Acolha as mudanças. PortoAlegre: Bookman, 2004.BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML: Guia do Usuário. 6ed. Rio de Janeiro: Elsevier, 2005.CRESCÊNDIO, Samuel. A Pirâmide Lean: O equilíbrio das Forças Ágeis. Edição38. Devmedia Group, 2011. Disponível em: <http://www.devmedia.com.br/esmag>.Acesso em 28 abr. 2012. ISSN 1983127-7.DAVIDSON, Edgard. Princípios do Pensamento Lean. Disponível em:<http://edgarddavidson.com/?p=1070>. Acesso em 23 nov. 2011.DE CARVALHO, Bernardo Vasconcelos. Aplicação do método ágil Scrum nodesenvolvimento de produtos de software em uma pequena empresa de basetecnológica. 2009. 100p. Dissertação (Mestrado em Engenharia de Produção).Universidade Federal de Itajubá, Itajubá, 2009. Disponível em:<http://adm-net-a.unifei.edu.br/phl/pdf/0034997.pdf>. Acesso em 25 nov. 2011.DINHEIRAMA ONLINE. Dinheirama – Gerenciador de Conteúdo Financeiro.Disponível em: <https://www.dinheiramaonline.com.br>. Acesso em: 28 abr. 2012.GELLER, Marla; KNEBEL, Clóvis; BENTES JÚNIOR, João. GTA – Grupo deTrabalho Ágil – Desenvolvimento Ágil de Software através da customização deprocessos. III Congresso Sul Catarinense de Computação. Criciúma – SC, 2007.GOLÇALVES, Geraldo Magela Dutra. A gerência de projetos de software emduas perspectivas – Parte 2: Scrum. Edição 38. Devmedia Group, 2011.Disponível em: <http://www.devmedia.com.br/esmag>. Acesso em 28 abr. 2012.ISSN 1983127-7.JACYNTHO, Mark Douglas de Azevedo. Processos para Desenvolvimento deAplicações Web. 2008. 25p. Monografias em Ciência da Computação Rio deJaneiro, Pontifícia Universidade Católica. 2008. Disponível em:<ftp://ftp.inf.puc-rio.br/pub/docs/techreports/09_23_jacyntho.pdf>. Acesso em 02 jun.2012.LUNA, Alexandre; COSTA, Cleyverson; DE MOURA, Hermano. A necessidade deser ágil: Uma análise crítica sobre nove métodos ágeis. Edição 27. Devmedia
  • 64Group, 2011. Disponível em: <http://www.devmedia.com.br/esmag>. Acesso em 28abr. 2012. ISSN 1983127-7.MELO, Ana Cristina. UML – Diagrama de Sequências: Descobrindo comomodelar um diagrama de sequências. Edição 15. Devmedia Group, 2009.Disponível em: <http://www.devmedia.com.br/esmag>. Acesso em 23 abr. 2012.ISSN 1983127-7.PORTAL GUARANY. Sistema Guarany de Comunicação. Disponível em<http://portalguarany.com.br/sgc.php>. Acesso em 26 mai. 2012.SATO, Danilo. Introdução à Programação Extrema (XP). Engenharia de SoftwareMagazine. Edição 10. Devmedia Group, 2009. Disponível em:<http://www.devmedia.com.br/esmag>. Acesso em 22 abr. 2012. ISSN 1983127-7.SOARES, Michel dos Santos. Comparação entre Metodologias ÁgeisTradicionais para o Desenvolvimento de Software. Infocomp: Jornal of ComputerScience. v 3, n 2, nov. 2004. Disponível em:<http://www.dcc.ufla.br/infocomp/artigos/v3.2/art02.pdf>. Acesso em 25 nov. 2011.TANIGUCHI, Kenji; CORREA, Fernando Eugenio. Metodologias Ágeis e aMotivação de Pessoas em Projetos de Desenvolvimento de Software:Aplicando práticas de SCRUM e XP para promover a motivação de equipes deprojetos de desenvolvimento de software. São Paulo, v. 4, n. 4, 2009. Disponívelem: <http://sare.unianhanguera.edu.br/index.php/rcext/article/viewFile/1612/953>.Acesso em 02 jun. 2012.TELES, Vinícius Manhães. Um Estudo de Caso da adoção das práticas e valoresdo Extreme Programming. 2005. 179p. Dissertação (Mestrado em Informática)Universidade Federal do Rio de Janeiro, Núcleo de Computação Eletrônica, Rio deJaneiro, 2005. Disponível em: <http://www.improveit.com.br/xp/dissertacaoXP.pdf>.Acesso 21 nov. 2011.WAITEMAN, Flávio. Manual Prático de Criação Publicitária: O dia-dia da Criaçãoem uma Agência. São Paulo: Nobel, 2006. p 38. ISBN 85-213-1309-8.
  • 65ANEXOS
  • 66 ANEXO A – PROPOSTA DE DESENVOLVIMENTO PORTAL GUARANYAgência: W3MAIS COMUNICAÇÃO INTERATIVACliente: PORTAL GUARANYProposta para desenvolvimento e administração de SiteI – NOSSA EMPRESA A W3MAIS é uma agência web legalmente constituída, associada àAssociação Comercial e Empresarial de Santarém (ACES). Para conhecer um pouco mais da agência é só acessar o sitewww.w3mais.com.br e conhecer nossas soluções.II – NOSSA PROPOSTA Nossa proposta consiste no desenvolvimento de um site para o Portal Guarany,incluindo layout personalizado. Segue abaixo as sugestões das sessões do site. Seção FunçãoPrincipal Página inicial com chamadas para as principais seções do site. Apresenta descrição da empresa incluindo missão, visão eSGC valores.Notícias Lista todas as notícias em ordem de publicação. Apresenta todos os serviços úteis para os usuários (ex: númeroServiços do telefone do CIOP, Hospital Regional, PSM, Bancos, etc).Participe Lista links Mural de Recados, Rádio Interativo e Redes Sociais.Fotos Lista as galerias de fotos dos eventos da empresa. Seção destinada para apresentação das empresas do grupoComercial SGC e informações para anunciantes. Exibe as formas de contato da empresa: telefones, e-mails eFale conosco endereço.Rádio Interação com os usuários através de uma pergunta principalInterativo com opção para comentários.Mural de Interação entre usuários por meio de comentários,Recados
  • 67 Exibe o programa que está sendo transmitido no momento emProgramação que usuário está acessando o site.III – INVESTIMENTODesenvolvimento Opções de parcelamento R$ Valor Total R$Administração(valor) mensal com os seguintes serviços inclusos:  Painel administrativo para cadastro, exclusão ou edição de conteúdo;  Hospedagem do site;  Relatório de visitas;  Monitoramento do site;  05 Contas de e-mail personalizado (nome@nomedosite.com.br);  Suporte técnico em horário comercial sempre que solicitado;O prazo para desenvolvimento e publicação do site é de 45 (quarenta e cinco)dias. Santarém – PA, 17 de Novembro de 2011W3mais Comunicação Interativa Ltda.E-mail: atendimento@w3mais.com.brTelefones: (93) 3522.5689 / 9131.1989Obs.: Esta proposta é válida por 10 (dez) dias
  • 68 ANEXO B – BRIEFING PARA CRIAÇÃO DO TEMPLATE DO PORTAL GUARANYAgência: W3MAIS COMUNICAÇÃO INTERATIVACliente: PORTAL GUARANYBriefing para criação do template do Portal Guarany.1. Sobre o clienteO Portal Guarany é o terceiro elemento do Sistema Guarany de Comunicação queenvolve Rádio, TV e Portal.2. Serviços oferecidosNotícias das cidades, Programação da TV Guarany e Interatividade com a rádio.3. Referência de sites (outras empresas)http://www.baladain.com.br/ (ver formato como os parceiros são exibidos).http://www.baladacerta.com.br/4. Público alvoTodas as idades5. O site vai ter os seguintes itens no menuPrincipal, SGC, Notícias, Serviços, Participe, Fotos, Comercial, Fale Conosco.6. Informações importantes sobre a página inicial do site- No topo do site deve ter um botão “Ouça ao Vivo a Rádio Guarany”- Banner com revezamento do mesmo tamanho de http://rederecord.r7.com/ e com omesmo formato: Foto + Título dentro da foto.- Notícias: Lista as últimas 5 notícias com foto.- 1 Banner Publicitário do tipo retângulo.- Mural de Recados: Exibe os últimos dois recados do mural.- Rádio Interativo: É uma enquete com perguntas. Ex: “O que você acha da situaçãodas ruas de Santarém? Você acha que está faltando mais atenção dosgovernantes?”. E em seguida coloca dos botões. 1- Dê sua opinião 2- Leia oscomentários.- Fotos: Exibe uma galeria de fotos.
  • 69- Twitter: Exibe os dois últimos posts do twitter parecido com o que tem emwww.saoraimundo.com.br- No rodapé deve ter os logotipos do Sistema Guarany de Comunicação, da TVGuarany (afiliada a Rede Record – Logotipo), Rádio Guarany.7. CoresPode manter as cores do site anterior.Background: #F9F9FC;Menu: #667E00;Títulos: cores sortidas em cada seção.8. Imagem a ser transmitida para os usuáriosJovialidade e alegria (sem ser infantil).