diovanemonteiro / resumos

Esse repositório tem a intenção de ser uma coleção de resumos sobre meus estudos para concursos públicos da área de Tecnologia da Informação
http://diovanemonteiro.github.io/resumos
0 stars 0 forks source link

Conceitos e princípios das metodologias ágeis #15

Open diovanemonteiro opened 5 years ago

diovanemonteiro commented 5 years ago

As práticas do XP listadas descrevem respectivamente:

I. Integração contínua (continuous integration): Na integração contínua é uma iniciativa presente no XP ocorre durante todo o desenvolvimento, visando ao longo do projeto integrar o código desenvolvido, corrigindo possíveis inconsistência que surgirem.

II. Propriedade coletiva do código (collective code ownership): A propriedade coletiva do código visa possibilitar que qualquer desenvolvedor possa alterar o código, dando assim, mais celeridade ao processo de desenvolvimento.

III. Metáfora do sistema (system metaphor): A metáfora é uma história do usuário em alto nível, ou seja, pressupõe facilitar a abstração de funcionalidades pelos desenvolvedores e pelos usuários, trazendo a ideia que coesão para que qualquer pessoa possa compreender o que está sendo desenvolvido.

IV. Refatoração (Refactoring): A refatoração é uma prática constante no XP, onde o código desenvolvido é continuamente recriado pelos desenvolvedores, a fim de manter o código em aperfeiçoamento constante.

diovanemonteiro commented 5 years ago

O "ritmo sustentável" é uma das práticas da XP.

Essa prática sugere que a equipe não trabalhe fora do seu horário pois grandes quantidade de horas-extra normalmente causam a redução da qualidade do código e da produtividade a médio prazo.

diovanemonteiro commented 5 years ago

No XP (Extreme Programming) temos a seguinte prática: se testar é bom, vamos testar o tempo todo! Dessa prática evidenciada no XP, nasce o desenvolvimento por teste, ou seja, primeiro testamos (test-first) e depois implementamos.

O test-first ocorre da seguinte forma: são escritos testes unitários para cada nova funcionalidade, antes da implementação da nova funcionalidade, o que obviamente cria a necessidade de que os implementadores compreendam detalhadamente a especificação da funcionalidade que será desenvolvida, para que o teste seja escrito.

diovanemonteiro commented 5 years ago

A refatoração recomendada pela metodologia XP consiste na reorganização interna do código-fonte sem alteração no seu comportamento, o que permite melhorias no projeto, mesmo após o início da implementação.

Comentário: segundo Pressman [1], a refatoração permite aperfeiçoar a estrutura de um código-fonte sem alterar sua funcionalidade ou comportamento externo. A refatoração pode melhorar a eficiência, legibilidade e o desempenho do código.

Nos métodos ágeis a refatoração é uma parte inerente pois esses métodos são baseados em mudanças e a qualidade do programa pode degradar rapidamente [2].

Assim, a refatoração pode evitar essa degradação.

Referências:

[1] Engenharia de software: uma abordagem profissional. Roger S. Pressman - 7ª ed. - pag. 87. [2] Engenharia de Software. Ian Sommerville. 9ª ed. Pág.: 176.

diovanemonteiro commented 5 years ago

Na XP (Extreme Programming), programadores trabalham em pares, e requisitos são expressos como cenários, denominados histórias de usuários, os quais são implementados como uma série de tarefas.

Comentário: uma das características mais marcantes na XP é a programação em pares. Onde duas pessoas trabalham juntas em uma mesma estação de trabalho. Enquanto uma pessoa codifica, a outra vai revisando. Com isso espera-se evitar erros de programação e que melhores estratégias de implementação sejam utilizadas.

As histórias de usuário descrevem os resultados, as características e as funcionalidades requisitados para o software, que "são implementados diretamente como uma série de tarefas" [1].

Referências:

[1] Engenharia de Software. Ian Sommerville. 9ª ed. Pág.: 44.

diovanemonteiro commented 5 years ago

A integração contínua descrita na XP pode fazer parte do processo de desenvolvimento de software que utiliza o Scrum, pois, à medida que as entregas sejam realizadas na Scrum, pode-se validá-las por meio de testes automatizados.

Comentário: no Scrum, os projetos progridem por intermédio de uma série sequencial de sprints [1]. Cada sprint possui um período fixo que normalmente varia de duas a quatro semanas e, ao final da sprint, uma entrega do incremento de software é feita ao cliente.

A integração contínua permite que o trabalho desenvolvido pelos membros da equipe sejam integrados várias vezes por dia com a execução automática de uma build que compila o código e de testes automatizados. Um dos benefícios de utilizar essa estratégia é que os erros são identificados de forma precoce e, uma vez detectado um erro, é mais fácil de isolá-lo e corrigi-lo.

Assim, como no Scrum é comum que os desenvolvedores trabalhem em paralelo e em várias partes do código, a integração contínua pode ser utilizada para que a integração do trabalho seja mais rápida.

Referências

[1] Metodologias ágeis: engenharia de software sob medida. José Henrique Teixeira de Carvalho Sbrocco, Paulo Cesar de Macedo. 1. ed. - São Paulo: Érica, 2012. Pág.: 162.

diovanemonteiro commented 5 years ago

O Scrum Master é um facilitador do Time Scrum, ajudando todos do Time Scrum a entenderem a teoria, as práticas, as regras e os valores do Scrum.

Referência

[1] : Guia do Scrum – Um guia definitivo para o Scrum: As regras do jogo, Nov. 2017. Disponível em https://www.scrumguides.org/docs/scrumguide/v20...

diovanemonteiro commented 5 years ago

Em um desenvolvimento ágil sob a metodologia Scrum, deve-se fazer uma reunião diária, chamada daily Scrum, que terá a finalidade de resolver os problemas que forem identificados e não solucionados no dia de trabalho anterior.

Segundo o Guia do Scrum, a finalidade da reunião diária (Daily Scrum) é planejar o trabalho para as próximas 24 horas, otimizando a colaboração e a performance do time através da inspeção do trabalho desde a última reunião diária, e da previsão do próximo trabalho da Sprint.

Referência:

[1] : Guia do Scrum – Um guia definitivo para o Scrum: As regras do jogo, Nov. 2017. Disponível em https://www.scrumguides.org/docs/scrumguide/v20...