Prévia do material em texto
GERÊNCIA DE CONFIGURAÇÃO VS. EXTREME PROGRAMMING Método Extreme Programming e a Gerencia de configuração de software Práticas XP (Extreme Programming) Segundo BECK(2005):"XP é um estilo de desenvolvimento de software com foco na excelente aplicação de técnicas de programação, comunicação clara e trabalho em equipe que nos permite realizar coisas que antes nem sequer conseguíamos Imaginar" e também que "XP incorpora um modelo explícito de rotatividade de pessoal. Novos membros do time são encorajados a aceitar gradualmente mais e mais responsabilidade, e são auxiliados ao longo do caminho uns pelos outros e por programadores que já estão no time." "Extreme Programming melhora um projeto de software em quatro formas essenciais: comunicação, simplicidade , feedback e respeito" (BECK 2009) e apoiada em práticas que formam a metodologia. “Aqui estão todas as práticas: · O Jogo do Planejamento — Determine rapidamente o escopo do próximo lançamento combinando prioridades de negócios e estimativas técnicas. À medida que a realidade ultrapassa o plano, atualize o plano. · Pequenos lançamentos — Coloque um sistema simples em produção rapidamente e, em seguida, lance novos versões em um ciclo muito curto. · Metáfora — Oriente todo o desenvolvimento com uma simples história compartilhada de como o todo o sistema funciona. · Projeto simples — O sistema deve ser projetado da forma mais simples possível em qualquer dado momento. A complexidade extra é removida assim que é descoberta. · Testes — Os programadores escrevem continuamente testes de unidade, que devem ser executados sem falhas para que o desenvolvimento continue. Os clientes escrevem testes demonstrando que recursos são concluídos. Refatoração — Os programadores reestruturam o sistema sem alterar sua comportamento para remover duplicações, melhorar a comunicação, simplificar ou adicionar flexibilidade. · Programação em pares — Todo o código de produção é escrito com dois programadores em uma máquina. · Propriedade coletiva — Qualquer pessoa pode alterar qualquer código em qualquer lugar do sistema a qualquer momento. · Integração contínua — Integre e construa o sistema muitas vezes ao dia, cada vez que uma tarefa é concluída. · 40 horas semanais — Trabalhar não mais que 40 horas semanais como regra. Nunca trabalhe horas extras pela segunda semana consecutiva. · Cliente no local — Inclua um usuário real e ativo na equipe, disponível em tempo integral para responder a perguntas. · Padrões de codificação — Os programadores escrevem todo o código de acordo com as regras enfatizando a comunicação através do código.”(Beck, 1999, pág. 47 e 48) GERÊNCIA DE CONFIGURAÇÃO DE SOFTWARE O mesmo artigo cita “As vantagens da utilização da Gerência de Configuração de Software são inúmeras. Dentre elas, podemos listar: ▪ Ganho de produtividade e eficiência; ▪ Diminuição do retrabalho e dos erros; ▪ Aumento da disciplina no processo de desenvolvimento; ▪ Aumento da memória organizacional; ▪ Acesso às informações qualitativas e quantitativas referentes ao processo de desenvolvimento, como por exemplo, medida de esforço para efetuar uma alteração e frequência de modificações por componente; ▪ Possibilidade de estabelecer uma trilha de auditoria indicando por que, quando e por quem um artefato foi alterado; ▪ Auxílio à gerência de projetos e ▪ Garantia de ambiente estável no qual o produto deve ser desenvolvido.” No artigo: Gerência de Configuração de Software, Saiba como desenvolver software de forma eficiente e disciplinada o site Devmedia define que Gerencia de configuração de software: “É uma disciplina que controla e notifica as inúmeras correções, extensões e adaptações aplicadas durante o ciclo de vida do software de forma a assegurar um processo de desenvolvimento e evolução sistemático e rastreável, sendo indispensável quando equipes manipulam, muitas vezes em conjunto, artefatos comuns.” e que “Apesar de existir um forte apelo para o uso da Gerência de Configuração de Software durante a etapa de manutenção, a sua aplicação não se restringe somente a essa etapa do ciclo de vida do software. O uso dos sistemas de Gerência de Configuração é fundamental para prover controle sobre os artefatos produzidos e modificados por diferentes recursos desde o planejamento e levantamento de requisitos até a construção e entrega do produto. O motivo da sua importância está geralmente associado aos problemas identificados quando a Gerência de Configuração não é utilizada no desenvolvimento de software. ” XP SEM GERÊNCIA DE CONFIGURAÇÃO Imagine que uma organização desconhece o que seja Gerência de Configuração e que em um determinado projeto em que é utilizada a metodologia XP a fim de da mais dinamismo e agilidade ao projeto, um desenvolvedor esteja modificando os artefatos C1, C2 e C3 em um diretório compartilhado na rede. Simultaneamente, um segundo desenvolvedor modifica os artefatos C4, C5 e também o artefato C3, como exemplifica a Figura 1. Imagine que agora, na mesma organização, foi acordado entre os desenvolvedores que o ideal seria centralizar os artefatos em um repositório e que cada desenvolvedor implementaria suas modificações em um espaço de trabalho privado. Após cada modificação, o artefato seria devolvido ao repositório. Considerando este cenário, frequentemente ocorreriam sobreposições ou perdas de modificações implementadas nos artefatos comuns nas organizações sem a prática da Gerência de Configuração. A práticas do método XP seriam inviáveis e sem sentido nesse contexto, já que o versionamento colabora para o bom funcionamento das correções realizadas e mantem um padrão de codificação além de prover a pratica bem sucedida da simplicidade do método XP e a pratica da propriedade coletiva mas de forma organizada. (ver figura 2). Neste cenário, o segundo desenvolvedor não notifica o primeiro desenvolvedor sobre o impacto que a modificação do artefato C3 pode causar no código. Consequentemente, o primeiro desenvolvedor, que está usando o mesmo espaço de trabalho, não conseguirá identificar, de forma rápida, o motivo que levou sua implementação a falhar. Este problema acontece pela falta de notificação e pelo compartilhamento de artefatos de software por diversos desenvolvedores. Nesse cenário diversas práticas primordiais do método XP seriam impossíveis de serem postas em prática, sendo assim a gerencia de configuração é poderosa aliada no uso do método XP. Repositório centralizado compartilhado por vários desenvolvedores Espaço de Trabalho compartilhado por vários desenvolvedores Em resumo uma má gerência ou uma não gerência de configuração resulta em uma utilização sem efeitos positivos do método XP ou de qualquer outra metodologia de desenvolvimento ágil. Figura 2 Figura 1 REFERÊNCIAS E FONTES Beck,Kent.Extreme Programming Explained Embrace Change, First Edition September 29, 1999 ISBN: 0201616416, pg 47 e 48. link: http://www.scrumcn.com/agile/index.php?wpdmact=process&did=MTguaG90bGluaw== BECK, KENT. ANDRES, CYNTHYA. em: Extreme Programming Explained Embrace Change, Second Edition. Addison-Wasley, Boston, 2005 link: https://ptgmedia.pearsoncmg.com/images/9780321278654/samplepages/9780321278654.pdf https://www.devmedia.com.br/gerencia-de-configuracao-de-software/9145 , acessado em 24/06/2022 https://www.devmedia.com.br/Imagens/engsoft/ed02/artigo3/image1.jpg , figura 1 , acessado em 09/06/2022 https://www.devmedia.com.br/Imagens/engsoft/ed02/artigo3/image1.jpg , figura 2, acessado em 09/06/2022. http://www.scrumcn.com/agile/index.php?wpdmact=process&did=MTguaG90bGluaw== https://ptgmedia.pearsoncmg.com/images/9780321278654/samplepages/9780321278654.pdf https://www.devmedia.com.br/gerencia-de-configuracao-de-software/9145 https://www.devmedia.com.br/Imagens/engsoft/ed02/artigo3/image1.jpg https://www.devmedia.com.br/Imagens/engsoft/ed02/artigo3/image1.jpg