Metodologias ágeis de desenvolvimento trabalho

18
MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA FARROUPILHA CAMPUS SÃO VICENTE DO SUL - RS Instituição: Instituto Federal de Educação Ciência e Tecnologia Farroupilha Unidade Organizacional: Campus de São Vicente do Sul Curso: Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: Seminários em Tecnologia da Informação Orientador: Rogério Cassanta Rosado Componentes: Paulo Ricardo [email protected] Michel Minussi [email protected] Ruan Pozzebon [email protected] Turma: ADS 05

description

Metodologias ágeis, Scrum

Transcript of Metodologias ágeis de desenvolvimento trabalho

Page 1: Metodologias ágeis de desenvolvimento   trabalho

MINISTÉRIO DA EDUCAÇÃO

SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA

FARROUPILHA CAMPUS SÃO VICENTE DO SUL - RS

Instituição: Instituto Federal de Educação Ciência e Tecnologia Farroupilha

Unidade Organizacional: Campus de São Vicente do Sul

Curso: Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Disciplina: Seminários em Tecnologia da Informação

Orientador: Rogério Cassanta Rosado

Componentes:

Paulo Ricardo [email protected]

Michel Minussi [email protected]

Ruan Pozzebon [email protected]

Turma: ADS 05

Page 2: Metodologias ágeis de desenvolvimento   trabalho

São Vicente do Sul, RS. Brasil

2011

2

Page 3: Metodologias ágeis de desenvolvimento   trabalho

SUMÁRIO

LISTA DE FIGURAS......................................................................................................................... 3RESUMO........................................................................................................................................... 4ABSTRACT.......................................................................................................................................

.4

INTRODUÇÃO..................................................................................................................................

.5

OBJETIVO GERAL............................................................................................................................ 6OBJETIVOS ESPECÍFICOS............................................................................................................. 6REVISÃO BIBLIOGRAFIA................................................................................................................. 7MATERIAL E METODOS.................................................................................................................. 12CRONOGRAMA................................................................................................................................ 13RESULTADOS E DISCUSSÕES...................................................................................................... 14CONCLUSÃO.................................................................................................................................... 15REFERÊNCIAS BIBLIOGRAFICAS.................................................................................................. 16

3

Page 4: Metodologias ágeis de desenvolvimento   trabalho

LISTA DE FIGURAS

FIGURA 1....................................................................................................................................... 16FIGURA 2...................................................................................................................................... 16

1. RESUMO

4

Page 5: Metodologias ágeis de desenvolvimento   trabalho

As metodologias clássicas de desenvolvimento da Engenharia de Software

têm causado alguns transtornos como: atrasos na entrega de projetos, insatisfação

de clientes, além de conflitos e desgastes para os profissionais da área. Assim com

o objetivo de obter melhores resultados varias empresas está adotando

metodologias de desenvolvimento, que dão mais agilidade, organização ao trabalho,

além de facilitar a interação entre os usuários e o próprio sistema. Essas

metodologias são chamadas de Metodologias Ágeis de Desenvolvimento de

Software. Assim com a proposta de apresentar e explicar o que são essas

metodologias escolhemos o processo de desenvolvimento SCRUM usado hoje por

muitas empresas conceituadas nesta área.

2. ABSTRACT

Traditional methodologies of software engineering development have caused some

inconvenience as: delays in project delivery, customer dissatisfaction, and conflict

and starvation for professionals in the area. So in order to obtain better results

companies are adopting various development methodologies, which provide more

flexibility, organization of work, and to facilitate interaction between users and the

system itself. These methods are called Agile Software Development. Thus the

proposal to introduce and explain what these methods chose the SCRUM

development process used today by many reputable companies in this area.

3. INTRODUÇÃO

5

Page 6: Metodologias ágeis de desenvolvimento   trabalho

Quando falamos em Engenharia de Software, temos em vista diversas áreas

envolvendo desde a criação de um sistema até os testes finais do mesmo.

Procurando deixar mais organizada essas tarefas de desenvolvimento, foram

criadas certas metodologias, que visam deixar mais fácil e rápida estas etapas do

projeto, as quais foram definidas como Metodologias ágeis de Desenvolvimento,

dentre elas, são mais conhecidas as práticas “XP” e “SCRUM”, sendo trabalhado

neste artigo o método “SCRUM”.

4. OBJETIVO GERAL

6

Page 7: Metodologias ágeis de desenvolvimento   trabalho

Este artigo tem como objetivo fazer uma apresentação conceitual sobre uma das

mais conhecidas Metodologias Ágeis para Desenvolvimento de Software, o SCRUM,

apresentando vantagens e desvantagens do uso em relação a Metodologias

Clássicas, sejam elas para plataformas Desktop, Web ou Dispositivos Móveis.

5. OBJETIVOS ESPECIFICOS

Detalhando mais o foco do artigo, temos o objetivo de:

• Pesquisar sobre o método de desenvolvimento “SCRUM”;

• Identificar os modelos de desenvolvimento ágeis mais utilizados no mercado

de software;

• Mostrar as vantagens e desvantagens da utilização de métodos ágeis;

• Relatar práticas bem sucedidas da utilização de métodos ágeis;

Também é um fato importante que se pretende citar é como que é a

implantação de “SCRUM” em um projeto, desde o início até a fase de testes, e até

uma experiência real de uma empresa.

7

Page 8: Metodologias ágeis de desenvolvimento   trabalho

6. REVISÃO BIBLIOGRÁFICA (DESENVOLVIMENTO)

6.1.Metodologias Clássicas (Tradicionais)

Também conhecidas como Metodologias orientadas a planejamento, as

Metodologias Clássicas dominaram a forma de desenvolvimento de softwares até o

início da década de 90, Entretanto, estas metodologias devem ser aplicadas apenas

em situações em que os requisitos do sistema são estáveis e os requisitos futuros

são previsíveis. Metodologias ou Processos orientados a documentação são, de

certa forma, barreiras impostas ao desenvolvimento, pois muitas organizações não

possuem recursos para processos pesados de produção de software. Por esta

razão, as organizações pequenas acabam por não usar nenhum processo. Isto pode

trazer efeitos negativos no que diz respeito à qualidade do produto final, além de

dificultar a entrega do software nos prazos, custos e funcionalidades previamente

definidas.

8

Page 9: Metodologias ágeis de desenvolvimento   trabalho

6.2.Metodologias Ágeis e o Manifesto Ágil

A expressão “Metodologias Ágeis” tornou-se conhecida em 2001, quando

especialistas em processos de desenvolvimento de software representando entre

outros, os métodos Scrum e Extreme Programming (XP), foram estabelecidos

princípios e características comuns destes métodos. Assim foi criada a “Aliança Ágil”

e efetuou-se o estabelecimento do “Manifesto Ágil”.

6.2.1. Principais conceitos do Manifesto Ágil

- Pessoas e interações, ao contrário de processos e ferramentas.

- Software executável, ao contrário de documentação extensa e confusa.

- Colaboração do cliente, ao contrário de constantes negociações de contratos.

- Respostas rápidas para as mudanças, ao contrário de seguir planos previamente

definidos.

“A percepção que os usuários têm de suas necessidades também evolui à medida

que eles conhecem o sistema. É difícil compreender o valor de uma determinada

funcionalidade até que ela seja efetivamente usada, principalmente porque não

se pode requerer de um usuário comum a mesma capacidade de abstração que

um desenvolvedor possui ao olhar um conjunto de requisitos” (OLIVEIRA,

2003, p. 16).

9

Page 10: Metodologias ágeis de desenvolvimento   trabalho

6.3.Metodologias Ágeis (Scrum)

Inicialmente, o Scrum foi utilizado em projetos de empresas de fabricação de

automóveis e produtos de consumo, por Takeuchi e Nonaka. Eles notaram que

projetos usando equipes pequenas e multidisciplinares produziram os melhores

resultados, e associaram estas equipes altamente eficazes à formação Scrum do

Rugby (utilizada para reinício do jogo em certos casos). Jeff Sutherland aplicou a

primeira concepção do Scrum na Easel Corporation em1993, mais tarde, por volta

de 1995, Ken Schwaber formalizou essa metodologia baseando se em sua própria

experiência no desenvolvimento de sistemas e processos. O SCRUM assume-se

como uma metodologia extremamente ágil e flexível, que tem por objetivo definir um

processo de desenvolvimento interativo e incremental podendo ser aplicado a

qualquer produto ou no gerenciamento de qualquer atividade complexa. Esta

metodologia baseia-se no desenvolvimento incremental das aplicações centrado na

equipe com ciclos de iteração curto. SCRUM aplica-se a projetos tanto pequenos

como grandes. Esforçando-se para liberar o processo de quaisquer barreiras, o seu

principal objetivo é conseguir uma avaliação correta do ambiente em evolução,

adaptando-se constantemente ao “caos” de interesses e necessidades, indicados e

utilizados para o desenvolvimento de softwares em ambientes complexos, onde os

requisitos mudam com certa freqüência, sendo o caminho utilizado para aumentar

produtividade nesses tipos de sistemas. A Metodologia SCRUM apenas estabelece

conjuntos de regras e práticas de gestão que devem ser adotadas para garantir o

sucesso de um projeto. Centrado no trabalho em equipe, melhora a comunicação e

maximiza a cooperação, permitindo que cada um faça o seu melhor e se sinta bem

com o que faz o que mais tarde se reflete num aumento de produtividade.

Englobando processos de engenharia, este método não requer nem fornece

qualquer técnica ou método específico para a fase de desenvolvimento de software.

6.4.Características

10

Page 11: Metodologias ágeis de desenvolvimento   trabalho

Segundo (FERREIRA, 2005), as principais características do SCRUM são:

• é um processo ágil para gerenciar e controlar o desenvolvimento de projetos;

• é um wrapper para outras práticas de engenharia de software;

• é um processo que controla o caos resultante de necessidades e interesses

conflitantes;

• é uma forma de aumentar a comunicação e maximizar a cooperação;

• é uma forma de detectar e remover qualquer impedimento que atrapalhe o

desenvolvimento de um produto;

• é escalável desde projetos pequenos até grandes projetos em toda empresa.

Segundo Abrahamsson (2002) os papéis identificados no Scrum são: Mestre

(Scrum Master), Proprietário do produto (Product Owner), Equipe Scrum

(Scrum Team), Cliente (Customer) e Gerência (Management).

6.5.Vocabulário utilizado no SCRUM

• Backlog: Lista de todas as funcionalidades a serem desenvolvidas durante o

projeto completo, sendo bem definido e detalhado no inicio do trabalho, deve ser

listado e ordenado por prioridade de execução;

• Sprint: Período não superior a 30 dias, onde o projeto (ou apenas algumas

funcionalidades) é desenvolvido;

• Sprint Planning Meeting: Reunião de planejamento;

• Sprint Goal: Disparo dos objetivos/metas;

• Sprint Review Meeting: Revisão da reunião;

• Sprint Backlog: Trabalho a ser desenvolvido num Sprint de modo a criar um

produto a apresentar ao cliente. Deve ser desenvolvido de forma incremental,

relativa ao Backlog anterior (se existir);

• Dayling SCRUM: Reunião diária;

• Scrum: Reunião diária onde são avaliados os progressos do projeto e as barreiras

encontradas durante o desenvolvimento;

• Scrum Meeting: Protocolo a seguir de modo a realizar uma reunião Scrum;

• Scrum Team: A equipe de desenvolvimento de um Sprint;

• Scrum Master: Elemento da equipe responsável pela gestão do projeto e liderar as

11

Page 12: Metodologias ágeis de desenvolvimento   trabalho

Scrum Meetings são normalmente engenheiros de software ou da área de sistemas.

Apesar de ser gestor não tem propriamente autoridade sobre os demais membros

da equipe.

• Product Backlog: Produção do trabalho executado.

• Product Owner: Proprietário do produto.

6.6.Processos e Funcionamento

As fases de desenvolvimento SCRUM podem ser divididas basicamente em três,

são elas:

• Planejamento: Definição de uma nova funcionalidade requerida pelo sistema

baseado no conhecimento do sistema como um todo;

• Desenvolvimento: Desenvolvimento dessa nova funcionalidade respeitando o

tempo previsto, requisitos exigidos e qualidade. Esses itens definem o fim do ciclo

de desenvolvimento;

• Encerramento: Preparação para a entrega do produto persistindo as atividades:

Teste Caixa Branca, Teste Caixa Preta, Documentação do Usuário, Treinamento e

Marketing.

12

Page 13: Metodologias ágeis de desenvolvimento   trabalho

7. MATERIAL E METÓDOS

Essa pesquisa foi realizada por meio de referências de autores da área,

trabalhos publicados, experiências que deram certo e literaturas da área. E para o

desenvolvimento do trabalho foi utilizado notebooks como equipamentos e Microsoft

Word como software.

13

Page 14: Metodologias ágeis de desenvolvimento   trabalho

8. CRONOGRAMA

Tabela 1 – Cronograma

Tarefas

10/3

17/3

24/3

28/3

31/3

5/4

7/4

12/4

14/4

19/4

25/4

Definição do problema XEmbasamento teórico X XRevisão bibliográfica XColeta e tabulação de

dadosX X X

Redação do trabalho X XRevisão ortográfica X XCompilação dos

resultadosX

Apresentação X

9. RESULTADOS E DISCUSSÕES

14

Page 15: Metodologias ágeis de desenvolvimento   trabalho

Com pesquisas e leituras sobre o tema de Metodologias Ágeis de Desenvolvimento

vimos que há grandes vantagens em utilizar esse método para agilizar o serviço, já

que hoje os aspectos mais procurados são agilidade e rapidez na entrega de

software, melhor distribuições de tarefas entre componentes da equipe, melhor

interação entre a equipe, por serem formadas por poucos integrantes e de boa

qualificação. Assim, conseguem interagir melhor se conhecendo e dividindo tarefas

mais organizadamente. E segundo WILSON BISSI (2007) esses são alguns dos

benefícios obtidos com o uso da metodologia SCRUM:

• diminuição dos riscos;

• maior integração entre os membros das equipes;

• rápida solução de problemas;

• progresso medido continuamente;

• os clientes se tornam parte da equipe de desenvolvimento;

• entregas freqüentes de funcionalidades funcionando;

• discussões diárias de status com a equipe;

• os profissionais de negócios e tecnologias trabalham juntos.

10.CONCLUSÃO

15

Page 16: Metodologias ágeis de desenvolvimento   trabalho

Os processos ágeis têm evoluído e ganhado um grande numero de usuários,

principalmente pela agilidade de fornecer resultados ao usuário final, pois logo nos

primeiros meses de projetos já existem resultados concretos, visíveis. Essa

característica talvez seja a que mais chama atenção dos clientes, que querem ter

seu sistema o mais cedo possível. Para garantir que erros de implementação não

atrapalhem essa boa impressão ao longo do projeto, os testes de software são

considerados vitais ao processo. Algumas características necessárias para

aplicação dos processos ágeis nem sempre são possíveis, como disponibilidade de

encontro entre os desenvolvedores e um representante do cliente que tenha

autoridade de decisão e ao mesmo tempo conhecimento profundo dos requisitos.

Além disso, a capacitação técnica e experiência dos desenvolvedores são de

extrema importância para o sucesso na aplicação das etapas.

11.REFERÊNCIAS BIBLIOGRÁFICAS

16

Page 17: Metodologias ágeis de desenvolvimento   trabalho

FERREIRA, D.; COSTA, F.; ALONSO, F.;ALVES, P.; NUNES, T. SCRUM - Um Modelo Ágil para Gestão de Projetos de Software.Disponível em: <http://paginas.fe.up.pt/~aaguiar/es/artigos%20finais/es_final_19.pdf>.

CRUZ, R.S.L. Metodologia Scrum. Disponível em: http://scrum-masters.com. [Agile Manifesto (2004)] Disponível em http://agilemanifesto.org/ OLIVEIRA, E. S. (2003). “Uso de Metodologias Ágeis no Desenvolvimento de

Software”, Monografia apresentada no Programa de Pós-Graduação em Engenharia de Software da UFMG.

CARVALHO, L.C. (1988). “Análise de sistemas”, Rio de Janeiro: Livros Técnicos e Científicos.

FERREIRA, R. B. (2004). “Diálogo de surdos: a difícil explicitação do saber entre programadores de software e operadores de fábrica”, Dissertação de mestrado pela Engenharia de Produção: UFMG.

ANEXOS

17

Page 18: Metodologias ágeis de desenvolvimento   trabalho

Figura1. Desenvolvimento Clássico.

Figura2. Desenvolvimento Scrum.

Fase de planejamento

Fase de liberaçãoFase de desenvolvimentoFase de estágio

Product backlog

Atualizações regulares

Sprint backlog

Estimativa de esforço

Versão final

Documentação

Inspeção 24 hours

Iteração

Incremento do produto

Prioriza requisitos

18