contextualizando XP programming ou extreme programming ou ainda programação extrema é uma metodologia ágil de desenvolvimento de software que se destaca por sua abordagem flexível e adaptativa bonito né Seu principal objetivo é aprimorar tanta qualidade de software quanto a capacidade de responder eficientemente às mudanças nos requisitos do projeto a medida que elas surgem no cerne do XP encontramos valores essenciais como comunicação feedback simplicidade e coragem a partir desses alicerces surgem princípios básicos que moldam a prática do extreme programming feedback rápido presumir simplicidade mudanças incrementais abraçar a mudança e compromisso com a excelência no trabalho é muita
coisa né para isso as melhores práticas de engenharia de software são elevadas ao seu ápice vamos nesse episódio do dicionário do programador explicar o que você enquanto desenvolvedor precisa entender sobre essa prática e também bem quando não utilizar o Extreme programming então fica com a gente porque vai ter treta né o XP assim como outras metodologias ágeis Diverge do desenvolvimento em Cascata o famoso Waterfall no qual as etapas de análise design e implementação e testes são conduzidos em sequência até a entrega do sistema em contraste o x promove um acompanhamento contínuo e a realização de
testes frequentes permitindo indo ajustes rápidos em projetos que demandam flexibilidade ou enfrentam mudanças constantes Sem dúvida Esses são pontos importantíssimos no momento tão dinâmico que vivemos na tecnologia nossas aplicações e até nós enquanto profissionais devemos nos manter atentos e preparados PR os desafios que encontramos quando buscamos evoluir e consolidar nossos conhecimentos para nos prepararmos para projetos maiores e mais desafiadores é importante encontrar um mentor uma instituição até uma comunidade que possa nos guiar nessa evolução nós temos uma indicação que vai te preparar para esses projetos expressivos e para ser um Dev desejado no mercado o
curso full cycle ele é uma formação completa e prática onde você pode escolher até a linguagem que deseja trabalhar nos seus projetos java.net Python PHP e typescript além de ter contato com a linguagem go em módulos específicos o curso full cycle é dividido em três partes essenciais arquitetura desenvolvimento e devops por isso ele é tão completo nós vamos deixar o link para você conhecer mais e se matricular aqui na descrição não deixa de conferir você vai descobrir que ele pode fazer a diferença na sua carreira Esse aí é o pai da criança Kent Beck desenvolveu
o XP no seu trabalho no projeto de folha de pagamento do Chrysler comprehensive compensation System o C3 Beck se tornou o líder do projeto C3 em março de 1996 ele começou a refinar a metodologia de desenvolvimento usado no projeto e escreveu um um livro sobre a metodologia já em 99 ele é um programador super renomado e autor de diversos livros sobre desenvolvimento de software inclusive ele é um dos nomes por trás do Manifesto ágil para entender o XP programming temos que entender Quais são os valores que estão por trás dele seus princípios são cinco valores
fundamentais que guiam o desenvolvimento de software e orientam as práticas e decisões da equipe começamos com a comunicação que valoriza a comunicação aberta e frequente Entre todos os membros da equipe e stakeholders garantindo alinhamento e colaboração eficazes comunicação feedback que é o próximo que promove a obtenção de feedback contínuo dos clientes e colegas de equipe para ajustar e melhorar o software durante todo o processo de desenvolvimento agora no centro da imagem temos a simplicidade que prioriza Justamente a simplicidade em todos os aspectos do desenvolvimento de software reduzindo a complexidade e facilitando a compreensão do sistema
é o famoso Kiss né A Agora é a vez da coragem que incentiva a tomada de decisões difíceis de riscos calculados e a busca constante por melhorias promovendo o ambiente de experimentação e aprendizado falando coragem parece estranho mas depois que a gente explica faz todo sentido e finalmente respeito que valoriza o respeito pelos clientes colegas de equipe e stakeholders promovendo uma cultura de colaboração diversidade e trabalho em equipe esses valores são fundamentais pra prática bem sucedida da expit vê que tem muito a ver com Cultura né e ajuda orientar as equipes no desenvolvimento de software
de alta qualidade e adaptável no x programming os princípios servem como diretrizes fundamentais que ajudam na tomada de decisões durante o desenvolvimento do projeto funcionando como critérios para escolher entre diferentes soluções então anota aí ó o primeiro princípio é o feedback rápido que promove comunicação constante entre clientes programadores e gerentes essa troca de informações facilita o aprendizado coletivo e a identificação rápida de dúvidas riscos e problemas permitindo ações corretivas imediatas o segundo princípio é assumir a simplicidade buscar resolver problemas da forma mais simples possível como a gente já falou é meio que o Kiss né
isso envolve fazer um bom trabalho com testes refatoração e comunicação para enfrentar desafios atuais confiando na capacidade da equipe de lidar com complexidades futuras conforme for necessário o terceiro é a mudança incremental que preferindo realizar mudanças de forma gradual ao invés de grandes transformações de uma só vez os programadores têm a liberdade de fazer melhorias contínuas no código incorporando mudanças nos requisitos de maneira incremental e abraçando mudanças é o quarto princípio que valoriza a inclusão de mudanças em qualquer estágio do projeto Isso facilita a adaptação a novos requisitos especialmente em projetos com necessidades voláteis onde
os clientes podem não ter clareza sobre as suas exigências desde lá do início e o quinto é trabalho de qualidade Ele defende que a qualidade não é opcional mas é obrigatória isso significa ter um sistema que atenda aos requisitos do cliente passem todos os testes olha só que importância hein e agregue o máximo de valor ao negócio do cliente trabalho de qualidade é o básico né acho que isso tem que ter em qualquer lugar agora que já aprendemos os valores e os princípios é a vez de ver na prática como isso funciona o XP possui
12 práticas essenciais que formam o núcleo do processo criadas justamente com base nos valores e princípios da metodologia essa provavelmente é a parte mais importante desse vídeo então presta bastante atenção a gente vai um pouco mais a fundo agora e assista mais uma vez se for preciso Pois é a partir dessas práticas que tudo realmente acontece em projetos XP é fundamental ter o cliente presente ele precisa participar ativamente do desenvolvimento é verdade ó essa prática Alguns chamam de time coeso a presença constante do cliente facilita a simplicidade dos processos e garante uma comunicação Clara com
os desenvolvedores com cliente Sempre disponível dúvidas são resolvidas e respondidas rapidamente desde que o cliente tenha a capacidade de Responder questões de negócio e autoridade para tomar decisões sobre as prioridades do projeto seguindo pela borda aí do fluxo a gente tem o jogo do planejamento não dá para pensar em desenvolvimento de software sem fazer um mínimo de planejamento Mas isso não implica criar um plano detalhado que leve semanas ou meses para ser finalizado já que planos longos tendem a ser imprecisos no início de cada interação a equipe de desenvolvimento incentiva o cliente a escrever as
funcionalidades desejadas em pequenos cartões chamados de user Stories essas user Stories são avaliadas quanto ao tempo e o custo pela equipe permitindo que o cliente priorize as funcionalidades com base nessas informações Essa é a prática jogo do planejamento e garante que a equipe sempre trabalhe nas funcionalidades mais importantes e valiosas pro cliente vai seguindo aí na imagem ó agora temos releases e iterações sempre vale a pena explicar que release é uma pequena versão do sistema com funcionalidades completas e relevantes colocada em produção rapidamente para que o cliente possa utilizá-la e fornecer feedback cada release é
dividido em interações que refinam os requisitos garantindo que o produto final atendo as necessidades do cliente em geral um release dura cerca de 8 semanas e as iterações duram aproximadamente duas semanas e para finalizar aí a borda da imagem a gente tem testes de unidade quando nós programadores escrevemos os testes aos automatizados antes de codificar uma funcionalidade a gente acaba se aprofundando sobre o entendimento da tarefa e a gente garante que tudo no sistema funcione corretamente existem dois principais motivos para realizar os testes a descrição da tarefa onde os testes definem claramente o que o
código deve fazer permitindo que os desenvolvedores se concentrem no essencial e a garantia de funcionamento onde testes asseguram que o sistema funciona conforme esperado proporcionando confiança para avançar no projeto sem medo de quebrar algo durante alterações são três momentos Chaves que devemos aplicar os testes antes do refactoring após o refactory e após a integração o XP considera testes um investimento e não uma perda de tempo agora vamos pra parte do meio da imagem começando pelo código coletivo qualquer membro da equipe preste atenção nisso hein qualquer membro da equipe pode trabalhar em qualquer parte do sistema
a qualquer momento isso elimina a necessidade de solicitar mudanças a quem Originalmente escreveu o código promovendo melhorias contínuas e refaturar sempre que for necessário em muitos lugares Isso parece impossível mas não é não viu essa prática mantém o código simples e claro e evita a criação de ilhas de conhecimento dentro da equipe quando um desenvolvedor sai do projeto O Impacto é minimizado pois o conhecimento sobre o código tá distribuído Entre todos além disso a propriedade coletiva facilita a revisão constante do código melhorando a qualidade e a consistência do sistema Justamente por isso temos que prezar
por um código padronizado senão não funciona nada né Essa é a chave para garantir que todos os desenvolvedores possam trabalhar em qualquer parte do código sem dificuldade é essencial estabelecer e seguir voluntariamente ó um padrão de codificação para manter o sistema homogêneo e compreensível esse padrão deve minimizar o trabalho especialmente evitando o código duplicado a padronização serve como um meio de comunicação Claro e objetivo entre os membros da equipe assegurando que todos entendam e possam colaborar efetivamente parece se Utopia viu mas se combinar direitinho dá para fazer já o ritmo sustentável consiste em trabalhar dentro
dos limites físicos e respeitar a individualidade de cada membro da equipe para manter a criatividade e a qualidade de software é essencial que a equipe esteja saudável física e principalmente mentalmente a carga horária de trabalho máxima recomendada é de 8 horas diárias e 40 horas semanais estender a jornada de trabalho para compensar atrasos Pode até ser eficaz apenas ali nos primeiros dias mas no longo o prazo causa cansaço desmotivação e diminui o desempenho da equipe já a integração contínua é a prática de construir o software várias vezes ao dia simples assim mantendo a sincronia constante
entre os deves Exatamente isso evita surpresas e assegura que o sistema funcione harmoniosamente a cada nova integração cada integração deve ser acompanhada pela execução de todos os testes para verificar a integridade do sistema E é isso que permite a rápida detecção e correção de defeitos an que se tornem problemas maiores a prática garante que o sistema esteja sempre em um estado de funcionamento adequado a parte interna do XP diz mais sobre a mão na massa com código é aí que tem Total relação com nós deves começando pelas metáforas que são usadas para transmitir ideias complexas
de forma simples e Clara criando uma visão comum do projeto Entre cliente e desenvolvedores elas devem ser baseadas no vocabulário familiar ao cliente facilitando a compreensão e melhorando a comunicação dessa forma metáforas ajudam a alinhar as expectativas e o entendimento do projeto tornando a colaboração mais eficaz isso que ser difícil né que desenvolvedor quando fala com cliente sempre rola aquele joguinho de palavras técnicas que o cliente não entende nada e vice-versa né e vice-versa refactoring é um processo de reorganizar o código para melhorar sua qualidade interna facilitar a leitura e diminuir o tempo de manutenção
sem alterar o seu comportamento externo dá para afirmar que não existe projeto XP sem refactory qualquer membro da equipe pode realizar para manter o código organizado e compreensível embora haja um certo risco ali do código deixar de funcionar corretamente esse risco é mitigado com testes constantes que garantem que o código continua a produzir os mesmos resultados exatamente os testes estão aí para dar liberdade para apagar o código sem medo de ser feliz o dia de trabalho começa com uma reunião diária de no máximo 10 minutos parecido com a que a gente vê aí no scrum
durante essa reunião cada desenvolvedor comenta brevemente sobre o que realizou no dia anterior proporcionando a todos uma visão Geral do andamento do projeto além disso a equipe usa esse momento para priorizar as atividades que serão realizados ao longo do dia tudo regado a muita assertividade e pragmatismo senão vira lavação de roupa suja e por último uma prática que nós aqui fazemos há mais de 20 anos o p programming basta unir dois deves trabalhando juntos no mesmo computador um revisão do código do outro geralmente o menos experiente é o que fica no comando e o outro
procura suir melhorias buscar erros e possíveis bugs essa prática promove além da revisão constante do código a disseminação do conhecimento entre o time a ideia também é que seja feito um rodízio de pessoas na prática do per programming na nossa experiência programar em par não diminui a velocidade do desenvolvimento pois melhora a qualidade do código e reduz erros Além disso proporciona um ambiente de disciplina e colaboração u fia tranquilo até agora é claro que tudo isso aqui que nós falamos é um resumão da metodologia para você entender como funciona o XP e como ele foi
pensado Mas calma que ainda tem mais coisa como toda a metodologia é preciso definir fases do projeto durante o ciclo de vida do XP programming ela faz isso compondo tarefas específicas isso deixa tudo muito mais claro de seguir então acompanha aqui comigo no ciclo de vida do XP programming Tudo começa com as histórias dos usuários onde os requisitos do cliente são capturados e transformado em histórias que descrevem funcionalidades desejadas essas histórias né ou user Stories servem como a base de todo o processo de desenvolvimento em seguida passamos paraa espiga arquitetônica onde a arquitetura básica do
sistema é estabelecida para suportar o desenvolvimento das funcionalidades discretas essa fase é crucial para garantir que o sistema terá uma base sólida e flexível para suportar futuras mudanças e adições ou seja nessa fase não pode ter gambiarra nas outras Pode Gabriel também não não depois disso ocorre o planejamento de lançamento onde a as histórias doss usuários são priorizadas e organizadas para as interações a equipe decide quais histórias serão implementadas em cada interação sempre focando em entregar o máximo de valor para o cliente o mais rápido possível entramos então na fase de iteração onde pequenos ciclos
de desenvolvimento acontece durante cada interação as funcionalidades são implementadas e testadas continuamente essa abordagem permite que a equipe se adapte rapidamente a novas informações e mudanças nos requisitos após a implementação as funcionalidades passam pelo os testes de aceitação nessa fase as histórias dos usuários são validadas para garantir que atendam os requisitos e expectativas do cliente e isso assegura que o produto final será exatamente o que o cliente necessita finalmente o processo culmina nas pequenas versões aqui versões incrementais do software são lançadas regularmente permitindo que o cliente utilize as novas funcionalidades e forneça feedback contínuo e
essa é a explicação resumida desse ciclo contínuo de desenvolvimento teste e lançamento o foco principal do X é desenvolver software mas também é crucial organizar a gestão do projeto e definir os papéis dos envolvidos a gestão de centralizada e a tomada de decisões com o gerente atuando como um facilitador aí que entram as métricas elas são fundamentais especialmente a relação entre Tempo estimado e tempo gasto visualizados em gráficos atualizados regularmente a gerência se divide entre treinador e rastreador o treinador foca na execução técnica comunicação conhecimento técnico gestão de crises confiança facilitação e suporte a equipe
agora o rastreador coleta e compara métricas minimiza interrupções e monitora o progresso dentro da equipe os programadores analisam projetam testam codificam e integram o sistema os clientes definem prioridades e colaboram na definição dos Testes funcionais os testadores auxiliam na definição e escrita dos testes para garantir a qualidade Consultores oferecem conhecimento especializado para resolver problemas complexos como tudo no desenvolvimento não existe Bala de Prata existem cenários em que a aplicação do XP programming não é recomendada sim é verdade em equipes grandes geralmente com mais de 12 programadores o XP pode enfrentar dificuldades de comunicação e problemas
na implementação das práticas como o pre programming se os clientes Não Estão dispostos a participar ativamente do projeto e colaborar com a equipe de desenvolvimento aí a coisa desanda de verdade nem adianta tentar insistir é Além disso o X é mais eficaz com tecnologias que suportam mudanças e permitem a escrita fácil de testes Pois é ainda tem tecnologia que não dá para testar direito né E por exemplo tecnologias que são complexas ou que não permitem feedback rápido podem ser incompatíveis com a abordagem além disso em organizações Como a cultura tradicional de desenvolvimento de software com
muita documentação e ênfase em análise e projetos prévios a transição para práticas ágeis como XP vai ser no mínimo desafiadora não tem jeito ambiente de trabalho é é crucial pro sucesso do XP e espaços que não facilitam a comunicação e a colaboração entre os membros da equipe podem dificultar a implementação das práticas do xi finalmente a participação ativa do cliente preferencialmente Alguém que entenda bem do negócio é fundamental esses fatores criam sim Barreiras pro sucesso do projeto XP e devem ser considerados se você conhece outro por favor é o momento de dizer aqui nos comentários
Agora sim podemos dizer que você já conhece o basicão do que é o XP programming que faz parte do mundo edel se você aprendeu algo novo nesse vídeo nós ficaremos super honrados de receber o seu like mas nós também queremos saber a sua opinião aqui nos comentários principalmente você já utilizou a metodologia sua experiência seja ela positiva ou negativa pode ajudar demais outras pessoas então fica à vontade Agora sim podemos nos despedir se você ficou ainda com alguma dúvida volte quantas vezes você quiser nesse vídeo tá Um grande beijo no coração e até um próximo
vídeo do código fonte TV tchau tchau tchau Aliás não é assim que termina Ah não é assim né cadê cadê o celular celular aqui ó ó gostou desse vídeo né então fica aí na pegada do edel a gente tem um vídeo super legal de scrum também você ver dá para fazer uma comparação né muita coisa que a gente falou aqui parece com scrum só que esse vídeo do scrum a gente mostra também o ciclo né todos pena você vai aprender bastante Vai lá vai corre [Música] lá l