Victor CM (discussão | contribs)
Victor CM (discussão | contribs)
Sem resumo de edição
 
(10 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
= Conceito de Métodos Ágeis =
== Conceito de Métodos Ágeis ==
<p>Os métodos ágeis são uma alternativa à gestão tradicional de projetos, eles nasceram nos braços do desenvolvimento de software, mas hoje podem ser aplicados a qualquer tipo de projeto (inclusive os que não se remetem ao software). Os métodos ágeis vem ajudando muitas equipes a encarar as imprevisibilidades dentro de um projeto através de entregas incrementais e ciclos iterativos. As metodologias ágeis passaram a ser uma alternativa aos métodos tradicionais, também conhecidos como métodos pesados ou clássicos. <br />
*Os métodos ágeis são uma alternativa à gestão tradicional de projetos, eles nasceram nos braços do desenvolvimento de software, mas hoje podem ser aplicados a qualquer tipo de projeto (inclusive os que não se remetem ao software). Os métodos ágeis vem ajudando muitas equipes a encarar as imprevisibilidades dentro de um projeto através de entregas incrementais e ciclos iterativos. As metodologias ágeis passaram a ser uma alternativa aos métodos tradicionais, também conhecidos como métodos pesados ou clássicos.  
*Os métodos ágeis buscam promover um processo de gerenciamento de projetos que incentiva a inspeção e adaptação frequente. É uma filosofia que acaba por incentivar o maior trabalho em equipe, a auto-organização, a comunicação frequente, o foco no cliente e a entrega de valor. Basicamente, os métodos ágeis são um conjunto de práticas eficazes que se destinam a permitir a entrega rápida e de alta qualidade do produto, tendo uma abordagem de negócios que alinha o desenvolvimento do projeto com as necessidades do cliente e os objetivos da empresa.


<p>Os métodos ágeis buscam promover um processo de gerenciamento de projetos que incentiva a inspeção e adaptação frequente. É uma filosofia que acaba por incentivar o maior trabalho em equipe, a auto-organização, a comunicação frequente, o foco no cliente e a entrega de valor. Basicamente, os métodos ágeis são um conjunto de práticas eficazes que se destinam a permitir a entrega rápida e de alta qualidade do produto, tendo uma abordagem de negócios que alinha o desenvolvimento do projeto com as necessidades do cliente e os objetivos da empresa.
== O que é Extreme Programming? ==
*Extreme Programming, ou XP, é um processo de desenvolvimento de software voltado para:
**Projetos cujos requisitos são vagos e mudam com freqüência;
**Desenvolvimento de sistemas orientados a objeto;
**Equipes pequenas, preferencialmente até 12 desenvolvedores
**Desenvolvimento incremental (ou iterativo), onde o sistema começa a ser implementado logo no início do projeto e vai ganhando novas funcionalidades ao longo do tempo.
*Existe uma categoria de processos de desenvolvimento conhecida como Processos Ágeis de Desenvolvimento, dentro da qual o XP e outros processos se encaixam. Eles compartilham a premissa de que o cliente aprende sobre suas necessidades, na medida em que é capaz de manipular o sistema que está sendo produzido. Com base no feedback do sistema ele re-avalia as suas necessidades e prioridades, gerando mudanças que devem ser incorporadas ao software. O aprendizado é importante, porque permite que o cliente direcione o desenvolvimento de modo que a equipe produza sempre aquilo que tem o maior valor para o seu negócio.
*O XP é um processo de desenvolvimento que busca assegurar que o cliente receba o máximo de valor de cada dia de trabalho da equipe de desenvolvimento. Ele é organizado em torno de um conjunto de valores e práticas que atuam de forma harmônica e coesa para assegurar que o cliente sempre receba um alto retorno do investimento em software.
 
 
== Os 4 valroes de XP ==
*O XP se baseia em 4 valores fundamentais:
**'''Feedback''': O feedback é o mecanismo fundamental que permite que o cliente conduza o desenvolvimento diariamente e garanta que a equipe direcione as suas atenções para aquilo que irá gerar mais valor.
**'''Comunicação''': A comunicação entre o cliente e a equipe permite que todos os detalhes do projeto sejam tratados com a atenção e a agilidade que merecem.
**'''Simplicidade''':  Também é necessário que a equipe compreenda e utilize o valor da simplicidade, que nos ensina a implementar apenas aquilo que é suficiente para atender a cada necessidade do cliente. Ou seja, ao codificar uma funcionalidade devemos nos preocupar apenas com os problemas de hoje e deixar os problemas do futuro para o futuro. Não devemos tentar prever o futuro, pois raramente acertamos nas previsões.
**'''Coragem''': Dado que o sistema é desenvolvido de forma incremental, a equipe está continuamente fazendo a manutenção do software e criando novas funcionalidades. Em muitos casos, ela irá alterar algo que vinha funcionando corretamente, o que leva ao risco de gerar falhas no sistema. Por esta razão, a equipe precisa ser corajosa e acreditar que, utilizando as práticas e valores do XP, será capaz de fazer o software evoluir com segurança e agilidade.
 
*Portanto todos esses valores são muito importantes, pois um complementa o outro. Para receber um feedback é necessária a comunicação e para que tudo corra bem os desenvolvedores devem trabalhar com simplicidade fazendo com que o cliente tenha logo um resultado e possa dar novamente um feedback. E por fim o desenvolvedor deve ter a coragem na hora de corrigir falhas para que o produto final esteja satisfatório ao cliente.


== O que é Extreme Programming? ==
== As práticas de XP ==
Extreme Programming, ou XP, é um processo de desenvolvimento de software
*O XP se baseia nas seguintes práticas:
voltado para:
**'''Cliente Presente''': O XP trabalha com a premissa de que é essencial que o cliente participe ativamente do processo de desenvolvimento, a sua presença viabiliza a simplicidade do processo em diversos aspectos, especialmente na comunicação.
*Projetos cujos requisitos são vagos e mudam com freqüência;
**'''Jogo do Planejamento''': O XP utiliza diversas formas de planejamento para assegurar que a equipe esteja sempre trabalhando naquilo que é o mais importante para o cliente.Por esta razão, todo projeto em XP é dividido em releases e iterações, de modo que cliente e equipe tenham diversas oportunidades de se reunir para revisar o planejamento.
*Desenvolvimento de sistemas orientados a objeto;
**'''Stand Up Meeting''': Trata-se de uma reunião rápida que recebe o nome de stand up meeting, que em inglês significa reunião em pé, onde a equipe de desenvolvimento se reúne a cada manhã para avaliar o trabalho que foi executado no dia anterior e priorizar aquilo que será implementado no dia que se inicia.
*Equipes pequenas, preferencialmente até 12 desenvolvedores
**'''Programação em Par''': diante de cada computador, existem sempre dois desenvolvedores que trabalham juntos para produzir o mesmo código. Isso permite que o código seja revisado permanentemente, enquanto é construído.
*Desenvolvimento incremental (ou iterativo), onde o sistema começa a
**'''Desenvolvimento Guiado pelos Testes''': Os desenvolvedores escrevem testes para cada funcionalidade antes de codificá-las. Fazendo isso, eles aprofundam o entendimento das necessidades do cliente (o que aprimora a análise), se preocupam com as interfaces externas dos métodos e classes antes de codificá-los (o que melhora o design), sabem até onde codificar cada funcionalidade (o que ajuda a manter o sistema simples) e passam a contar com uma massa de testes que pode ser usada a qualquer momento para validar todo o sistema.
ser implementado logo no início do projeto e vai ganhando novas funcionalidades
**'''Refactoring''': O refactoring é o ato de alterar um código sem afetar a funcionalidade que ele implementa. É utilizado para tornar o software mais simples de ser manipulado.
ao longo do tempo.
**'''Código Coletivo''': No XP o sistema não é segmentado em partes, de modo que cada desenvolvedor fique responsável por uma delas. Os desenvolvedores têm acesso a todas as partes do código e podem alterar aquilo que julgarem importante sem a necessidade de pedir autorização de outra pessoa, pois o código é coletivo.
1.3 Os 4 valroes de XP
**'''Código Padronizado''': Para que todos os desenvolvedores possam manipular qualquer parte do software de forma mais rápida, a equipe estabelece padrões de codificação, que servem também para tornar o sistema mais homogêneo e permitir que qualquer manutenção futura seja efetuada mais rapidamente.
1.4 AS práticas de XP
**'''Design Simples''': Para que o cliente possa obter feedback logo, a equipe precisa ser ágil no desenvolvimento, o que a leva a optar pela simplicidade do design.
1.5 Vantagens
**'''Metáfora''': Para facilitar a criação de um design simples, a equipe de desenvolvimento utiliza metáforas, já que elas têm o poder de transmitir idéias complexas de forma simples, através de uma linguagem comum que é estabelecida entre a equipe de desenvolvimento e o cliente.
1.6 Referências bilbiográficas
**'''Ritmo Sustentável''': o XP recomenda que os desenvolvedores trabalhem apenas oito horas por dia e evitem fazer horas-extras, visto que é essencial estar descansado a cada manhã, de modo a utilizar a mente na sua plenitude ao longo do dia.
**'''Integração Contínua''':  leva os pares a integrarem seus códigos com o restante do sistema diversas vezes ao dia. Cada vez que um par faz isso, ele executa todos os testes para assegurar que a integração tenha ocorrido de forma satisfatória.
**'''Releases Curtos''':  A equipe produz um conjunto reduzido de funcionalidades e coloca em produção rapidamente de modo que o cliente já possa utilizar o software no dia-a-dia e se beneficiar dele. Durante todo o projeto, a equipe colocará o sistema em produção diversas vezes, cada vez incorporando mais funcionalidades e gerando mais valor.
 
 
== Vantagens ==
*O cliente está sempre por perto, resultando em um produto final muito próximo daquilo que ele o deseja;
*A programação em dupla reduz o número de erros e a aumenta a legibilidade do código, o que facilita nas futuras manutenções;
*Erros são encontrados em um estágio cedo, pois são realizados vários testes de diversas formas;
*Organização;
 
 
 
 
*'''Referências Bibliográficas'''
**https://www.culturaagil.com.br/o-que-sao-metodos-ageis/
**https://www.culturaagil.com.br/manifesto-agil-como-tudo-comecou/
**https://www.culturaagil.com.br/iterativo-e-incremental-suas-definicoes/
**http://www.martinsfontespaulista.com.br/anexos/produtos/capitulos/143120.pdf
**http://www.inf.ufpr.br/lmperes/slides/Extreme_Programming.pdf

Edição atual tal como às 19h59min de 6 de junho de 2017

Conceito de Métodos Ágeis

  • Os métodos ágeis são uma alternativa à gestão tradicional de projetos, eles nasceram nos braços do desenvolvimento de software, mas hoje podem ser aplicados a qualquer tipo de projeto (inclusive os que não se remetem ao software). Os métodos ágeis vem ajudando muitas equipes a encarar as imprevisibilidades dentro de um projeto através de entregas incrementais e ciclos iterativos. As metodologias ágeis passaram a ser uma alternativa aos métodos tradicionais, também conhecidos como métodos pesados ou clássicos.
  • Os métodos ágeis buscam promover um processo de gerenciamento de projetos que incentiva a inspeção e adaptação frequente. É uma filosofia que acaba por incentivar o maior trabalho em equipe, a auto-organização, a comunicação frequente, o foco no cliente e a entrega de valor. Basicamente, os métodos ágeis são um conjunto de práticas eficazes que se destinam a permitir a entrega rápida e de alta qualidade do produto, tendo uma abordagem de negócios que alinha o desenvolvimento do projeto com as necessidades do cliente e os objetivos da empresa.

O que é Extreme Programming?

  • Extreme Programming, ou XP, é um processo de desenvolvimento de software voltado para:
    • Projetos cujos requisitos são vagos e mudam com freqüência;
    • Desenvolvimento de sistemas orientados a objeto;
    • Equipes pequenas, preferencialmente até 12 desenvolvedores
    • Desenvolvimento incremental (ou iterativo), onde o sistema começa a ser implementado logo no início do projeto e vai ganhando novas funcionalidades ao longo do tempo.
  • Existe uma categoria de processos de desenvolvimento conhecida como Processos Ágeis de Desenvolvimento, dentro da qual o XP e outros processos se encaixam. Eles compartilham a premissa de que o cliente aprende sobre suas necessidades, na medida em que é capaz de manipular o sistema que está sendo produzido. Com base no feedback do sistema ele re-avalia as suas necessidades e prioridades, gerando mudanças que devem ser incorporadas ao software. O aprendizado é importante, porque permite que o cliente direcione o desenvolvimento de modo que a equipe produza sempre aquilo que tem o maior valor para o seu negócio.
  • O XP é um processo de desenvolvimento que busca assegurar que o cliente receba o máximo de valor de cada dia de trabalho da equipe de desenvolvimento. Ele é organizado em torno de um conjunto de valores e práticas que atuam de forma harmônica e coesa para assegurar que o cliente sempre receba um alto retorno do investimento em software.


Os 4 valroes de XP

  • O XP se baseia em 4 valores fundamentais:
    • Feedback: O feedback é o mecanismo fundamental que permite que o cliente conduza o desenvolvimento diariamente e garanta que a equipe direcione as suas atenções para aquilo que irá gerar mais valor.
    • Comunicação: A comunicação entre o cliente e a equipe permite que todos os detalhes do projeto sejam tratados com a atenção e a agilidade que merecem.
    • Simplicidade: Também é necessário que a equipe compreenda e utilize o valor da simplicidade, que nos ensina a implementar apenas aquilo que é suficiente para atender a cada necessidade do cliente. Ou seja, ao codificar uma funcionalidade devemos nos preocupar apenas com os problemas de hoje e deixar os problemas do futuro para o futuro. Não devemos tentar prever o futuro, pois raramente acertamos nas previsões.
    • Coragem: Dado que o sistema é desenvolvido de forma incremental, a equipe está continuamente fazendo a manutenção do software e criando novas funcionalidades. Em muitos casos, ela irá alterar algo que vinha funcionando corretamente, o que leva ao risco de gerar falhas no sistema. Por esta razão, a equipe precisa ser corajosa e acreditar que, utilizando as práticas e valores do XP, será capaz de fazer o software evoluir com segurança e agilidade.
  • Portanto todos esses valores são muito importantes, pois um complementa o outro. Para receber um feedback é necessária a comunicação e para que tudo corra bem os desenvolvedores devem trabalhar com simplicidade fazendo com que o cliente tenha logo um resultado e possa dar novamente um feedback. E por fim o desenvolvedor deve ter a coragem na hora de corrigir falhas para que o produto final esteja satisfatório ao cliente.

As práticas de XP

  • O XP se baseia nas seguintes práticas:
    • Cliente Presente: O XP trabalha com a premissa de que é essencial que o cliente participe ativamente do processo de desenvolvimento, a sua presença viabiliza a simplicidade do processo em diversos aspectos, especialmente na comunicação.
    • Jogo do Planejamento: O XP utiliza diversas formas de planejamento para assegurar que a equipe esteja sempre trabalhando naquilo que é o mais importante para o cliente.Por esta razão, todo projeto em XP é dividido em releases e iterações, de modo que cliente e equipe tenham diversas oportunidades de se reunir para revisar o planejamento.
    • Stand Up Meeting: Trata-se de uma reunião rápida que recebe o nome de stand up meeting, que em inglês significa reunião em pé, onde a equipe de desenvolvimento se reúne a cada manhã para avaliar o trabalho que foi executado no dia anterior e priorizar aquilo que será implementado no dia que se inicia.
    • Programação em Par: diante de cada computador, existem sempre dois desenvolvedores que trabalham juntos para produzir o mesmo código. Isso permite que o código seja revisado permanentemente, enquanto é construído.
    • Desenvolvimento Guiado pelos Testes: Os desenvolvedores escrevem testes para cada funcionalidade antes de codificá-las. Fazendo isso, eles aprofundam o entendimento das necessidades do cliente (o que aprimora a análise), se preocupam com as interfaces externas dos métodos e classes antes de codificá-los (o que melhora o design), sabem até onde codificar cada funcionalidade (o que ajuda a manter o sistema simples) e passam a contar com uma massa de testes que pode ser usada a qualquer momento para validar todo o sistema.
    • Refactoring: O refactoring é o ato de alterar um código sem afetar a funcionalidade que ele implementa. É utilizado para tornar o software mais simples de ser manipulado.
    • Código Coletivo: No XP o sistema não é segmentado em partes, de modo que cada desenvolvedor fique responsável por uma delas. Os desenvolvedores têm acesso a todas as partes do código e podem alterar aquilo que julgarem importante sem a necessidade de pedir autorização de outra pessoa, pois o código é coletivo.
    • Código Padronizado: Para que todos os desenvolvedores possam manipular qualquer parte do software de forma mais rápida, a equipe estabelece padrões de codificação, que servem também para tornar o sistema mais homogêneo e permitir que qualquer manutenção futura seja efetuada mais rapidamente.
    • Design Simples: Para que o cliente possa obter feedback logo, a equipe precisa ser ágil no desenvolvimento, o que a leva a optar pela simplicidade do design.
    • Metáfora: Para facilitar a criação de um design simples, a equipe de desenvolvimento utiliza metáforas, já que elas têm o poder de transmitir idéias complexas de forma simples, através de uma linguagem comum que é estabelecida entre a equipe de desenvolvimento e o cliente.
    • Ritmo Sustentável: o XP recomenda que os desenvolvedores trabalhem apenas oito horas por dia e evitem fazer horas-extras, visto que é essencial estar descansado a cada manhã, de modo a utilizar a mente na sua plenitude ao longo do dia.
    • Integração Contínua: leva os pares a integrarem seus códigos com o restante do sistema diversas vezes ao dia. Cada vez que um par faz isso, ele executa todos os testes para assegurar que a integração tenha ocorrido de forma satisfatória.
    • Releases Curtos: A equipe produz um conjunto reduzido de funcionalidades e coloca em produção rapidamente de modo que o cliente já possa utilizar o software no dia-a-dia e se beneficiar dele. Durante todo o projeto, a equipe colocará o sistema em produção diversas vezes, cada vez incorporando mais funcionalidades e gerando mais valor.


Vantagens

  • O cliente está sempre por perto, resultando em um produto final muito próximo daquilo que ele o deseja;
  • A programação em dupla reduz o número de erros e a aumenta a legibilidade do código, o que facilita nas futuras manutenções;
  • Erros são encontrados em um estágio cedo, pois são realizados vários testes de diversas formas;
  • Organização;