• Nenhum resultado encontrado

2. Enquadramento Teórico

2.3. Desenvolvimento Ágil de Projetos

2.2.3. Métodos Ágeis

A implementação de métodos ágeis numa organização para o desenvolvimento de projetos tem como principais objetivos a rápida reação e entrada no mercado, o incremento da produtividade, a conclusão rápida dos requisitos propostos e cumprimento de prazos de entrega, o retorno mais rápido de investimento, maior qualidade, menores custos, aumento da satisfação do consumidor e ir de encontro às suas necessidades reais de negócio. Para

isto acontecer, os princípios e práticas associados aos métodos ágeis existentes devem trabalhar em conjunto para alcançar estes objetivos, como por exemplo, através da redução dos ciclos de entrega e maior adaptabilidade e flexibilidade a novos requisitos propostos (Tomás, 2009).

Em seguida, são apresentados os métodos ágeis mais destacados na área da gestão ágil de projetos e as suas principais características.

Extreme Programming (ou vulgarmente “XP”) é uma abordagem orientada a objetos e é composto por quatro atividades. O planeamento é criado pelo cliente através de um conjunto de histórias (user stories) que descrevem as características e funcionalidades do produto. O cliente atribui a cada funcionalidade um valor de prioridade e a equipa atribui- lhes custos. O cronograma é desenvolvido em conjunto pela equipa e cliente e é baseado nas histórias apresentadas, histórias estas que podem ser adicionadas a qualquer momento do desenvolvimento do projeto. O desenvolvimento do projeto é marcado pela filosofia KIS – Keep it Simple – e implica o desenvolvimento de protótipos funcionais seja da totalidade do projeto ou apenas de certas partes. Nesta fase é encorajada a re-fabricação, uma técnica de construção que implica aperfeiçoar o sistema interno sem que se altere o funcionamento externo. Antes da fase de codificação – em que é promovido o trabalho a pares do qual resulta mais rapidez e melhor qualidade - está prevista a realização de testes para confirmar a satisfação das histórias. Ao longo das várias interações são mantidos testes unitários, no final, são agrupados aos testes de regressão de forma a confirmar que nada deixou de funcionar (Wells, 2013). Assim, XP defende valores como a simplicidade, comunicação, feedback e coragem, funciona juntando toda a equipa na presença de práticas simples que orientem a equipa quanto a práticas a adoptar em situações mais complexas. Cada colaborador do projeto faz parte da equipa, esta forma-se em torno do cliente e trabalham juntos diariamente. Este método utiliza uma forma simples de acompanhar e planear, para decidir o que fazer a seguir e quando o projeto estará feito e é focado no valor de negócio, visto que a equipa produz uma série de entregas pequenas, totalmente integradas que passam nos testes definidos pelo cliente (Cobb, 2011).

SCRUM é um método ágil criado em 1990 por Jeff Sutherland que utiliza um conjunto de “padrões de processo de software” adequados para projetos em prazos curtos e com frequentes mudanças nos requisitos. SCRUM é um nome baseado na formação scrummage do rugby, usada para reiniciar o jogo depois de um evento que o fez parar,

forma intensiva e interdepende e em eventos e informações reais e tomada de decisões em tempo real (Cobb, 2011). As suas atividades associadas incluem a fase de Pendência, a organização de uma lista de requisitos ou características do projeto que fornecem valor de negocio para o clientes. Nesta fase, o gestor de projeto avalia e define prioridades quando necessário. Os Sprints são unidades de trabalho necessário para satisfazer um requisito num ambiente estático e num determinado e curto período de tempo (normalmente de 30 dias). As reuniões devem ser curtas, normalmente de 15 minutos e cada participante deve responder às questões “o que fiz ontem?”, “o que vou fazer hoje?” e “que obstáculos impedem o meu progresso?”. Por fim, a fase de Demos implica a entrega de protótipos funcionais de modo a que as funcionalidades possam ser testadas e avaliadas pelo cliente. O SCRUM prevê a repetição alternadas destas fases até à finalização do projeto – o projeto termina quando já cumprir todos os requisitos propostos ou por entrada antecipada no mercado (Tomás, 2009). Este método implica equipas bem treinadas e especializadas capazes de autogestão, comunicação e tomada de decisões. As equipas na organização trabalham em conjunto enquanto se focam constantemente nos seus interesses comuns (Cobb, 2011).

Future Driven Devlopment (FDD) é um método criado por Peter Coad e posteriormente melhorado por Stephen Palmer e Jonh Felsing. É orientado a objetos e aplicado a projetos de tamanho moderado ou grande, com lógicas complexas de negócio. A sua prática principal está associada ao agrupamento e priorização de características. Estas características são funções que o cliente valoriza e que podem ser implementadas em menos de duas semanas e têm formato próprio para serem descritas. Este método ágil não prevê, no entanto, metodologias a aplicar em fases importantes de um projeto como design e teste (Martin, 2003).

Dynamic Systems Development Method (DSDM) é um processo que tenta fornecer forma de construir e manter sistemas que satisfaçam restrições apertadas de prazos por meio de uso de prototipagem incremental num ambiente controlado de projeto. O DSDM regra-se pelo Principio Pareto 80-20, que diz que 80% de uma aplicação pode ser entregue em 20% do tempo que leva a entregar a aplicação completa (100%). Este método implica um processo interativo em que apenas um certo trabalho é necessário para cada incremento facilitar o avanço do incremento seguinte. Os detalhes são completos ao longo do processo, quando mais requisitos forem conhecidos mais existe essa necessidade (Tomás, 2009).

2.2.3.1. Vantagens e Desvantagens dos Métodos Ágeis

Os métodos de desenvolvimento ágil reduzem o tempo de entrega da primeira versão ao cliente, o que torna mais fácil a correspondência do produto às exigências do cliente e, portanto, reduz o número de projetos falhados. Todo o processo está virado para responder à evolução das necessidades de adaptabilidade. Existe um aumento de controlo por parte do gestor, do que resulta uma menos especulação sobre o que vai ser feito, maior visibilidade e adequação das medições e avaliação do estado das funcionalidades e tarefas realizadas. Os métodos ágeis aproximam equipas e gestores, através da promoção da interações e comunicação; por sua vez, a maioria da documentação é produzida pelas ferramentas de trabalho o que alivia as equipas e disponibiliza-as para se concentrarem noutro tipo de processos. Estes métodos não foram pensados para projetos muito longo e, portanto, não são facilmente escaláveis, podem ser difíceis de gerir para equipas grandes, implicam gestão de tempo árdua e menor controlo de custos, visto que o projeto termina quando o cliente considerar que não é necessário acrescentar mais nenhum requisito e não segue um plano e orçamento propostos inicialmente (Tomás, 2009). As metodologias ágeis são, portanto, ideias para projetos em que os requisitos vão evoluindo e não e necessária uma excessiva divisão de – as equipas são idealmente de 9 pessoas (Highsmith & Cockburn, 2001).

2.2.3.2. Ferramentas que suportam metodologias ágeis

No mercado existe um grande conjunto de ferramentas de software que apoiam o desenvolvimento de projetos baseado em metodologias ágeis, nomeadamente “Agileplatform”, desenvolvida pela Outsystems, uma solução unificada que suporta todo o processo de construção para a web com recurso a metodologias ágeis; “Vision Project”, uma ferramenta bastante completa quanto a relatórios e gestão de projetos, alertas, bases de conhecimento, fóruns por projeto, configuração, exportação de relatórios e helpdesk; “Pivotaltracker”, uma alternativa mais simples que os anteriores, mas assenta nas mesmas bases, permitindo o controlo de tarefas e do seu estado de desenvolvimento; e “Target Process”, uma ferramenta muito complexa e personalizável que permite o recurso a plugins, automatização de inputs e outputs assim como ferramentas de código e teste (Tomás, 2009). Na 3.6.2.2. Fase de Diagnóstico (Cf. 73) é apresentado um estudo detalhado deste tipo de ferramentas, uma análise aprofundada das suas características, vantagens e desvantagens.

Por fim, é necessário focar que nem todos os projetos ou equipas são ajustados a metodologias ágeis; por vezes, é mais seguro optar por metodologias tradicionais. O Método Baseado na Análise de risco integra uma análise de pontos fortes e fracos destas mesmas metodologias, avaliando o risco inerente à sua utilização em determinado projeto ou equipa. Este método não visa a simples escolha de um método mas a avaliação das vantagens e desvantagens associadas (Boehm & Turner, 2003).