<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Beatriz Feliciano </title>
    <description>The latest articles on DEV Community by Beatriz Feliciano  (@_bfeliciano).</description>
    <link>https://dev.to/_bfeliciano</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F560806%2F1773322d-e366-4c0a-9638-f04f10e89a90.PNG</url>
      <title>DEV Community: Beatriz Feliciano </title>
      <link>https://dev.to/_bfeliciano</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_bfeliciano"/>
    <language>en</language>
    <item>
      <title>Agile Testing: como trabalhar com testes em contexto ágil</title>
      <dc:creator>Beatriz Feliciano </dc:creator>
      <pubDate>Mon, 16 Aug 2021 20:57:31 +0000</pubDate>
      <link>https://dev.to/womakerscode/agile-testing-como-trabalhar-com-testes-em-contexto-agil-3dj3</link>
      <guid>https://dev.to/womakerscode/agile-testing-como-trabalhar-com-testes-em-contexto-agil-3dj3</guid>
      <description>&lt;p&gt;Cada dia mais ouvimos falar sobre a agilidade e vemos que as metodologias ágeis estão  sendo aplicadas nas mais diversas áreas além do desenvolvimento de software hoje vemos áreas como RH, Marketing e até no mercado de publicidade entrando na onda ágil. E diante deste contexto diversos profissionais precisaram se adaptar e os testadores não foram uma exceção.&lt;/p&gt;

&lt;p&gt;O Agile Testing é uma forma de atuar em contextos ágeis que começou a se difundir pela comunidade de testes por volta de 2002 com publicações de Bret Pettichord, mas só se consolidou em 2009 com a publicação do livro Agile Testing de LisaCrispin e da Janete Gregory.&lt;/p&gt;

&lt;h2&gt;
  
  
  A evolução do QA
&lt;/h2&gt;

&lt;p&gt;Antes de começar a falar sobre testes ágeis, apresento um que modelo que mostra como o trabalho de um QA tem evoluído ao longo do tempo, esse modelo foi proposto pelo Julio de Lima em uma palestra no Scrum Day 2020 e explica o passado presente e o possível futuro de uma pessoa que atua como QA. O intuito deste conteúdo é proporcionar o entendimento do modelo que se está atuando para saber o que é esperado de você como pessoa QA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.0 - Cascata:&lt;/strong&gt; nesse modelo temos um time de pessoas que atuam nesse modelo em geral são chamadas de testadores ou analista de testes. Nesse contexto de trabalho, as pessoas testadoras são responsáveis por testar o software quando o time de desenvolvimento finaliza a fase de codificação. Neste modelo o testador tem como principais atividades: revisar o plano de testes, criar e executar casos de teste, reportar inconsistências e gerar relatórios com métricas de teste no projeto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.5 - Ágil Imaturo:&lt;/strong&gt; neste modelo de atuação temos já temos um time multifuncional, o que é característica de times ágeis, porém nesse caso o testador acaba atuando como se estivesse em uma metodologia cascata onde de maneira reativa o QA espera que os desenvolvedores concluam a codificação para que eles finalmente atuem com testes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.0 - Ágil em maturação:&lt;/strong&gt; já no modelo ágil em maturação o QA auxilia em todo o desenvolvimento do produto compartilhando boas práticas, fazendo a mentoria do time com relação a testes e claro executando testes específicos e até implementando uma estratégia de testes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.0 - Ágil:&lt;/strong&gt; após mentorar o time com relação ao a testes como é feito no modelo 2.0 é ideal que com o tempo os desenvolvedores ganhem experiência com testes e que eles passem a mentorar o QA a desenvolver, assim todas as pessoas do time acabam ganhando experiência tanto em desenvolvimento quanto em testes. Muitas empresas já buscam profissionais de QA com perfil em desenvolvimento, esse perfil tem sido chamado de Software Engineer in Test.&lt;/p&gt;

&lt;h2&gt;
  
  
  O mindset do Agile Testing
&lt;/h2&gt;

&lt;p&gt;Como já deve ter sido possível perceber quando estamos em um ambiente ágil atuamos de maneira diferente de quando atuamos em um modelo tradicional. E existem características que devemos considerar ao atuar neste contexto sendo essas elas:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trabalhe além das competências técnicas:&lt;/strong&gt; soft-skills são ao habilidades requisitadas em diversas áreas atualmente, mas em especial quando trabalhamos em um contexto ágil seja QA ou não devemos  trabalhar algumas competências como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resiliência:&lt;/strong&gt; como o próprio manifesto ágil diz "responder a mudanças, mais que seguir um plano", quando atuamos em um contexto ágil nosso projeto pode sofrer diversas mudanças e elas podem ser relacionadas ao produto ou as tecnologias usadas, mas independente da mudança é preciso saber se adaptar.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Comunicação:&lt;/strong&gt; o manifesto ágil também cita a importância da colaboração e das interações. Sendo uma pessoa QA, frequentemente interagimos com nossos pares, steakeholders, clientes e etc. E para que essas interações fluam bem é importante saber se comunicar da maneira mais assertiva possível, pois falhas de comunicação podem ter grandes impactos negativos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Inteligência emocional:&lt;/strong&gt; trabalhar com tecnologia em geral, exige muito essa competência, pois frequentemente podemos nos encontrar em momentos críticos onde há a necessidade de tomada de decisão, portanto saber administrar suas emoções, mesmo em meio a problemas e encontrar equilíbrio entre área pessoal e profissional é importante.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resolução de problemas:&lt;/strong&gt; por fim e não menos importante conseguir entender um problema, para avaliar e propor uma solução adequada. Constantemente, somos expostos a problemas complexos que exigem uma tomada de decisão e saber como fazer as melhores escolhas ou até saber a quem recorrer para nos auxiliar é uma habilidade muito importante atualmente.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Busca por feedbacks frequentes:&lt;/strong&gt; a melhoria continua pode ser obtida através de feedbacks que podem acontecer em três áreas distintas, sendo elas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pessoal:&lt;/strong&gt; dar e receber feedback a respeito do seu trabalho e de características pessoais podem ajudar na evolução pessoal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time:&lt;/strong&gt; nesse caso já temos métricas sobre a atuação do time que podemos usar como base para avaliar pontos fortes e a melhorar&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aplicação:&lt;/strong&gt; aqui os testes marcam forte presença, pois eles podem gerar feedback rápido da saúde da aplicação, porém eles não são as únicas formas de se obter feedback da aplicação, também podemos usar diversas ferramentas de monitoramento e até o bom feedback do usuário.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Protagonismo em fases todas da especificação a entrega:&lt;/strong&gt; Quando atuamos em um ambiente ágil o QA deixa de ser reativo como em metodologias sequenciais e passa a ser uma pessoa ativa que ao invés de atuar em uma única fase do projeto, participa desde o inicio das do projeto tentando entender melhor o produto ou cliente, pois assim fica mais fácil de saber o que é esperado com para que o produto seja entregue com qualidade.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Abordagem do time todo:&lt;/strong&gt; em geral uma squad trata-se de um time multifuncional, composto por pessoas com diferentes habilidades. Embora dentro desse time encontramos diferentes perfis de profissionais todos esses profissionais acabam sendo responsáveis por entregar o produto final e essa entrega deve ter qualidade e todos do time devem se responsabilizar por isso, e isso inclui os testes de software que deve ter sua responsabilidade compartilhada com todo o time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Foco na solução:&lt;/strong&gt; desenvolvimento de software é uma atividade complexa e para que essas atividades complexas não se tornem um mostro de sete cabeças, o ideal é que antes de partir para a solução entendêssemos o problema, pois assim fica muito mais fácil focar na solução e desenvolver algo que será útil ao nosso usuário. Sendo mais especifico com pessoas de QA, antes de sair desenvolvendo automações entenda seu produto e conheça seu usuário.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mitigar e prevenir riscos:&lt;/strong&gt; em metodologias ágeis geralmente temos um curto espaço de tempo entre entre o planejamento e as entregas. Com isso muitas vezes um QA pode desempenhar muito bem levantando riscos junto ao time para poder mitigar ou os prevenir para minimizar os impactos que o produto pode sofrer.&lt;/p&gt;

&lt;h2&gt;
  
  
  O manifesto do teste
&lt;/h2&gt;

&lt;p&gt;Por volta de 2014, Sam Laing e Karen Greaves inspirados pelo manifesto ágil criaram o manifesto do teste, que é uma forma de resumir de maneira rápida como deve ser a mentalidade quando atuamos com testes ágeis. O manifesto segue os seguintes valores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Testar todas as etapas versus testar no final&lt;/li&gt;
&lt;li&gt;Previnir bugs versus encontrar bugs&lt;/li&gt;
&lt;li&gt;Testar o entendimento versus testar a funcionalidade&lt;/li&gt;
&lt;li&gt;Construir o melhor sistema versus quebrar o sistema&lt;/li&gt;
&lt;li&gt;Time Responsável pela qualidade versus responsabilidade dos  testadores&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Princípios de teste
&lt;/h2&gt;

&lt;p&gt;Por volta dos anos 2000 Elizabeth Hendrickson, fez uma palestra que acabou servindo de base para a consolidação dos testes ágeis, onde ela descrevia nove princípios de teste de software que formam a base de como os testes devem acontecer em times ágeis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Testes movem o projeto&lt;/strong&gt;&lt;br&gt;
Atualmente, o termo Shift-Left tem sido muito comentado e ele reflete justamente esse principio, pois esse termo se refere que ao invés dos testes ocorrerem só nos estágios finais, as atividades de testes passam a ocorrer mais cedo, e perduram durante todo o ciclo de vida, por isso do nome shift-left, pois dá a ideia que testando desde o inicio acabamos testando da esquerda para a direita.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Testes não são só uma fase&lt;/strong&gt;&lt;br&gt;
Os testes não devem ser só uma fase como em metodologias sequenciais. Em contextos ágeis os testes devem ser executados continuamente, pois é necessário adotar uma estratégia de testes que permita testar desde o inicio, e isso foi pode ser feito por exemplo adotando técnicas de para  executar bons testes unitários ou testando a aplicação em camadas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Todos testam&lt;/strong&gt;&lt;br&gt;
Em contextos ágeis, todas as pessoas do time são responsáveis por entregar um produto de qualidade e consequentemente por testar esse produto. Nesse momento, você pode acabar questionando "E o QA faz o que se todos são responsáveis pela qualidade?". Nesse caso o QA passa a ser a pessoa que é guardiã a da qualidade e que compartilha conhecimento de testes com o time e executa testes pontuais ou mais complexos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Ciclos curtos de feedback&lt;/strong&gt;&lt;br&gt;
Quando aplicamos testes continuamente no nosso projeto e principalmente quando os testes são automatizados, frequentemente devemos executar esses testes e essas execuções são uma forma de prover feedback a rápido a respeito da aplicação e a partir desses feedbacks é possível agir de maneira rápida e assertiva, caso algum problema seja detectado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Mantenha o código limpo&lt;/strong&gt;&lt;br&gt;
Usar boas práticas de programação, refatorar código sempre que necessário, fazer code review, usar linters, definir um padrão de programação ou até parear com alguma outro desenvolvedor são formas de garantir que o time esteja desenvolvendo um bom código.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Documente o necessário&lt;/strong&gt;&lt;br&gt;
Muitas empresas que iniciam no uso de metodologias ágeis acabam deixando de lado a escrita de documentações acreditando que elas não sejam mais necessárias, porém isso é um grande equivoco, pois a documentação ainda é importante, no entanto devemos documentar apenas o que for mais relevante  para o time se localizar nas tarefas a desenvolver, e também o que for importante para o cliente após a entrega da aplicação. &lt;br&gt;
E com relação a testes, use apenas os artefatos que julgar necessário de acordo com o momento que está no projeto alguns exemplos de documentações  a ser usadas pode ser:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chapter de testes exploratórios&lt;/li&gt;
&lt;li&gt;Mapas mentais com as funcionalidades em testes&lt;/li&gt;
&lt;li&gt;Evidencias de teste em vídeo, gif o fotos&lt;/li&gt;
&lt;li&gt;Read me de como executar as automações&lt;/li&gt;
&lt;li&gt;Relatórios de execução de automação&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;7. Testes são exemplos&lt;/strong&gt;&lt;br&gt;
Sabe quando você não entende algo e acaba pedindo um exemplo? É esse exemplo serve para que você entenda a expectativa da outra pessoa com relação a algo. Quando pensamos em testes estamos fazendo justamente isso, avaliando se o produto que estamos desenvolvendo está atendendo a expectativa do nosso cliente e uma das formas de conseguir esse alinhamento é através do uso de técnicas como: BDD, ATDD, ou SBE que são formas de entender a necessidade do cliente já fazendo o alinhamento com o que deve ser desenvolvido e testado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Testes fazem parte do DoD&lt;/strong&gt;&lt;br&gt;
Na definição de pronto devemos listar, todos os testes que deverão ser contemplados nos stories a serem desenvolvidos. Esses testes devem ser definidos pelo time e podem ser definidos no momento que o time faz a sua estratégia de testes.&lt;br&gt;
Algo que pode ocorrer é a necessidades de testes específicos, por exemplo um teste de acessibilidade em alguma área da aplicação, nesses casos o ideal é que esses cenários sejam descritos no critério de aceite.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Desenvolvimento orientado a testes&lt;/strong&gt;&lt;br&gt;
Este nono principio pode facilmente nos lembrar do TDD, onde o desenvolvimento começa a partir dos testes e não o contrário como ainda ocorre bastante. No entanto o desenvolvimento orientado a testes vai muito além disso, pois  quando definimos os requisitos já pensando nos testes como sugere o principio sete acabamos sendo mais assertivos no que estamos construindo e realizando uma entrega de maior qualidade.&lt;/p&gt;

&lt;h3&gt;
  
  
  Referencias:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://www.althority.com/agile_testing_overview/"&gt;http://www.althority.com/agile_testing_overview/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://medium.com/revista-tspi/descubra-o-que-%C3%A9-shift-left-testing-b67116b79a0c"&gt;https://medium.com/revista-tspi/descubra-o-que-%C3%A9-shift-left-testing-b67116b79a0c&lt;/a&gt;&lt;/p&gt;

</description>
      <category>womakerscode</category>
    </item>
    <item>
      <title>O que é DevOps?</title>
      <dc:creator>Beatriz Feliciano </dc:creator>
      <pubDate>Tue, 27 Jul 2021 12:45:16 +0000</pubDate>
      <link>https://dev.to/womakerscode/o-que-e-devops-4jmk</link>
      <guid>https://dev.to/womakerscode/o-que-e-devops-4jmk</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felinssndmuzcyc2sct4t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felinssndmuzcyc2sct4t.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DevOps é um termo que tem se tornou muito popular nos últimos anos e refere-se a contração de duas palavras que identificam duas equipes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Desenvolvimento: time responsável por identificar requisitos, analisá-los e codificá-los.&lt;/li&gt;
&lt;li&gt;Operações: time responsável pela implantação, monitoramento e solução de incidentes em produção.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Uma das primeiras referências a respeito de devOps surgiram por volta de 2009 em uma conferêcia da O'Reilly, a partir de então muitas outras referências foram surgindo até chegar nos dias de hoje, porém atualmente devOps é visto como um papel dentro de TI em muitas empresas, no entanto essa visão está deturpada.&lt;/p&gt;

&lt;p&gt;DevOps é uma cultura fortemente focada em colaboração entre equipes de desenvolvimento e operações. O conceito de devOps visa unir essas áreas, pois juntos os times conseguem entregar valor de forma mais rápida e com maior qualidade ao cliente. Essa cultura é fundamentada em quatro princípios.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Colaboração: no devOps não temos mais a segregação de times, divididos em silos, agora todos trabalham junto com o propósito de entregar algo cada vez melhor para os usuários.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Afinidade: construir relação entre os times onde ao invés de segregar por papel, unimos os diferentes papeis em para uma atuação conjunta.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ferramentas: usar a ferramentas para impulsionar o devOps, a partir de ferramentas podemos proporcionar uma entrega mais valiosa ao usuário em um curto espaço cada vez mais curto de tempo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Escala: sempre buscar crescer de acordo com as necessidades  da organização, projeto ou empresa. Ao usar algo novo é comum começar pequeno e com o tempo ir expandindo conforme necessário.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>womakerscode</category>
    </item>
    <item>
      <title>O que é JSON?</title>
      <dc:creator>Beatriz Feliciano </dc:creator>
      <pubDate>Mon, 26 Jul 2021 17:27:20 +0000</pubDate>
      <link>https://dev.to/womakerscode/o-que-e-json-k4n</link>
      <guid>https://dev.to/womakerscode/o-que-e-json-k4n</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1uxvqi5c4roccum97erj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1uxvqi5c4roccum97erj.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JSON (JavaScript Object Notation), é um tipo de formatação de texto compacta que permite que aplicações troquem informações entre si de maneira simples e rápida. O JSON é usado pra estruturar dados e através dessas estrutura podemos fazer com que nossas aplicações se comuniquem.&lt;/p&gt;

&lt;p&gt;Apesar do nome conter uma referência a linguagem de programação Javascript, o JSON pode ser usado com qualquer outra linguagem de programação e permite que aplicações desenvolvidas em diferentes linguagens se comunique entre si.&lt;/p&gt;

&lt;p&gt;Um arquivo com o formato JSON deve ter seus dados estruturados por meio de uma coleção de pares com nome e valor. Seus valores devem ser:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chave: seria o nome do conteúdo que queremos identificar. Sendo assim, deve ser uma string delimitada por aspas,&lt;/li&gt;
&lt;li&gt;Valor: é o conteúdo que corresponde a uma chave podendo ser representado pelos seguintes tipos de dados: string, array, object, number, boolean ou null.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
{ &lt;br&gt;
   "estado": "São Paulo",&lt;br&gt;
   "UF": "SP",&lt;br&gt;
   "Municipios": 645&lt;br&gt;
}&lt;/p&gt;

</description>
    </item>
    <item>
      <title>O que é TDD?</title>
      <dc:creator>Beatriz Feliciano </dc:creator>
      <pubDate>Tue, 20 Jul 2021 10:23:11 +0000</pubDate>
      <link>https://dev.to/womakerscode/o-que-e-tdd-4b5f</link>
      <guid>https://dev.to/womakerscode/o-que-e-tdd-4b5f</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ryscmqtvkgmbh6ihg3k.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ryscmqtvkgmbh6ihg3k.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
TDD significa Desenvolvimento Orientado por Testes (Test Driven Development), e trata-se de uma prática de desenvolvimento de software onde a codificação das funcionalidades começa a partir da escrita de testes unitários. Essa técnica foi criada por Kent Beck e é um dos pilares do XP (Extreme Programming).&lt;/p&gt;

&lt;p&gt;O TDD consistem em um ciclo apelidado de Red, Green, Refactor. Que funciona da seguinte maneira:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Escrevemos um teste para uma funcionalidade a qual queremos implementar. Ao executar esse teste ele deve falhar, pois ainda não temos a implementação e assim passamos pelo step red.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Após o nosso teste falhar implementamos a funcionalidade e executamos o nosso teste novamente, porém dessa vez o teste passa com sucesso, com isso passamos pelo step green do TDD.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Com os testes funcionando chegamos ao step refactor. Como o próprio nome já diz, nesse momento devemos refatorar nosso código procurando pontos a melhorar e aplicando boas práticas de programação.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Esse ciclo pode se repetir quantas vezes o desenvolvedor julgar necessário e a cada nova implementação é interessante que todos os testes que já estão em funcionamento sejam executados, pois assim é possível validar que todos os testes continuam funcionando e que a nova implementação não impactou nas funcionalidades já desenvolvidas.&lt;/p&gt;

&lt;p&gt;Os principais benefícios do TDD são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maior cobertura de testes unitários&lt;/li&gt;
&lt;li&gt;Testes são executados com maior frequência &lt;/li&gt;
&lt;li&gt;O código se torna mais limpo&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>womakerscode</category>
    </item>
    <item>
      <title>O que é SRE?</title>
      <dc:creator>Beatriz Feliciano </dc:creator>
      <pubDate>Mon, 19 Jul 2021 12:13:03 +0000</pubDate>
      <link>https://dev.to/womakerscode/o-que-e-sre-1j5i</link>
      <guid>https://dev.to/womakerscode/o-que-e-sre-1j5i</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx7j66qxwyjoaapqozoau.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx7j66qxwyjoaapqozoau.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
SRE é a abreviação de Site Reliability Engineering, este termo surgiu inicialmente em 2003 e foi criado por Ben Treynor Sloos, VP de engenharia do Google. O termo nasceu quando Ben precisou gerenciar uma equipe de engenheiros de software que eram responsáveis por um ambiente de produção.&lt;/p&gt;

&lt;p&gt;SRE como o próprio nome já diz SRE está relacionado com a garantia da confiabilidade dos ambiente de produção. É um tipo de trabalho operacional onde, ao invés de sermos reativos e só atuarmos quando algum problema acontecer, agimos antes garantindo a que o ambiente de produção está funcionando corretamente e minimizando as chances de falha em produção.&lt;/p&gt;

&lt;p&gt;Para garantir a confiabilidade em ambiente de produção é comum a adoção de práticas como: monitoramento de aplicações, uso de boas práticas de implantação, gerenciamento de capacidade de serviços, avaliação de latência, uso de ferramentas que permitam avaliar escalabidade de aplicações, entre outras práticas que podem variar de acordo com o contexto de onde estamos atuando.&lt;/p&gt;

</description>
      <category>womakerscode</category>
    </item>
    <item>
      <title>O que é DOR e DOD?</title>
      <dc:creator>Beatriz Feliciano </dc:creator>
      <pubDate>Wed, 17 Feb 2021 11:27:34 +0000</pubDate>
      <link>https://dev.to/womakerscode/o-que-e-dor-e-dod-2o7m</link>
      <guid>https://dev.to/womakerscode/o-que-e-dor-e-dod-2o7m</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dRQgxsFF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lc7kijem5okpny6d67q6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dRQgxsFF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lc7kijem5okpny6d67q6.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quando atuamos em projetos ágeis muitas vezes podemos acabar percebendo alguns desalinhamentos dentro do time de desenvolvimento ou até mesmo entre time de desenvolvimento e Produc Owner. Esses conflitos geralmente podem acontecer por dois fatores, sendo eles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;O time pode estar recebendo requisitos com baixa granularidade ou com nenhum detalhamento. Além disso pode ocorrer de histórias maiores que a capacidade do time de entrega entrem para a sprint.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cada integrante do time entrega a sua feature ou a atividade que está responsável de uma forma diferente, ou seja, um integrante pode entender que apenas desenvolver já é o suficiente enquanto outro pode entender que o entregável é um software desenvolvido e com testes unitários.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Diante desses dois possíveis conflitos que podem acontecer durante o desenvolvimento de um produto podemos resolver com o DOR e DOD, também conhecidos como Definition of Ready e Definition of Done .Ambos servem como um acordo entre o time que deve ser visível e comum a todos os membros do time. Inclusive, se um novo integrante entrar para a equipe, ele deve ser informado a respeito dos critérios de DOR e DOD.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DOR - Definition of Ready:&lt;/strong&gt; é um acordo que ocorre entre o time de desenvolvimento e o Product Owner onde ambos acordam o que é necessário para que uma estória entrar na sprint de modo que a equipe de desenvolvimento consiga desenvolve-la sem grandes problemas e que ela caiba na capacidade do time no período da sprint.&lt;/p&gt;

&lt;p&gt;Exemplos de Definition of Ready:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A estória deverá ter critérios de aceite detalhados&lt;/li&gt;
&lt;li&gt;A estória deve estar escrita seguindo o princípio INVEST&lt;/li&gt;
&lt;li&gt;Deve ter um wireframe de baixa fidelidade disponível e validado pelo cliente final&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;DOD - Definition of Done:&lt;/strong&gt; também é um acordo feito com o time e Product Owner onde as expectativas alinhadas referem-se ao incremento do produto que será entregue ao final da sprint. Neste momento o Product Owner sugere o como ele espera que o entregável seja apresentado a ele ao fim do sprint.&lt;/p&gt;

&lt;p&gt;Exemplos de Definition of Done:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Os testes unitários devem ser feitos atingindo uma cobertura de 70% no mínimo&lt;/li&gt;
&lt;li&gt;A aplicação deve ser disponibilizada em ambiente de homologação&lt;/li&gt;
&lt;li&gt;Realizar Code Review&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;De modo geral, tanto o DOR quanto o DOD são acordos feitos para melhorar o fluxo de trabalho dando transparência sobre o que é necessário para iniciar uma estória e o que é necessário para finalizar um estória dentro de uma sprint.&lt;/p&gt;

</description>
      <category>womakerscode</category>
    </item>
  </channel>
</rss>
