Gerenciamento E Desenvolvimento Ágil.
Motivação.
Desenvolver software de qualidade é algo extremamente difícil. Muitos problemas podem acontecer durante este processo, existem estudos que relatam o seguinte:
1. Que 75% dos projetos falham devido a funcionalidades solicitadas (Standish Group, 2004)
2. Que de 42% a 64 % dos defeitos se originam nas funcionalidades solicitadas e de 20% a 40% dos gastos totais são devidos a correções, causadas por erros nas funcionalidades solicitadas. (SEI Research Report, 2004).
Isso nos diz que desenvolver software é um investimento arriscado, uma tarefa que deve ser medida e redirecionada dia-a-dia. Fazendo-se uma analogia, é como investir seu dinheiro na bolsa de valores. Mas na bolsa de valores você não deixa seu dinheiro esquecido por seis meses e so depois volta para ver o que aconteceu, você verifica todos os dias, estuda riscos, acompanha o mercado, se adapta a mudanças, faz as correções que acha correto e ai obtem os lucros, isso também se aplica a desenvolvimento de software.
O sucesso do software depende de ponto de vista do cliente e da empresa desenvolvedora, às vezes eles podem ter conceitos diferentes de sucesso.
Sucesso na visão da empresa desenvolvedora de software é quando o projeto é entregue no prazo e dentro dos custos.
Sucesso na visão do cliente é quando o projeto é entregue no prazo, dentro dos custos, com todos os requisitos funcionando e atendento as necessidades de seu negócio.
Para tentar resolver estes problemas, um grupo de pessoas ligadas a área de desenvolvimento se reuniu e discutiu sobre este assunto.
Eles chegaram a um acordo sobre práticas que ajudariam a diminuir estes riscos. Eles publicaram um documento, onde ficam expostas estas práticas, este documento foi chamado de Manifesto Ágil ( http://www.agilemanifesto.org )
O que é o Manifesto Ágil?
O Manifesto ágil é um conjunto de práticas que ajudam a solucionar problemas referentes a desenvolvimento de software e valorizam as pessoas que trabalham no projeto, o cliente e mudanças no negócio do cliente.
Diminui o valor de algumas práticas e super valoriza outras, seu foco é software de qualidade e funcionando, atendendo as necessidades do negócio.
Manifesto para Desenvolvimento Ágil de Software
Nós estamos procurando melhores maneiras de desenvolver
software fazendo isso e ajudando outros a fazer isso.
Para realizar este trabalho nós priorizamos estes valores:
Pessoas e Interações ao invéz de processos e ferramentas
Trabalhar no software ao invéz de documentação compreensiva
Colaboração do cliente ao invéz de negociação de contrato
Responder a mudanças ao invéz de seguir o plano
Isto é, valorizamos o valor dos itens a direita,
mas damos mais valor para os itens a esquerda.
Uma equipe ágil vai além de apenas usar estas práticas, todos os comprometidos (time de desenvolvimento e cliente), devem concordar com estas práticas e valores. É um processo de colaboração, afinal todos querem o mesmo resultado, o sucesso.
Como todo negócio, o cliente quer prazos e garantias de retorno do investimento, para isso precisamos gerênciar o processo. Neste momento precisamos de uma forma de controlar este ambiente dia-a-dia, para essa finalidade usaremos um framework de gerênciamento ágil chamado SCRUM. Existem outras opções que podem ser usadas, afinal cada projeto é diferente um do outro e exigem diferentes abordagens, mas, optamos pelo SCRUM por concordarmos mais com suas práticas.
O que é o SCRUM?
Scrum é um processo ágil para desenvolvimento de software. Com Scrum, projetos progridem via uma série de interações mensais chamadas de sprints.
Scrum é a ferramenta ideal para projetos que rapidamente tem que se adaptar a mudanças ou um alto número de requerimentos que surgem durante o processo. O trabalho que deve ser feito em um projeto Scrum é listado em um Product Backlog, que é a lista de tudo que se quer no produto. No inicio de cada sprint um Sprint Planning Meeting é realizado para que o Product Owner priorize o Product Backlog, isto é ordene o que tem que ser feito de acordo com sua necessidade e o Scrum Team seleciona as tarefas que eles podem completar durante o Sprint que irá começar. Estas tarefas então são movidas do Product Backlog para o Sprint Backlog.
Cada dia durante o sprint é conduzido por uma breve reunião diária chamada de Daily Scrum, que ajuda o time a não perder o foco, resolver problemas mais rapidamente e ficar dentro do prazo.
No final de cada sprint o time demostra a(s) funcionalidade(s) que foram realizadas em um Sprint Review Meeting.
Ciclo de um projeto gerenciado pelo SCRUM:
O que é o Extreme Programming?
Extreme Programming (XP) e atualmente a mais ponderada e disciplinada maneira de desenvolver software.
XP e bem sucedida por se preocupar muito com a satisfacao do cliente. A metodologia e designada a entregar o software que seu cliente precisa quando ele precisa. XP encoraja seus desenvolvedores a ter confianca ao responder as mudancas de requerimentos do cliente, que sempre sao de ultima hora.
Esta metodologia enfatiza no trabalho em time. Gerentes, clientes e desenvolvedores sao todos parte de um time dedicado a entregar um software de qualidade. XP implementa simplicidade de maneira efetiva e abilita um estilo de desenvolvimento em grupo.![]()
XP melhora um projeto de software de quatro maneiras essenciais; comunicacao, simplicidade, feedback e coragem.
Seguência de desenvolvimento XP e representado nas figuras a seguir: