Você está na página 1de 12

CENTRO UNIVERSITÁRIO ANHANGUERA DE SÃO PAULO

FERNANDO OLIVEIRA FERES – RA 5632121657
MARCOS DE SOUZA – RA 1299167498
SAMIR MONTEIRO DE TOLEDO – RA 5644107797










TRABALHO
PROGRAMAÇÂO COMERCIAL – C#














SÃO PAULO
2013
METODOLOGIAS ÁGEIS PARA DESENVOLVIMENTO DE
SOFTWARE

Vamos falar das metodologias ágeis que sugiram nos últimos anos e vamos tratar
neste trabalho a metodologia Scrum. Também mostrar as diferenças entre
metodologias tradicionais e metodologias ágeis para desenvolvimento.

1- O que é a Metodologia:

A metodologia é a uma representação de um processo em modo simplificado.
É um conjunto de boas práticas para o desenvolvimento de um software e
auxilia muito desenvolvimento. Entre elas podemos destacar as metodologias
tradicionais e metodologias ágeis.

1.1 – Metodologias Tradicionais:

São conhecidas por serem muito documentadas e acabam às vezes
atrapalhando a agilidade do desenvolvimento. Podemos dizer que elas são
orientadas à documentação. Elas são divididas em etapas definidas de
maneira fechada. Alguns anos atrás estas metodologias eram aplicadas para
desenvolvimento em mainframes.
As alterações nestas plataformas geravam altos custos e com o agravante de
grande limitação de hardware para debugar (depurar) e analisar o código.
Entre as metodologias tradicionais temos a metodologia cascata nela você
tem as fases dividas em etapas. As etapas são amarradas a próxima etapa só
inicia ao termino da anterior.
Exemplo:


1.2 – Metodologias Ágeis:

Essas metodologias possuem alguns atributos principais que devem ser
considerados:
Aprendizado e Adaptação – Projetos tradicionais de desenvolvimento de
software nos forçam a prever tudo o que será desenvolvido com o máximo de
precisão no início do projeto. Metodologias Ágeis afirmam que há muita coisa
que não podemos prever no início do projeto, eles são estruturados para
permitir que nós primeiramente aprendamos sobre o que ainda não
conhecemos e então nos adaptemos para utilizar o conhecimento adquirido.
Colaboração – Metodologias Ágeis valorizam a colaboração contínua dos
patrocinadores, clientes e equipe de desenvolvimento.
Foco na necessidade do cliente – O cliente é o foco central em um projeto
Ágil. Pequenas equipes auto gerenciáveis – Metodologias Ágeis reconhecem
que pequenas equipes podem se auto gerenciar com maior eficiência.
Princípios – A base para a formação das Metodologias Ágeis é proveniente
dos métodos que se consolidaram na indústria. Principalmente os conceitos
“Just Enough” e “Just in Time” ("só o suficiente" e "a tempo").
Progressiva elaboração de requisitos – Nós aprendemos sobre os
requisitos do software à medida que o projeto avança, então especificar cada
detalhe dos requisitos no início do projeto não faz sentido. Projetos Ágeis
estabelecem um claro caminho para elaboração do detalhamento dos
requisitos conforme eles se tornam necessários.
Entregas incrementais – A melhor maneira de nos assegurarmos que
estamos desenvolvendo o software corretamente é regularmente obter o
feedback de nosso cliente. Metodologias Ágeis sempre produzem entregas
incrementais de software para o cliente.
Planejamento iterativo e adaptação – Metodologias Ágeis valorizam o
planejamento. Eles promovem planejamento em diversos níveis regularmente.
Sempre o adaptando de acordo com os novos conhecimentos obtidos durante
o avanço do projeto.

Exemplo de Metodologia Ágil:
1.2.1 - Metodologia Ágil - SCRUM
O Scrum é uma metodologia ágil para gestão e planejamento de projetos, é
um processo para construir software incrementalmente.
Trabalhos complexos nos quais é impossível predizer tudo o que irá ocorrer o
Scrum poderá ser eleito como ferramenta para auxiliar no desenvolvimento ou
seja em ambientes complexos, onde os requisitos não são claros ou mudam
com muita frequência.
O Scrum é baseado em ciclos de 30 dias chamados Sprints, onde se trabalha
para alcançar objetivos bem definidos. Estes objetivos são representados no
Product Backlog, uma lista de coisas para fazer que é constantemente
atualizada e priorizada.
Como são distribuídos os papéis?
Equipe: Responsável por entregar soluções, geralmente é formada por um
grupo pequeno (entre 5 e 9 pessoas) e que trabalha de forma auto
gerenciada;
Product Owner: Responsável pela visão de negócios do projeto, é ele quem
define e prioriza o Product Backlog. Geralmente é o papel desempenhado
pelo cliente;
Scrum Master: É uma mistura de gerente, facilitador e mediador. Seu papel é
remover obstáculos da equipe e assegurar que as práticas de Scrum estão
sendo executadas com eficiência.
Como funciona?
Definição do Backlog: Todas as funcionalidades ou mudanças no produto são
definidas pelo Product Owner no Product Backlog. Esta lista é priorizada para
refletir a necessidade dos clientes ou demandas do mercado. Os itens do
topo da lista são destacados para serem entregues no final do próximo Sprint.
Andamento do Sprint: Durante o Sprint, os itens do Product Backlog que
devem ser entregues são agora tratados no Sprint Backlog. As tarefas agora
são responsabilidade da Equipe, que tem autonomia para decidir como elas
devem ser executadas.
Reuniões Diárias: O Scrum Master se reúne diariamente com a Equipe num
mesmo horário, para que se reporte:
O que foi feito ontem?
O que se pretende fazer hoje?
Quais são os impedimentos que estão atrapalhando a execução das tarefas?
Revisões: no final do Sprint a Equipe demonstra os resultados para o Product
Owner e demais interessados, de forma que os itens do Backlog sejam
considerados prontos e então possa se iniciar um novo Sprint.
Exemplos de ferramentas para trabalhar com Scrum:
Ficamos muito empolgados com a metodologia e começamos a pesquisar
algumas ferramentas para uso de Scrum que poderiam ser aplicadas por
nossa equipe e nas práticas ágeis que pretendemos adotar.



Rational Team Concert



Seu time é capaz de responder de pronto as perguntas abaixo:
Qual o objetivo da Sprint atual e quem está trabalhando no que?
De acordo com o planejamento e desempenho atuais da equipe, vocês vão
conseguir entregar o objetivo da Sprint?
Quais funcionalidades entraram em um determinado Build?
Você consegue as informações que precisa para se preparar para o SCRUM
diário rapidamente? Essa preparação é satisfatória?
O código está estabilizando, com o número de erros encontrados diminuindo
ao longo do projeto?
Qual a frequência de quebra de Builds?
Quando você tem uma dúvida e quer envolver outra pessoa do time precisa
trocar e-mails ou chat?
Em caso positivo, o tempo para contextualizar a situação é satisfatório?
Sua equipe gasta mais tempo do que gostaria criando atas de reunião, notas
de Release e correlacionando informações que estão em locais diferentes
(planilhas, bancos de dados, etc.)?
Responder a todos estes questionamentos foi exatamente o objetivo da IBM
ao criar o Rational Team Concert, ou RTC para os íntimos: tirar tarefas
burocráticas e operacionais da frente dos desenvolvedores, liberando-os para
fazer o que mais gostam.
Com o RTC, seu time poderá:
Manter o SCRUM card wall (kanban);
Versionar todos os artefatos do projeto (SCM);
Desenvolver em paralelo;
Controlar mudanças e erros (bug tracking);
Gerenciar o backlog;
Fazer o planejamento de Releases do produto;
Realizar integração contínua;
Colaborar em tempo real;
Tudo isto, numa única ferramenta, a partir de um único instalador em um
único banco de dados.
Toda a informação de projeto centralizada e disponível para todo time a partir
de uma interface Web extremamente elegante e amigável.
O cliente do RTC é baseado em Eclipse e tem suporte a Mac, Linux e
Windows (também existem versões do cliente para Visual Studio .NET e
Terminal Mainframe).
O servidor RTC, baseado na tecnologia Jazz, pode ser instalado em um
servidor Linux, Windows, entre outras, suportando times de desenvolvimento
das principais plataformas de desenvolvimento e linguagens de programação.
Essa liberdade toda pode ser aproveitada por times de desenvolvimento de
até 10 pessoas, sem custo algum, para desenvolvimento de qualquer tipo de
aplicação (comercial inclusive).








Scrum Works Pro



Essa é uma ferramenta muito bem comentada pela web. Possui duas
versões, Basic (gratuita) e Pro (obviamente paga). Diferentemente das
ferramentas, essa ferramenta não roda online e precisa ser instalada.
ScrumWorks, depois de instalado, consiste em 2 programas, um servidor e
um cliente. O servidor é para ser usado pelo Scrum Master, é onde se realiza
todas as tarefas de planejamento do Scrum. A parte cliente é direcionada aos
membros da equipe para que possam receber a atualização das tarefas.
Testamos rapidamente, e nos parece ser uma ferramenta muito boa, apesar
de carecer de uma interface mais intuitiva como as outras ferramentas que
vamos falar abaixo. A vantagem dessa ferramenta é que ela parece ter um
nível de customização bem interessante para equipes que estão
continuamente melhorando o seu processo de desenvolvimento.




Ice Scrum



Está é uma ferramenta open source que encontramos. IceScrum está na
versão R6#9. É uma ferramenta bem completa que tem todas as
funcionalidades que nós já mencionamos como Product Backlog, Sprint
Backlog, planejamento de release, funcionalidades para todos os papéis do
Scrum, auxílio ao planning poker, gráficos diversos e muito mais.
A ferramenta parece ter sido muito bem implementada e parece estar em
constante evolução. Vale a conferida para quem está interessado em uma
ferramenta sem custos de aquisição e que pode agregar bastante valor ao
processo de sua equipe de desenvolvimento.

Pango Scrum


Assim como o Scrumy, Pango Scrum também é uma ferramenta online,
porém muito mais completa. Auxilia em quase todas as atividades principais
do Scrum como Product Backlog, Sprint Backlog, agendamento de eventos e
planejamento de sprints. A ferramenta não disponibiliza a funcionalidade para
criação de painel de tarefas pois eles pregam que isso deva ser realmente
feito na base do papel e post-it. O Pango Scrum é gratuito e assim como
muitas outras ferramentas da Web 2.0, está "em fase beta".

Scrumy



Esta ferramenta que preza pela simplicidade e pela facilidade de uso.
Para criar um projeto no Scrumy basta digitar no seu browser a url:
http://scrumy.com/<nome do projeto> e você já terá o seu espaço criado.
Além disso, o que a ferramenta basicamente provê é a criação das user
stories e o acompanhamento delas através do painel de tarefas (taskboard).
Existe ainda uma versão para chamada Scrumy Pro que lhe permite
coordenar múltiplos sprints e múltiplos backlogs, além de prover burndown
charts.


Mingle



Essa talvez seja a melhor das ferramentas que pesquisamos, afinal de
contas, foi criada pela empresa de um dos maiores evangelizadores de
metodologias ágeis, Martin Fowler.
Essa ferramenta possui tudo o que podemos esperar de uma boa ferramenta
de Scrum, e melhor ainda, tudo muito bem implementado e com uma
usabilidade visível desde o primeiro contato. Além das funcionalidades
esperadas, a ferramenta provê um wiki integrado, alertas por e-mail, feeds
RSS e muito mais. Porém, como era de se esperar para uma ferramenta
desse nível, ela é paga e de acordo com a tabela de preços, não é barata.









Scrum Half



Essa ferramenta merece uma menção honrosa, pois é a única ferramenta
nacional que está ganhando mercado na área de desenvolvimento ágil. Não
tivemos oportunidade de testá-la ainda, mas à primeira vista parece ser uma
ferramenta muito boa.
Scrum Half foi desenvolvida pela GPE, uma empresa brasileira com foco em
gestão ágil de projetos. Uma das vantagens que percebemos na ferramenta,
além da mais óbvias que é o idioma, é o fato de ser online e assim, não
precisar de instalação. Vale muito a pena dar uma conferida, para quem tiver
interesse, a ferramenta é gratuita para uso de até 3 pessoas, mais do que
isso, tem uma tabela de preços que pode ser consultada.

Conclusão
Gostamos muito de todas as ferramentas expostas acima, desde a mais
simples até a mais completa.