MARCOS DE SOUZA RA 1299167498 SAMIR MONTEIRO DE TOLEDO RA 5644107797
TRABALHO PROGRAMAO COMERCIAL C#
SO 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. Tambm mostrar as diferenas entre metodologias tradicionais e metodologias geis para desenvolvimento.
1- O que a Metodologia:
A metodologia a uma representao de um processo em modo simplificado. um conjunto de boas prticas para o desenvolvimento de um software e auxilia muito desenvolvimento. Entre elas podemos destacar as metodologias tradicionais e metodologias geis.
1.1 Metodologias Tradicionais:
So conhecidas por serem muito documentadas e acabam s vezes atrapalhando a agilidade do desenvolvimento. Podemos dizer que elas so orientadas documentao. Elas so divididas em etapas definidas de maneira fechada. Alguns anos atrs estas metodologias eram aplicadas para desenvolvimento em mainframes. As alteraes nestas plataformas geravam altos custos e com o agravante de grande limitao de hardware para debugar (depurar) e analisar o cdigo. Entre as metodologias tradicionais temos a metodologia cascata nela voc tem as fases dividas em etapas. As etapas so amarradas a prxima etapa s inicia ao termino da anterior. Exemplo:
1.2 Metodologias geis:
Essas metodologias possuem alguns atributos principais que devem ser considerados: Aprendizado e Adaptao Projetos tradicionais de desenvolvimento de software nos foram a prever tudo o que ser desenvolvido com o mximo de preciso no incio do projeto. Metodologias geis afirmam que h muita coisa que no podemos prever no incio do projeto, eles so estruturados para permitir que ns primeiramente aprendamos sobre o que ainda no conhecemos e ento nos adaptemos para utilizar o conhecimento adquirido. Colaborao Metodologias geis valorizam a colaborao contnua dos patrocinadores, clientes e equipe de desenvolvimento. Foco na necessidade do cliente O cliente o foco central em um projeto gil. Pequenas equipes auto gerenciveis Metodologias geis reconhecem que pequenas equipes podem se auto gerenciar com maior eficincia. Princpios A base para a formao das Metodologias geis proveniente dos mtodos que se consolidaram na indstria. Principalmente os conceitos Just Enough e Just in Time ("s o suficiente" e "a tempo"). Progressiva elaborao de requisitos Ns aprendemos sobre os requisitos do software medida que o projeto avana, ento especificar cada detalhe dos requisitos no incio do projeto no faz sentido. Projetos geis estabelecem um claro caminho para elaborao do detalhamento dos requisitos conforme eles se tornam necessrios. 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 adaptao Metodologias geis valorizam o planejamento. Eles promovem planejamento em diversos nveis regularmente. Sempre o adaptando de acordo com os novos conhecimentos obtidos durante o avano do projeto.
Exemplo de Metodologia gil: 1.2.1 - Metodologia gil - SCRUM O Scrum uma metodologia gil para gesto e planejamento de projetos, um processo para construir software incrementalmente. Trabalhos complexos nos quais impossvel 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 no so claros ou mudam com muita frequncia. O Scrum baseado em ciclos de 30 dias chamados Sprints, onde se trabalha para alcanar objetivos bem definidos. Estes objetivos so representados no Product Backlog, uma lista de coisas para fazer que constantemente atualizada e priorizada. Como so distribudos os papis? Equipe: Responsvel por entregar solues, geralmente formada por um grupo pequeno (entre 5 e 9 pessoas) e que trabalha de forma auto gerenciada; Product Owner: Responsvel pela viso de negcios 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 obstculos da equipe e assegurar que as prticas de Scrum esto sendo executadas com eficincia. Como funciona? Definio do Backlog: Todas as funcionalidades ou mudanas no produto so 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 so destacados para serem entregues no final do prximo Sprint. Andamento do Sprint: Durante o Sprint, os itens do Product Backlog que devem ser entregues so agora tratados no Sprint Backlog. As tarefas agora so responsabilidade da Equipe, que tem autonomia para decidir como elas devem ser executadas. Reunies Dirias: O Scrum Master se rene diariamente com a Equipe num mesmo horrio, para que se reporte: O que foi feito ontem? O que se pretende fazer hoje? Quais so os impedimentos que esto atrapalhando a execuo das tarefas? Revises: 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 ento possa se iniciar um novo Sprint. Exemplos de ferramentas para trabalhar com Scrum: Ficamos muito empolgados com a metodologia e comeamos a pesquisar algumas ferramentas para uso de Scrum que poderiam ser aplicadas por nossa equipe e nas prticas 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, vocs vo conseguir entregar o objetivo da Sprint? Quais funcionalidades entraram em um determinado Build? Voc consegue as informaes que precisa para se preparar para o SCRUM dirio rapidamente? Essa preparao satisfatria? O cdigo est estabilizando, com o nmero de erros encontrados diminuindo ao longo do projeto? Qual a frequncia de quebra de Builds? Quando voc tem uma dvida e quer envolver outra pessoa do time precisa trocar e-mails ou chat? Em caso positivo, o tempo para contextualizar a situao satisfatrio? Sua equipe gasta mais tempo do que gostaria criando atas de reunio, notas de Release e correlacionando informaes que esto 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 burocrticas 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 mudanas e erros (bug tracking); Gerenciar o backlog; Fazer o planejamento de Releases do produto; Realizar integrao contnua; Colaborar em tempo real; Tudo isto, numa nica ferramenta, a partir de um nico instalador em um nico banco de dados. Toda a informao de projeto centralizada e disponvel para todo time a partir de uma interface Web extremamente elegante e amigvel. O cliente do RTC baseado em Eclipse e tem suporte a Mac, Linux e Windows (tambm existem verses 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 programao. Essa liberdade toda pode ser aproveitada por times de desenvolvimento de at 10 pessoas, sem custo algum, para desenvolvimento de qualquer tipo de aplicao (comercial inclusive).
Scrum Works Pro
Essa uma ferramenta muito bem comentada pela web. Possui duas verses, Basic (gratuita) e Pro (obviamente paga). Diferentemente das ferramentas, essa ferramenta no 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 atualizao 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 nvel de customizao bem interessante para equipes que esto continuamente melhorando o seu processo de desenvolvimento.
Ice Scrum
Est uma ferramenta open source que encontramos. IceScrum est na verso R6#9. uma ferramenta bem completa que tem todas as funcionalidades que ns j mencionamos como Product Backlog, Sprint Backlog, planejamento de release, funcionalidades para todos os papis do Scrum, auxlio ao planning poker, grficos diversos e muito mais. A ferramenta parece ter sido muito bem implementada e parece estar em constante evoluo. Vale a conferida para quem est interessado em uma ferramenta sem custos de aquisio e que pode agregar bastante valor ao processo de sua equipe de desenvolvimento.
Pango Scrum
Assim como o Scrumy, Pango Scrum tambm uma ferramenta online, porm 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 no disponibiliza a funcionalidade para criao 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 espao criado. Alm disso, o que a ferramenta basicamente prov a criao das user stories e o acompanhamento delas atravs do painel de tarefas (taskboard). Existe ainda uma verso para chamada Scrumy Pro que lhe permite coordenar mltiplos sprints e mltiplos backlogs, alm 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 visvel desde o primeiro contato. Alm das funcionalidades esperadas, a ferramenta prov um wiki integrado, alertas por e-mail, feeds RSS e muito mais. Porm, como era de se esperar para uma ferramenta desse nvel, ela paga e de acordo com a tabela de preos, no barata.
Scrum Half
Essa ferramenta merece uma meno honrosa, pois a nica ferramenta nacional que est ganhando mercado na rea de desenvolvimento gil. No 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 gesto gil de projetos. Uma das vantagens que percebemos na ferramenta, alm da mais bvias que o idioma, o fato de ser online e assim, no precisar de instalao. 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 preos que pode ser consultada.
Concluso Gostamos muito de todas as ferramentas expostas acima, desde a mais simples at a mais completa.