Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 28, 2021 10:06 am GMT

Feedback

Feedback um dos valores fundamentais da Programao Extrema, junto com coragem, comunicao, simplicidade e respeito.

Segundo o site extremeprogramming.org, quando praticamos XP nos comprometemos a:

  • Entregar um software funcionando em toda iterao;
  • Demonstrar o software cedo e muitas vezes, para ento escutar atentamente e realizar quaisquer alteraes necessrias;
  • Falar sobre o projeto e adaptar nosso processo a ele, no o contrrio.

Para atingir estas metas precisamos constantemente revisar se estamos caminhando para direo correta, afinal, para adaptar nosso processo de forma contnua precisamos tambm avali-lo continuamente.

Abaixo descrevo as diversas formas de feedback que ocorrem em diferentes camadas.

Feedback atravs de testes automatizados

Programao Extrema e TDD tem uma forte relao histrica. Nasceram em perodos prximos e foram disseminadas pelo mesmo grupo de pessoas, ento no surpresa que a XP incentive o uso de TDD, tambm chamado de test-first (teste primeiro).

E os testes so uma das nossas formas de feedback. Criamos testes para que nos guiem em direo a um design simples. atravs deles tambm que garantimos que um bug de regresso no voltar a acontecer. Alm disso, nos ajudam a manter o sistema integro, especialmente quando praticados em conjunto com outra prtica importante da Programao Extrema: integrao contnua.

Quando escrevemos testes recebemos tambm feedbacks um pouco mais discretos, mas no menos importantes. Por exemplo:

  • Quo difcil foi escrever o teste?
  • Quando uma funo ou classe foi refatorada, algum teste quebrou?
  • Quantos testes tiveram que ser alterados para adicionar uma nova funcionalidade ao sistema? E estes testes tinham relao com a parte do sistema que estava sendo alterada?

Este tipo de feedback facilita a identificao antecipada de falhas no design do nosso sistema.

Indo alm do TDD

O uso de testes automatizados no se limita ao uso clssico que encontramos nos livros de TDD. Com ferramentas como ArchUnit, conseguimos at mesmo criar uma definio testvel da arquitetura de nosso sistema.

Outro contexto interessante que podemos utiliz-los para testar a performance da nossa aplicao, com bibliotecas como JMeter ou Newman.

Criando este tipos de testes e configurando nossa pipeline de build (com tecnologias como Jenkins ou GitLab CI), conseguimos ter um feedback contnuo que a arquitetura definida nos testes est sendo seguida por todas as pessoas do time e que a performance da nossa aplicao est dentro dos critrios estabelecidos.

Mas estas so apenas algumas das tarefas que um time pode automatizar atravs dos testes. O livro Building Evolutionary Architectures nos traz algumas outras ideias de situaes que podemos utilizar os testes automatizados a nosso favor.

Feedback da cliente

Na XP a cliente faz parte do time. Entre as suas responsabilidade, esto:

  • Estar sempre disponvel, preferencialmente no mesmo local para conversas frente a frente;
  • Fazer parte do planejamento, junto com demais integrantes do time;
  • Escrever e priorizar as histrias de usurio;
  • Auxiliar na criao de teste funcionais, ajudando na criao de massa e dos resultados que precisam ser computados, que sero ento verificados de forma automatizada;
  • Decidir, baseado no feedback dos testes funcionais, se a aplicao deve ou no ser implantada.

Ao contrrio de um modelo Waterfall, na Programao Extrema (e modelos geis em geral) a cliente no perde muito tempo criando histrias de usurio detalhadas. Isso faz com que os pormenores da soluo sejam postergados para o momento mais prximo da implementao da funcionalidade em questo, quando o time j tem uma viso mais clara do que precisa de fato ser feito.

E no incomum que a cliente mude suas necessidades conforme o sistema desenvolvido, j que neste estgio as suas reais necessidades ficam mais evidentes. A Programao Extrema abraa essas mudanas e as incorpora em seu planejamento.

Desta forma, a pessoa (ou pessoas) que representa a cliente tem um papel fundamental no feedback constante, ajudando a direcionar o desenvolvimento para que ao final de cada iterao o time consiga ser o mais produtivo possvel, focando nas funcionalidades que realmente agregaram o mximo de valor ao produto.

E seu trabalho no termina a. Ela precisa acompanhar como as funcionalidades e alteraes esto se comportando aps sua implantao em produo e usar isso como feedback para evoluo do desenvolvimento do sistema.

Feedback das pessoas desenvolvedoras

Como pessoa desenvolvedora integrante de um time XP, suas responsabilidades incluem:

  • Realizar simultaneamente e incrementalmente o design, codificao e testes da aplicao;
  • Seguir as prticas de test-first (TDD);
  • Respeitar os prazos e terminar toda iterao com um software funcionando para demonstrao;
  • Integrar continuamente (a cada poucas horas) seu cdigo na branch principal do projeto;
  • Praticar programao em par ou mob programming (tambm conhecida como ensemble programming).
  • Abraar mudanas nos requisitos do sistema;
  • Participar do planejamento da iterao;
  • Se candidatar a fazer as tarefas que deseja implementar e estim-las.

A estimativa de esforo de uma tarefa deve ser feita pela pessoa desenvolvedora que escolheu aquela tarefa e essa informao crucial para que a cliente consiga priorizar melhor as suas necessidades. Afinal, se uma determinada tarefa exigir um esforo muito grande e a cliente achar que agrega pouco valor naquele momento, provavelmente no faz muito sentido prioriz-la.

O compromisso em entregar um software funcionando no significa que existe um contrato inflexvel. Todo o planejamento deve ser revisto diariamente e por isso importante que a pessoa desenvolvedora tenha uma postura transparente, expondo abertamente para o time suas dificuldades e incertezas. Isso normalmente ocorre durante a reunio diria (daily stand up meeting) e preciso ter coragem.

J a prtica de integrao contnua ajuda o time a ter uma viso mais clara do cdigo como um todo. Ao evitarmos a criao de feature branchs, temos um feedback mais rpido do design do nosso sistema. s vezes pessoas diferentes tem solues distintas para situaes similares. Ao demorar para integrar as solues, corremos o risco de ter dificuldade de integrar as 2 vises do sistema em um nico branch.

Feedback da Tracker

Na Programao Extrema temos um papel chamado Tracker, que tambm possui uma funo importante no contexto de feedback. Mas para no alongar demais este artigo, optei por deixar esta discusso para outro momento.

Concluso

Feedback apenas um dos valores fundamentais da Programao Extrema, junto com coragem, comunicao, simplicidade e respeito.

Aqui citei apenas algumas das vrias formas existentes de feedback.

Para entender mais sobre Programao Extrema recomendo a leitura dos seguintes livros:

Curtiu este artigo? Talvez voc v gostar tambm do p de Podcast, um podcast semanal que participo sobre Arquitetura de Software e Tecnologia: https://anchor.fm/pdepodcast


Original Link: https://dev.to/marciofrayze/feedback-2eol

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To