SlideShare uma empresa Scribd logo
1 de 12
O uso de métodos ágeis no
desenvolvimento de software
Everton Arlindo Weliton Pereira
03557 03556
1
1. Introdução
Toda empresa precisa usar um sistema para realizar e controlar suas tarefas de
rotina. Por isso as indústrias de desenvolvimento de softwares estão tendo uma grande
importância na atualidade.
Desenvolver software é uma atividade difícil e arriscada, um dos motivos é que o
software é abstrato, ou seja não é como uma casa que você pode ver a evolução da
construção. Segundo estatísticas um dos maiores riscos no seu desenvolvimento são:
gastos que superam o orçamento, consumo de tempo que supera o cronograma,
funcionalidades que não resolvem os problemas dos usuários, baixa qualidade dos
sistemas desenvolvidos e cancelamento do projeto por inviabilidade.
Segundo o site DevMedia metodologia de desenvolvimento de software é um
conjunto de atividades e resultados associados, que auxiliam na produção de software.
Todas as metodologias de desenvolvimento tentam, entre outras coisas, reduzir o alto
risco associado ao desenvolvimento de software. Para isso diversas metodologias de
desenvolvimento são aplicadas, devido às dificuldades dos primeiros modelos de
desenvolvimento , que eram: demora na entrega de um produto para o cliente,ou seja
quanto maior era o projeto, mais demorava para ser entregue ao cliente, maior era o seu
custo,maior era o seu índice de erros,etc..
Os profissionais de TI perceberam que nem sempre os clientes sabiam o que
queriam , ou seja havia às frequentes mudanças de escopo após o projeto ser entregue,
porém quando recebiam o sistema, conseguiam entender melhor o problema e
consequentemente enxergar uma melhor solução.Como resposta aos diversos fracassos
nos projetos de softwares que utilizavam processos de desenvolvimento tradicionais,
fadados ao fracasso por requisitos e especificações incompletas ou a falta de
envolvimento do cliente no projeto, foi criado o manifesto ágil. Este foi um projeto que
reuniu diversos profissionais de desenvolvimento de software com o objetivo de discutir
2
melhores práticas no processo da construção destes, este é o assunto que abordaremos
nesse artigo.
2. Metodologia Ágil
De acordo com Pressman (2011, p. 82), “métodos ágeis se desenvolveram em um
esforço para sanar fraquezas reais e perceptíveis da engenharia de software
convencional”, por oferecer importantes benefícios.
Pressman (2011), a metodologia ágil, ou movimento ágil, nasceu em 2001, a partir
da reunião de 17 profissionais (desenvolvedores, autores e consultores da área de
software) que buscavam melhorias nos processos de desenvolvimento de software. Com
isso, na tentativa de desvendar melhores formas de desenvolvimento, foram criados os
valores da metodologia ágil, que segundo Pressman (2011, p. 81) são:
● Indivíduos e interações acima de processos e ferramentas
● Software operacional acima de documentação completa
● Colaboração dos clientes acima de negociação contratual
● Respostas a mudanças acima de seguir um plano.
Isso mostra que a metodologia ágil se preocupa primeiramente com a interação
com o cliente e colaboração do cliente dele e com o software operacional funcionando.
Documentos, processos, ferramentas tem importância secundária, pois o foco é na
interação com o cliente e o software sendo entregue em partes funcionais. Quando você
foca em pessoas, software, clientes e na resposta à mudanças, seu projeto sai do papel
com mais velocidade e qualidade.
Em Agile (2017), esta ideia é reforçada com os doze princípios do Manifesto Agil:
● Nossa maior prioridade é satisfazer o cliente através da entrega
contínua e adiantada de software com valor agregado.
3
● Mudanças nos requisitos são bem-vindas, mesmo tardiamente no
desenvolvimento. Processos ágeis tiram vantagem das mudanças
visando vantagem competitiva para o cliente.
● Entregar frequentemente software funcionando, de poucas semanas
a poucos meses, com preferência à menor escala de tempo.
● Pessoas de negócio e desenvolvedores devem trabalhar diariamente
em conjunto por todo o projeto.
● Construa projetos em torno de indivíduos motivados. Dê a eles o
ambiente e o suporte necessário e confie neles para fazer o trabalho.
● O método mais eficiente e eficaz de transmitir informações para e
entre uma equipe de desenvolvimento é através de conversa face a
face. • Software funcionando é a medida primária de progresso.
● Os processos ágeis promovem desenvolvimento sustentável. Os
patrocinadores, desenvolvedores e usuários devem ser capazes de
manter um ritmo constante indefinidamente.
● Contínua atenção à excelência técnica e bom design aumenta a
agilidade. • Simplicidade – a arte de maximizar a quantidade de
trabalho não realizado – é essencial.
● As melhores arquiteturas, requisitos e designs emergem de equipes
auto organizáveis.
● Em intervalos regulares, a equipe reflete sobre como se tornar mais
eficaz e então refina e ajusta seu comportamento de acordo.
Os métodos ágeis utilizam o processo de entrega incremental, e considera que o
custo das mudanças seja incorporado no projeto do software, onde as entregas
constantes e incrementais são realizadas periodicamente.
Com o uso da metodologia ágil é possível prever prazos, custos, mudanças de
escopo, identificar problemas, fazer estimativas do andamento de desenvolvimento.
Identificados através da boa comunicação interna da equipe juntamente com o contato
constante com o cliente como feedback para direcionar o desenvolvimento do software e
atender os requisitos desejados.
4
Segundo Sommerville, os incrementos iniciais do sistema podem fornecer uma
funcionalidade de alta prioridade, de forma que os clientes logo poderão obter valor do
sistema durante seu desenvolvimento. Os clientes podem assim ver os requisitos na
prática e especificar mudanças para serem incorporadas nos releases posteriores do
sistema.
Em relação aos custos, com a metodologia ágil, eles se tornam mais uniformes se
comparados a outros processos convencionais(orientados a documentação), podendo ser
administrados durante o desenvolvimento e controle de mudanças.A seguir temos alguns
exemplos de metodologia ágil.
3. Extreme Programming (XP)
Extreme Programming, ou simplesmente XP é uma das mais conhecidas
metodologia de desenvolvimento de software que segue os princípios do Manifesto Ágil.
Embora seu marco de criação seja o ano de 1996, a junção de princípios e boas práticas
de programação são frutos de um processo de evolução de pelo menos uma década em
que Kent Beck e Ward Cunningham trabalharam na Tektronics, Inc. como consultores de
problemas em SmallTalk (CASTRO, 2007).
A metodologia Extreme Programming(XP) é a combinação de uma abordagem
colaborativa, livre de desconfianças, com um conjunto de boas práticas de engenharia de
software que são eficientes por si só, individual e independentemente do contexto. Cada
uma dessas práticas contribui para o aumento da qualidade do software e ajuda a garantir
que o produto final agregue valor e atenda as necessidades do negócio (PRIKLADNICKI;
WILLI e MILANI, 2014).
Recomenda-se o uso da metodologia XP no desenvolvimento de projetos em que
os requisitos sejam incertos e que possam mudar constantemente e em uma equipe de
desenvolvimento de no máximo doze pessoas, possibilitando o desenvolvimento iterativo
e a utilização do paradigma da orientação a objetos (POO) na construção do sistema
(Ramos, 2013).
5
Sua metodologia é composta por um conjunto de cinco valores adotados pelo XP:
● Comunicação - Comunicação clara e transparente interna entre a
equipe de desenvolvimento e também entre o cliente e a
equipe.Tradicionalmente na indústria do software, as equipes de
desenvolvimento gastam um valioso esforço na tentativa de trocar
informações por meio de extensos documentos escritos. Devido à
ineficiência desse meio, nem sempre é possível reproduzir com
exatidão uma informação e dessa forma elas são freqüentemente
interpretadas de forma incorreta ou incompleta (TELES, 2006).
● Simplicidade - Na hora de desenvolver o software, programando
códigos simples, de fácil entendimento e manutenção. E também
desenvolver apenas o suficiente para atender as necessidades atuais
do cliente, evitando trabalho especulativo, que seria desenvolver uma
funcionalidade pensando em problemas futuros.
● Feedback - Reuniões constantes da equipe com o cliente para validar
as iterações que estão sendo produzidas.O contato incessante entre
o cliente e a equipe de desenvolvimento é o que se pode chamar de
feedback constante. Dessa forma, o cliente pode freqüentemente ter
uma parte do software funcional para avaliar e com isso, pode sugerir
novas características ao mesmo tempo em que pode identificar
eventuais não conformidades com os requisitos. E assim, os
desenvolvedores podem implementar rapidamente novas
características e corrigir eventuais erros já nas próximas versões a
serem entregues ao cliente (SOARES, 2004).
● Coragem - Para tomar decisões diante de cenários que podem mudar
drasticamente. E ter um pensamento diferenciado e não encarar as
mudanças de forma negativa mas sim em oportunidades que
precisam ser melhoradas e exploradas em benefício da equipe e do
projeto.
● Respeito - Respeito com a equipe e com o comprometimento do
software, respeito com o cliente.
6
3.1 Práticas XP
As boas práticas da XP são um conjunto de atividades que as equipes XP utilizam
enquanto produzem softwares. Antes de qualquer coisa, é necessário ter confiança
nestas boas práticas e consciência de que elas devem ser aplicadas em conjunto.
Quando aplicadas isoladamente, elas não trazem os mesmos resultados por que os
pontos fracos de cada prática são protegidos pelos pontos fortes das outras práticas
(BORBOREMA, 2007).
As práticas relacionadas com o desenvolvimento e qualidade do software são:
3.1.1 PLANEJAMENTO
O desenvolvimento e feito em iterações semanais dos desenvolvedores com o
cliente, onde o cliente identifica as funcionalidades e os desenvolvedores as estimam. O
objetivo é determinar o escopo das iterações para a entrega das pequenas versões em
partes do software (Small Releases).
3.1.2 PEQUENAS VERSÕES
São partes do software que já estão prontas ao longo das iterações e são
implantadas para o uso do cliente. Sendo que funcionalidades prioritárias são
desenvolvidas mais cedo para serem entregues mais rapidamente ao cliente, pois
prioriza-se o que ele mais precisa no momento.
3.1.3 METÁFORAS
E uma linguagem comum que todos os envolvidos devem possuir. Procura facilitar
a comunicação com o cliente. Traduzir as palavras do cliente para o que ele espera
dentro do projeto. E quanto aos desenvolvedores e analistas em contato com este cliente,
conseguir também explicar de forma, simples, clara e exemplificada os detalhes técnicos
que precisam ser passados, de uma forma que o cliente entenda.
3.1.4 PROGRAMAÇÃO EM PARES
Consiste em duas pessoas trabalhando em uma única máquina, onde um
programa e o outro analisa e dá sugestões ou críticas, podendo revezar de função
periodicamente. Essa prática ajuda na comunicação e o aprendizado e como resultado
um projeto de maior qualidade.
3.1.5 REFACTORING
Refactoring é o processo de reorganizar o código fonte de um software para
melhorar sua qualidade interna, facilitar a leitura e diminuir o tempo gasto com
manutenção, sem contudo prejudicar o desempenho e alterar seu comportamento
7
externo. Aplicado em sistemas orientados a objetos, a técnica é fundamental para tornar o
código mais legível e encontrar facilmente erros em algoritmos mal escritos (NETO,
2007).
Segundo Teles (2006), um projeto em XP não existe sem a prática de refactoring,
pois a agilidade necessária para alterar e incluir novas funcionalidades constantemente
em um sistema só é possível com um código de alta qualidade que seja organizado e de
fácil compreensão. Para que isso aconteça, a XP determina que qualquer um da equipe
faça o refactoring em qualquer parte do código que esteja pouco legível.
3.1.6 PROPRIEDADE COLETIVA
Todos têm acesso e podem modificar o código fonte. Esta prática ajuda ampliar o
conhecimento do projeto dentro a equipe onde todos ficam sabendo de tudo sobre o
projeto e ajuda no andamento do projeto.
3.1.7 INTEGRAÇÃO
A integração ao sistema atual sempre será feita assim que a funcionalidade estiver
concluída. Ajuda a diminuir conflitos e possibilidades de erros, pois após a integração,
deverá ser feito uma bateria de testes, que são os testes de integração para verificar se o
sistema todo está funcionando corretamente após esta nova integração.
3.1.8 CODIFICAÇÃO
A equipe precisa estabelecer regras e padrões para programar de forma que o
código fique homogêneo, de fácil entendimento e manutenção. De como que pareça que
foi feito por uma pessoa só, independente da quantidade de pessoas na equipe.
Práticas XP
8
Fonte - Devmedia
4. SCRUM
Segundo o site DevMedia Scrum é um framework, uma estrutura bem definida e
fundamentada no processo empírico, atende uma gama de áreas além da TI para
gerenciamento de projetos. Um framework não pode ser confundido com um guia passo-
a-passo, com respostas definitivas para resolução de problemas mais específicos de
projetos. Mas pode, sim, dar vida nova ao ciclo de desenvolvimento de software,
otimizando a previsibilidade e controlando riscos. É sustentado pelos pilares da
transparência, inspeção e adaptação. Buscando visibilidade nos resultados, detecção de
variações inaceitáveis no processo e suplantando-os.Apesar de alguns profissionais
considerarem o Scrum como um método ágil, por mais que essa forma de
desenvolvimento forneça ferramentas e maneiras de se conduzir o desenvolvimento ele
não pode ser considerado uma metodologia. A diferença entre uma metodologia e um
framework, é que a metodologia fornece praticamente tudo que seja necessário para
gerenciar um projeto, ela é bem mais completa que um framework em relação a como
fazer e o que fazer. Já o framework indica qual a melhor trajetória, mas não diz o como
fazer, ele também pode ser usado com outras técnicas e processos, fornece a estrutura
básica como suporte. Resumidamente o Scrum é um framework iterativo e incremental,
pois usa experiências anteriores para aperfeiçoar controle de riscos e decisões futuras.
No Scrum os projetos são divididos em ciclos, geralmente mensais, que são
chamados de Sprints, forma no qual o trabalho é dividido em iterações. As
funcionalidades a serem implementadas em um projeto são mantidas em uma lista que é
conhecida como Product Backlog ( lista contendo todas as funcionalidades desejadas
para um produto ). No início de cada iteração (Sprints),uma reunião de planejamento na
qual o dono do produto, ou solicitante do produto,prioriza os itens do Product Backlog e a
equipe seleciona as atividades que ela será capaz de implementar durante o primeiro
Sprint. As tarefas reunidas em um Sprint são transferidas do Product Backlog para o
Sprint Backlog. A cada dia de trabalho na Sprint, a equipe faz uma reunião (normalmente
de matutina), essa reunião é chamada Daily Scrum.O objetivo é compartilhar
9
conhecimento sobre o que foi feito no dia anterior, identificar falhas e priorizar o trabalho
do dia que se inicia.
5-CONCLUSÃO
Através desta pesquisa podemos concluir e ver a importância dos Métodos Ágeis
XP e SCRUM no desenvolvimento de projetos de software garantindo eficácia e alta
qualidade.
Devido a evolução da tecnologia esses processos se tornaram complemento um do
outro tornando-se ótimas ferramentas de trabalho, sendo que o XP é utilizado para
desenvolvimento e o SCRUM para um framework.
No Scrum os ciclos são divididos em períodos de 2 a 4 semanas, esse período é
conhecido como Sprint. Dentro do Sprint existe um conjunto de atividades que deve ser
executado. As funcionalidades que o projeto deve alcançar ficam em uma lista, Product
Backlog. E é realizada uma reunião onde são definidas as atividades a serem executadas.
Já a XP busca princípios como: O princípio da comunicação, onde o objetivo é o
melhor relacionamento entre o cliente e os desenvolvedores. Simplicidade, em
implementar o software com o menor número possível de classes e métodos.O feedback,
buscar sempre informações sobre o código e sobre o cliente. A coragem, necessária para
tomar decisões simples, buscar novas soluções e cobrar constante feedback do cliente.
O Scrum e o XP compartilham as práticas do manifesto ágil, como equipes
pequenas trabalhando em requisitos instáveis ou desconhecidos em iterações curtas para
fornecer maior visibilidade no desenvolvimento. Eles podem se complementar se bem
utilizados. Enquanto o XP pode cuidar da parte gerencial do projeto, fazendo que seja
entregue dentro do prazo. O Scrum cuida das práticas de engenharia de software e como
serão aplicadas no projeto.
10
11
REFERÊNCIAS
● AGILE, Agile Manifesto. Princípios por trás do Manifesto Ágil. Disponível em:
<http://agilemanifesto.org/iso/ptbr/principles.html>. Acesso em: 18 set. 2017.
● Conceitos básicos sobre Metodologias Ágeis para Desenvolvimento de Software.
<https://www.devmedia.com.br/conceitos-basicos-sobre-metodologias-ageis-para-
desenvolvimento-de-software-metodologias-classicas-x-extreme-
programming/10596>
● PRESSMAN, Roger S. Engenharia de software: uma abordagem profissional.
Recurso eletrônico. 7. ed. Porto Alegre: AMGH, 2011.
● Sommerville, Ian. Engenharia de Software, Person, São Paulo, 2010.
● https://www.devmedia.com.br/praticas-em-xp-extreme-programming/29330
● http://engenhariadesoftwareuesb.blogspot.com/2012/12/extreme-programming.html

Mais conteúdo relacionado

Mais procurados

Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...
Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...
Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...André Luis Celestino
 
Scrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de softwareScrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de softwareThiago Reis da Silva
 
Gerenciando Projetos De Software De Forma áGil Utilizando Scrum
Gerenciando Projetos De Software De Forma áGil Utilizando ScrumGerenciando Projetos De Software De Forma áGil Utilizando Scrum
Gerenciando Projetos De Software De Forma áGil Utilizando ScrumRaphael Donaire Albino
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - ResumoDaniel Brandão
 
Gerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxGerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxRoberto Nunes
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareLuciano Almeida
 
Msf microsoft solutions framework - Apresentação
Msf  microsoft solutions framework -  ApresentaçãoMsf  microsoft solutions framework -  Apresentação
Msf microsoft solutions framework - Apresentaçãocesaraks
 
Caminhos do Scrum
Caminhos do ScrumCaminhos do Scrum
Caminhos do Scrumjrompkovski
 
Princípios ágeis - UFRGS 2013
Princípios ágeis - UFRGS 2013Princípios ágeis - UFRGS 2013
Princípios ágeis - UFRGS 2013Lourenco P Soares
 
Desenvolvimento ágil de software
Desenvolvimento ágil de softwareDesenvolvimento ágil de software
Desenvolvimento ágil de softwarediogenes.araujo
 
Artigo-Alex_Warmling
Artigo-Alex_WarmlingArtigo-Alex_Warmling
Artigo-Alex_WarmlingChaordic
 
Apresentando Extreme Programming
Apresentando Extreme ProgrammingApresentando Extreme Programming
Apresentando Extreme ProgrammingMilfont Consulting
 
Artigo Pós graduação_Caroline Seara (2)
Artigo Pós graduação_Caroline Seara (2)Artigo Pós graduação_Caroline Seara (2)
Artigo Pós graduação_Caroline Seara (2)Caroline Seara
 
Métodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de softwareMétodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de softwareJerônimo Medina Madruga
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto Nunes
 
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...Maicon Zerbielli
 

Mais procurados (20)

Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...
Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...
Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...
 
Princípios Ágeis
Princípios ÁgeisPrincípios Ágeis
Princípios Ágeis
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
Scrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de softwareScrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de software
 
Gerenciando Projetos De Software De Forma áGil Utilizando Scrum
Gerenciando Projetos De Software De Forma áGil Utilizando ScrumGerenciando Projetos De Software De Forma áGil Utilizando Scrum
Gerenciando Projetos De Software De Forma áGil Utilizando Scrum
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - Resumo
 
Gerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxGerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptx
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
Msf microsoft solutions framework - Apresentação
Msf  microsoft solutions framework -  ApresentaçãoMsf  microsoft solutions framework -  Apresentação
Msf microsoft solutions framework - Apresentação
 
Caminhos do Scrum
Caminhos do ScrumCaminhos do Scrum
Caminhos do Scrum
 
Metodologias de desenvolvimento
Metodologias de desenvolvimentoMetodologias de desenvolvimento
Metodologias de desenvolvimento
 
Princípios ágeis - UFRGS 2013
Princípios ágeis - UFRGS 2013Princípios ágeis - UFRGS 2013
Princípios ágeis - UFRGS 2013
 
Desenvolvimento ágil de software
Desenvolvimento ágil de softwareDesenvolvimento ágil de software
Desenvolvimento ágil de software
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
Artigo-Alex_Warmling
Artigo-Alex_WarmlingArtigo-Alex_Warmling
Artigo-Alex_Warmling
 
Apresentando Extreme Programming
Apresentando Extreme ProgrammingApresentando Extreme Programming
Apresentando Extreme Programming
 
Artigo Pós graduação_Caroline Seara (2)
Artigo Pós graduação_Caroline Seara (2)Artigo Pós graduação_Caroline Seara (2)
Artigo Pós graduação_Caroline Seara (2)
 
Métodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de softwareMétodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de software
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
 

Semelhante a O uso de metodos ageis no desenvolvimento de software

Palestra Métodos Ágeis SERPRO
Palestra Métodos Ágeis SERPROPalestra Métodos Ágeis SERPRO
Palestra Métodos Ágeis SERPROWildtech
 
Governança Ágil - Ágiles 2009
Governança Ágil - Ágiles 2009Governança Ágil - Ágiles 2009
Governança Ágil - Ágiles 2009Clavius Tales
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANFernando Palma
 
Estudo empírico da metodologia do desenvolvimento ágil de software
Estudo empírico da metodologia do desenvolvimento ágil de softwareEstudo empírico da metodologia do desenvolvimento ágil de software
Estudo empírico da metodologia do desenvolvimento ágil de softwareMarlon Paranhos
 
Lean software development (2)
Lean software development (2)Lean software development (2)
Lean software development (2)juarezlustosa
 
Aula2 - Modelagem de Sistemas Orientada a Objetos
Aula2 - Modelagem de Sistemas Orientada a ObjetosAula2 - Modelagem de Sistemas Orientada a Objetos
Aula2 - Modelagem de Sistemas Orientada a ObjetosLeandro Rezende
 
Grupo 3 - Gestão Ágil (3).pptx
Grupo 3 - Gestão Ágil (3).pptxGrupo 3 - Gestão Ágil (3).pptx
Grupo 3 - Gestão Ágil (3).pptxssuser064821
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven developmentIzabel Rodrigues
 
Exercicio 1 engenharia de software.
Exercicio 1 engenharia de software.Exercicio 1 engenharia de software.
Exercicio 1 engenharia de software.Renato Breaking
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilRebecca Betwel
 
Sua Gestão é Ágil?
Sua Gestão é Ágil?Sua Gestão é Ágil?
Sua Gestão é Ágil?Teresa Maciel
 
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...Keila Freitas
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
 

Semelhante a O uso de metodos ageis no desenvolvimento de software (20)

Agile explicacao 18
Agile explicacao 18Agile explicacao 18
Agile explicacao 18
 
Vantagens agil 3
Vantagens agil 3Vantagens agil 3
Vantagens agil 3
 
Lean software
Lean software Lean software
Lean software
 
Palestra Métodos Ágeis SERPRO
Palestra Métodos Ágeis SERPROPalestra Métodos Ágeis SERPRO
Palestra Métodos Ágeis SERPRO
 
Governança Ágil - Ágiles 2009
Governança Ágil - Ágiles 2009Governança Ágil - Ágiles 2009
Governança Ágil - Ágiles 2009
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
 
Estudo empírico da metodologia do desenvolvimento ágil de software
Estudo empírico da metodologia do desenvolvimento ágil de softwareEstudo empírico da metodologia do desenvolvimento ágil de software
Estudo empírico da metodologia do desenvolvimento ágil de software
 
Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
 
Lean software development (2)
Lean software development (2)Lean software development (2)
Lean software development (2)
 
Aula2 - Modelagem de Sistemas Orientada a Objetos
Aula2 - Modelagem de Sistemas Orientada a ObjetosAula2 - Modelagem de Sistemas Orientada a Objetos
Aula2 - Modelagem de Sistemas Orientada a Objetos
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Grupo 3 - Gestão Ágil (3).pptx
Grupo 3 - Gestão Ágil (3).pptxGrupo 3 - Gestão Ágil (3).pptx
Grupo 3 - Gestão Ágil (3).pptx
 
eXtreme Programming (XP)
eXtreme Programming (XP)eXtreme Programming (XP)
eXtreme Programming (XP)
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Exercicio 1 engenharia de software.
Exercicio 1 engenharia de software.Exercicio 1 engenharia de software.
Exercicio 1 engenharia de software.
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
 
Sua Gestão é Ágil?
Sua Gestão é Ágil?Sua Gestão é Ágil?
Sua Gestão é Ágil?
 
Agilidade em projetos de software
Agilidade em projetos de softwareAgilidade em projetos de software
Agilidade em projetos de software
 
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 

O uso de metodos ageis no desenvolvimento de software

  • 1. O uso de métodos ágeis no desenvolvimento de software Everton Arlindo Weliton Pereira 03557 03556
  • 2. 1 1. Introdução Toda empresa precisa usar um sistema para realizar e controlar suas tarefas de rotina. Por isso as indústrias de desenvolvimento de softwares estão tendo uma grande importância na atualidade. Desenvolver software é uma atividade difícil e arriscada, um dos motivos é que o software é abstrato, ou seja não é como uma casa que você pode ver a evolução da construção. Segundo estatísticas um dos maiores riscos no seu desenvolvimento são: gastos que superam o orçamento, consumo de tempo que supera o cronograma, funcionalidades que não resolvem os problemas dos usuários, baixa qualidade dos sistemas desenvolvidos e cancelamento do projeto por inviabilidade. Segundo o site DevMedia metodologia de desenvolvimento de software é um conjunto de atividades e resultados associados, que auxiliam na produção de software. Todas as metodologias de desenvolvimento tentam, entre outras coisas, reduzir o alto risco associado ao desenvolvimento de software. Para isso diversas metodologias de desenvolvimento são aplicadas, devido às dificuldades dos primeiros modelos de desenvolvimento , que eram: demora na entrega de um produto para o cliente,ou seja quanto maior era o projeto, mais demorava para ser entregue ao cliente, maior era o seu custo,maior era o seu índice de erros,etc.. Os profissionais de TI perceberam que nem sempre os clientes sabiam o que queriam , ou seja havia às frequentes mudanças de escopo após o projeto ser entregue, porém quando recebiam o sistema, conseguiam entender melhor o problema e consequentemente enxergar uma melhor solução.Como resposta aos diversos fracassos nos projetos de softwares que utilizavam processos de desenvolvimento tradicionais, fadados ao fracasso por requisitos e especificações incompletas ou a falta de envolvimento do cliente no projeto, foi criado o manifesto ágil. Este foi um projeto que reuniu diversos profissionais de desenvolvimento de software com o objetivo de discutir
  • 3. 2 melhores práticas no processo da construção destes, este é o assunto que abordaremos nesse artigo. 2. Metodologia Ágil De acordo com Pressman (2011, p. 82), “métodos ágeis se desenvolveram em um esforço para sanar fraquezas reais e perceptíveis da engenharia de software convencional”, por oferecer importantes benefícios. Pressman (2011), a metodologia ágil, ou movimento ágil, nasceu em 2001, a partir da reunião de 17 profissionais (desenvolvedores, autores e consultores da área de software) que buscavam melhorias nos processos de desenvolvimento de software. Com isso, na tentativa de desvendar melhores formas de desenvolvimento, foram criados os valores da metodologia ágil, que segundo Pressman (2011, p. 81) são: ● Indivíduos e interações acima de processos e ferramentas ● Software operacional acima de documentação completa ● Colaboração dos clientes acima de negociação contratual ● Respostas a mudanças acima de seguir um plano. Isso mostra que a metodologia ágil se preocupa primeiramente com a interação com o cliente e colaboração do cliente dele e com o software operacional funcionando. Documentos, processos, ferramentas tem importância secundária, pois o foco é na interação com o cliente e o software sendo entregue em partes funcionais. Quando você foca em pessoas, software, clientes e na resposta à mudanças, seu projeto sai do papel com mais velocidade e qualidade. Em Agile (2017), esta ideia é reforçada com os doze princípios do Manifesto Agil: ● Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado.
  • 4. 3 ● Mudanças nos requisitos são bem-vindas, mesmo tardiamente no desenvolvimento. Processos ágeis tiram vantagem das mudanças visando vantagem competitiva para o cliente. ● Entregar frequentemente software funcionando, de poucas semanas a poucos meses, com preferência à menor escala de tempo. ● Pessoas de negócio e desenvolvedores devem trabalhar diariamente em conjunto por todo o projeto. ● Construa projetos em torno de indivíduos motivados. Dê a eles o ambiente e o suporte necessário e confie neles para fazer o trabalho. ● O método mais eficiente e eficaz de transmitir informações para e entre uma equipe de desenvolvimento é através de conversa face a face. • Software funcionando é a medida primária de progresso. ● Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente. ● Contínua atenção à excelência técnica e bom design aumenta a agilidade. • Simplicidade – a arte de maximizar a quantidade de trabalho não realizado – é essencial. ● As melhores arquiteturas, requisitos e designs emergem de equipes auto organizáveis. ● Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então refina e ajusta seu comportamento de acordo. Os métodos ágeis utilizam o processo de entrega incremental, e considera que o custo das mudanças seja incorporado no projeto do software, onde as entregas constantes e incrementais são realizadas periodicamente. Com o uso da metodologia ágil é possível prever prazos, custos, mudanças de escopo, identificar problemas, fazer estimativas do andamento de desenvolvimento. Identificados através da boa comunicação interna da equipe juntamente com o contato constante com o cliente como feedback para direcionar o desenvolvimento do software e atender os requisitos desejados.
  • 5. 4 Segundo Sommerville, os incrementos iniciais do sistema podem fornecer uma funcionalidade de alta prioridade, de forma que os clientes logo poderão obter valor do sistema durante seu desenvolvimento. Os clientes podem assim ver os requisitos na prática e especificar mudanças para serem incorporadas nos releases posteriores do sistema. Em relação aos custos, com a metodologia ágil, eles se tornam mais uniformes se comparados a outros processos convencionais(orientados a documentação), podendo ser administrados durante o desenvolvimento e controle de mudanças.A seguir temos alguns exemplos de metodologia ágil. 3. Extreme Programming (XP) Extreme Programming, ou simplesmente XP é uma das mais conhecidas metodologia de desenvolvimento de software que segue os princípios do Manifesto Ágil. Embora seu marco de criação seja o ano de 1996, a junção de princípios e boas práticas de programação são frutos de um processo de evolução de pelo menos uma década em que Kent Beck e Ward Cunningham trabalharam na Tektronics, Inc. como consultores de problemas em SmallTalk (CASTRO, 2007). A metodologia Extreme Programming(XP) é a combinação de uma abordagem colaborativa, livre de desconfianças, com um conjunto de boas práticas de engenharia de software que são eficientes por si só, individual e independentemente do contexto. Cada uma dessas práticas contribui para o aumento da qualidade do software e ajuda a garantir que o produto final agregue valor e atenda as necessidades do negócio (PRIKLADNICKI; WILLI e MILANI, 2014). Recomenda-se o uso da metodologia XP no desenvolvimento de projetos em que os requisitos sejam incertos e que possam mudar constantemente e em uma equipe de desenvolvimento de no máximo doze pessoas, possibilitando o desenvolvimento iterativo e a utilização do paradigma da orientação a objetos (POO) na construção do sistema (Ramos, 2013).
  • 6. 5 Sua metodologia é composta por um conjunto de cinco valores adotados pelo XP: ● Comunicação - Comunicação clara e transparente interna entre a equipe de desenvolvimento e também entre o cliente e a equipe.Tradicionalmente na indústria do software, as equipes de desenvolvimento gastam um valioso esforço na tentativa de trocar informações por meio de extensos documentos escritos. Devido à ineficiência desse meio, nem sempre é possível reproduzir com exatidão uma informação e dessa forma elas são freqüentemente interpretadas de forma incorreta ou incompleta (TELES, 2006). ● Simplicidade - Na hora de desenvolver o software, programando códigos simples, de fácil entendimento e manutenção. E também desenvolver apenas o suficiente para atender as necessidades atuais do cliente, evitando trabalho especulativo, que seria desenvolver uma funcionalidade pensando em problemas futuros. ● Feedback - Reuniões constantes da equipe com o cliente para validar as iterações que estão sendo produzidas.O contato incessante entre o cliente e a equipe de desenvolvimento é o que se pode chamar de feedback constante. Dessa forma, o cliente pode freqüentemente ter uma parte do software funcional para avaliar e com isso, pode sugerir novas características ao mesmo tempo em que pode identificar eventuais não conformidades com os requisitos. E assim, os desenvolvedores podem implementar rapidamente novas características e corrigir eventuais erros já nas próximas versões a serem entregues ao cliente (SOARES, 2004). ● Coragem - Para tomar decisões diante de cenários que podem mudar drasticamente. E ter um pensamento diferenciado e não encarar as mudanças de forma negativa mas sim em oportunidades que precisam ser melhoradas e exploradas em benefício da equipe e do projeto. ● Respeito - Respeito com a equipe e com o comprometimento do software, respeito com o cliente.
  • 7. 6 3.1 Práticas XP As boas práticas da XP são um conjunto de atividades que as equipes XP utilizam enquanto produzem softwares. Antes de qualquer coisa, é necessário ter confiança nestas boas práticas e consciência de que elas devem ser aplicadas em conjunto. Quando aplicadas isoladamente, elas não trazem os mesmos resultados por que os pontos fracos de cada prática são protegidos pelos pontos fortes das outras práticas (BORBOREMA, 2007). As práticas relacionadas com o desenvolvimento e qualidade do software são: 3.1.1 PLANEJAMENTO O desenvolvimento e feito em iterações semanais dos desenvolvedores com o cliente, onde o cliente identifica as funcionalidades e os desenvolvedores as estimam. O objetivo é determinar o escopo das iterações para a entrega das pequenas versões em partes do software (Small Releases). 3.1.2 PEQUENAS VERSÕES São partes do software que já estão prontas ao longo das iterações e são implantadas para o uso do cliente. Sendo que funcionalidades prioritárias são desenvolvidas mais cedo para serem entregues mais rapidamente ao cliente, pois prioriza-se o que ele mais precisa no momento. 3.1.3 METÁFORAS E uma linguagem comum que todos os envolvidos devem possuir. Procura facilitar a comunicação com o cliente. Traduzir as palavras do cliente para o que ele espera dentro do projeto. E quanto aos desenvolvedores e analistas em contato com este cliente, conseguir também explicar de forma, simples, clara e exemplificada os detalhes técnicos que precisam ser passados, de uma forma que o cliente entenda. 3.1.4 PROGRAMAÇÃO EM PARES Consiste em duas pessoas trabalhando em uma única máquina, onde um programa e o outro analisa e dá sugestões ou críticas, podendo revezar de função periodicamente. Essa prática ajuda na comunicação e o aprendizado e como resultado um projeto de maior qualidade. 3.1.5 REFACTORING Refactoring é o processo de reorganizar o código fonte de um software para melhorar sua qualidade interna, facilitar a leitura e diminuir o tempo gasto com manutenção, sem contudo prejudicar o desempenho e alterar seu comportamento
  • 8. 7 externo. Aplicado em sistemas orientados a objetos, a técnica é fundamental para tornar o código mais legível e encontrar facilmente erros em algoritmos mal escritos (NETO, 2007). Segundo Teles (2006), um projeto em XP não existe sem a prática de refactoring, pois a agilidade necessária para alterar e incluir novas funcionalidades constantemente em um sistema só é possível com um código de alta qualidade que seja organizado e de fácil compreensão. Para que isso aconteça, a XP determina que qualquer um da equipe faça o refactoring em qualquer parte do código que esteja pouco legível. 3.1.6 PROPRIEDADE COLETIVA Todos têm acesso e podem modificar o código fonte. Esta prática ajuda ampliar o conhecimento do projeto dentro a equipe onde todos ficam sabendo de tudo sobre o projeto e ajuda no andamento do projeto. 3.1.7 INTEGRAÇÃO A integração ao sistema atual sempre será feita assim que a funcionalidade estiver concluída. Ajuda a diminuir conflitos e possibilidades de erros, pois após a integração, deverá ser feito uma bateria de testes, que são os testes de integração para verificar se o sistema todo está funcionando corretamente após esta nova integração. 3.1.8 CODIFICAÇÃO A equipe precisa estabelecer regras e padrões para programar de forma que o código fique homogêneo, de fácil entendimento e manutenção. De como que pareça que foi feito por uma pessoa só, independente da quantidade de pessoas na equipe. Práticas XP
  • 9. 8 Fonte - Devmedia 4. SCRUM Segundo o site DevMedia Scrum é um framework, uma estrutura bem definida e fundamentada no processo empírico, atende uma gama de áreas além da TI para gerenciamento de projetos. Um framework não pode ser confundido com um guia passo- a-passo, com respostas definitivas para resolução de problemas mais específicos de projetos. Mas pode, sim, dar vida nova ao ciclo de desenvolvimento de software, otimizando a previsibilidade e controlando riscos. É sustentado pelos pilares da transparência, inspeção e adaptação. Buscando visibilidade nos resultados, detecção de variações inaceitáveis no processo e suplantando-os.Apesar de alguns profissionais considerarem o Scrum como um método ágil, por mais que essa forma de desenvolvimento forneça ferramentas e maneiras de se conduzir o desenvolvimento ele não pode ser considerado uma metodologia. A diferença entre uma metodologia e um framework, é que a metodologia fornece praticamente tudo que seja necessário para gerenciar um projeto, ela é bem mais completa que um framework em relação a como fazer e o que fazer. Já o framework indica qual a melhor trajetória, mas não diz o como fazer, ele também pode ser usado com outras técnicas e processos, fornece a estrutura básica como suporte. Resumidamente o Scrum é um framework iterativo e incremental, pois usa experiências anteriores para aperfeiçoar controle de riscos e decisões futuras. No Scrum os projetos são divididos em ciclos, geralmente mensais, que são chamados de Sprints, forma no qual o trabalho é dividido em iterações. As funcionalidades a serem implementadas em um projeto são mantidas em uma lista que é conhecida como Product Backlog ( lista contendo todas as funcionalidades desejadas para um produto ). No início de cada iteração (Sprints),uma reunião de planejamento na qual o dono do produto, ou solicitante do produto,prioriza os itens do Product Backlog e a equipe seleciona as atividades que ela será capaz de implementar durante o primeiro Sprint. As tarefas reunidas em um Sprint são transferidas do Product Backlog para o Sprint Backlog. A cada dia de trabalho na Sprint, a equipe faz uma reunião (normalmente de matutina), essa reunião é chamada Daily Scrum.O objetivo é compartilhar
  • 10. 9 conhecimento sobre o que foi feito no dia anterior, identificar falhas e priorizar o trabalho do dia que se inicia. 5-CONCLUSÃO Através desta pesquisa podemos concluir e ver a importância dos Métodos Ágeis XP e SCRUM no desenvolvimento de projetos de software garantindo eficácia e alta qualidade. Devido a evolução da tecnologia esses processos se tornaram complemento um do outro tornando-se ótimas ferramentas de trabalho, sendo que o XP é utilizado para desenvolvimento e o SCRUM para um framework. No Scrum os ciclos são divididos em períodos de 2 a 4 semanas, esse período é conhecido como Sprint. Dentro do Sprint existe um conjunto de atividades que deve ser executado. As funcionalidades que o projeto deve alcançar ficam em uma lista, Product Backlog. E é realizada uma reunião onde são definidas as atividades a serem executadas. Já a XP busca princípios como: O princípio da comunicação, onde o objetivo é o melhor relacionamento entre o cliente e os desenvolvedores. Simplicidade, em implementar o software com o menor número possível de classes e métodos.O feedback, buscar sempre informações sobre o código e sobre o cliente. A coragem, necessária para tomar decisões simples, buscar novas soluções e cobrar constante feedback do cliente. O Scrum e o XP compartilham as práticas do manifesto ágil, como equipes pequenas trabalhando em requisitos instáveis ou desconhecidos em iterações curtas para fornecer maior visibilidade no desenvolvimento. Eles podem se complementar se bem utilizados. Enquanto o XP pode cuidar da parte gerencial do projeto, fazendo que seja entregue dentro do prazo. O Scrum cuida das práticas de engenharia de software e como serão aplicadas no projeto.
  • 11. 10
  • 12. 11 REFERÊNCIAS ● AGILE, Agile Manifesto. Princípios por trás do Manifesto Ágil. Disponível em: <http://agilemanifesto.org/iso/ptbr/principles.html>. Acesso em: 18 set. 2017. ● Conceitos básicos sobre Metodologias Ágeis para Desenvolvimento de Software. <https://www.devmedia.com.br/conceitos-basicos-sobre-metodologias-ageis-para- desenvolvimento-de-software-metodologias-classicas-x-extreme- programming/10596> ● PRESSMAN, Roger S. Engenharia de software: uma abordagem profissional. Recurso eletrônico. 7. ed. Porto Alegre: AMGH, 2011. ● Sommerville, Ian. Engenharia de Software, Person, São Paulo, 2010. ● https://www.devmedia.com.br/praticas-em-xp-extreme-programming/29330 ● http://engenhariadesoftwareuesb.blogspot.com/2012/12/extreme-programming.html