Open diovanemonteiro opened 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.
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.
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.
[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.
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].
[1] Engenharia de Software. Ian Sommerville. 9ª ed. Pág.: 44.
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.
[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.
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.
[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...
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...
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.