O que é a programação extrema e como você a usa?
programação extrema é uma metodologia de desenvolvimento de software projetada para melhorar a qualidade do software e sua capacidade de se adaptar adequadamente às necessidades em mudança do cliente ou cliente. Durante meados e finais dos anos 90, enquanto trabalhava no sistema de compensação integral Chrysler (C3) para ajudar a gerenciar a folha de pagamento da empresa, O engenheiro de software Ken Beck desenvolveu pela primeira vez a metodologia de programação extrema., Em outubro de 1999, ele publicou a Extreme Programming Explained, detalhando todo o método para outros, e pouco depois o site oficial também foi lançado.Similar a outros métodos ágeis de desenvolvimento, a programação extrema tem como objetivo fornecer pequenas versões iterativas e freqüentes ao longo do projeto, permitindo que membros da equipe e clientes examinem e revejam o progresso do projeto em toda a SDLC.,
ao longo deste artigo, vamos examinar exatamente o que é a programação extrema e como ela funciona, desde os valores e princípios que estão por trás dela, às regras e melhores práticas processuais que são usadas para implementar um novo projeto de programação extrema, então vamos começar!,/td>
Valores Extremos
Estes cinco valores fundamentais fornecem a base sobre a qual a totalidade da Extrema paradigma de Programação é construída, permitindo que as pessoas envolvidas no projeto para que se sintam confiantes na direção em que o projeto está tomando e compreender suas experiências pessoais e a visão é tão necessária e bem-vinda como qualquer outra pessoa.,
simplicidade: faremos o que é necessário e solicitado, mas não mais. Isto irá maximizar o valor criado para o investimento feito até à data. Vamos dar pequenos passos simples para o nosso objetivo e mitigar fracassos como eles acontecem. Vamos criar algo de que nos orgulhamos e mantê-lo a longo prazo para Custos razoáveis.comunicação: todos fazem parte da equipa e comunicamos cara a cara diariamente. Trabalharemos juntos em tudo, desde requisitos ao código. Vamos criar a melhor solução para o nosso problema que podemos juntos.,Feedback: levaremos a sério todos os compromissos de iteração através da entrega de software de trabalho. Nós demonstramos nosso software cedo e muitas vezes, em seguida, ouvir cuidadosamente e fazer quaisquer mudanças necessárias. Vamos falar sobre o projeto e adaptar o nosso processo a ele, não o contrário.respeito: todo mundo dá e sente o respeito que merece como membro valioso da equipe. Todos contribuem com valor, mesmo que seja apenas entusiasmo. Os desenvolvedores respeitam a experiência dos clientes e vice-versa. A gerência respeita o nosso direito de aceitar a responsabilidade e receber autoridade sobre o nosso próprio trabalho.,coragem: diremos a verdade sobre o progresso e as estimativas. Não documentamos desculpas para o fracasso porque planejamos ter sucesso. Não tememos nada, porque nunca ninguém trabalha sozinho. Vamos adaptar-nos às mudanças quando elas acontecerem.
regras extremas
inicialmente publicado por Don Wells em 1999, o proprietário do site de programação extrema, este conjunto de regras de programação extrema foram originalmente destinados a ajudar a contrariar as alegações de que a programação extrema não suporta algumas das disciplinas proeminentes necessárias para o desenvolvimento moderno.,
planeamento
- histórias de Utilizador são escritas.
- o planeamento da libertação cria a programação da libertação.
- faz pequenas libertações frequentes.
- o projecto está dividido em iterações.o planeamento da iteração inicia cada iteração.
gerir
- dar à equipa um espaço de trabalho aberto dedicado.estabeleça um ritmo sustentável.uma reunião de stand-up começa todos os dias.a velocidade do projecto é medida.Move as pessoas.fixa a programação extrema quando ela quebra.
desenhando
- simplicidade.,
- Escolha uma metáfora do sistema.
- Use cartões CRC para sessões de design.
- cria soluções spike para reduzir o risco.
- nenhuma funcionalidade é adicionada mais cedo.Refactor, sempre que e sempre que possível.
Codificação
- O cliente está sempre disponível.o código deve ser escrito de acordo com as normas acordadas.primeiro codifica o teste de unidade.todos os códigos de produção são programados por pares.
- apenas um par integra o código de cada vez.
- integrar frequentemente.crie um computador de integração dedicado.Use propriedade colectiva.,todos os códigos devem ter testes unitários.todos os códigos devem ser aprovados em todos os testes de unidade antes de serem libertados.
- Quando um bug é encontrado, são criados testes.
- Os testes de aceitação são executados frequentemente e a pontuação é publicada.
práticas extremas
criadas usando o que eram consideradas as melhores práticas de desenvolvimento de software na época, estas doze melhores práticas de programação extrema detalham os procedimentos específicos que devem ser seguidos ao implementar um projeto usando programação extrema.,
retroalimentação em escala fina
programação em pares
em essência, programação em pares significa que duas pessoas trabalham em conjunto no mesmo sistema ao desenvolver qualquer código de produção. Através da rotação de parceiros em toda a equipe, a programação extrema promove uma melhor comunicação e construção de equipes.
jogo de planeamento
muitas vezes isto assume a forma de uma reunião num intervalo frequente e bem definido (a cada uma ou duas semanas), onde a maioria do planeamento para o projecto tem lugar.,
dentro deste procedimento existe a fase de planejamento da liberação, onde são feitas determinações sobre o que é necessário para as libertações iminentes. Seções do planejamento de lançamento incluem:
- fase de exploração: os cartões de história são usados para detalhar os requisitos mais valiosos dos clientes.fase de compromisso: planejamento e compromissos da equipe são feitos para atender às necessidades do próximo lançamento da programação e obtê-lo em tempo útil.,fase de Direcção: isto permite que os planos desenvolvidos anteriormente sejam ajustados com base na evolução das necessidades do projecto, semelhante a muitas outras metodologias de modelos ágeis.
após o planejamento de lançamento também é a seção de planejamento de iteração, que consiste nas mesmas três sub-fases próprias, mas com variantes em suas implementações:
- fase de exploração: todos os requisitos do projeto são escritos.
- fase de Compromisso: as tarefas necessárias ainda por completar para cumprir a próxima versão de iteração são atribuídas aos programadores e agendadas de forma apropriada.,fase de direcção: o desenvolvimento tem lugar e, após a conclusão, a iteração resultante é comparada com os cartões desenhados no início do processo de planeamento.
Test-driven development
Enquanto um artigo inteiro poderia ser escrito sobre test-driven development, o conceito é bastante conhecido entre os desenvolvedores e, efetivamente, significa que os testes são gerados para cada um dos requisitos do projeto, e só então é o código desenvolvido que vai passar com êxito os testes.,
toda a equipa
tal como muitos outros métodos e práticas SDLC, a programação extrema promove a inclusão de clientes e clientes ao longo de todo o processo, utilizando o seu feedback para ajudar a moldar o projecto em todos os momentos.
processo Contínuo
integração Contínua
Outra prática comum no desenvolvimento moderno, a idéia por trás de integração contínua é de que todo o código desenvolvido através de toda a equipe está unida em um repositório comum, muitas vezes por dia., Isso garante que quaisquer problemas com integração em todo o projeto são notados e tratados o mais rápido possível.
refactoring de código
outra prática muito comum, a ideia por trás de refactoring de código é simplesmente para melhorar e redesenhar a estrutura do Código já existente, sem modificar o seu comportamento fundamental. Exemplos simples de refactoring incluem a fixação de nomes inadequados variáveis ou métodos, e a redução do código repetido para um único método ou função.,
Pequeno lançamentos
Muito em linha com as práticas do Modelo interativo, este conceito garante que o projeto contará com iterado, pequena lança em uma base freqüente, permitindo que o cliente, bem como, como todos os membros da equipe, para se ter uma noção de como o projeto está se desenvolvendo.
entendimento Partilhado
padrões de Codificação
O padrão de codificação é simplesmente um conjunto de melhores práticas dentro do próprio código, como formatação e estilo, que toda a equipe segue ao longo de todo o ciclo de vida do projeto., Isto promove uma melhor compreensão e legibilidade do código não só para os membros atuais, mas também para futuros desenvolvedores.esta prática permite que qualquer desenvolvedor em toda a equipe altere qualquer seção do código, conforme necessário. Embora esta prática possa parecer perigosa para alguns, ela acelera o tempo de desenvolvimento, e quaisquer problemas potenciais podem ser resolvidos com testes de unidade adequados.
design simples
há pouca razão para complicar as coisas sempre que uma opção mais simples está disponível., Esta prática básica de manter todos os componentes e Código tão simples quanto pode ser garante que toda a equipe está sempre avaliando se as coisas poderiam ser feitas de uma maneira mais fácil.
metáfora do sistema
Melhor pensamento como parte dos padrões de codificação, A metáfora do sistema é a idéia de que cada pessoa na equipe deve ser capaz de olhar para o código de alto nível que é desenvolvido, e ter uma clara compreensão da funcionalidade que o código está executando.,
bem-estar do programador
ritmo sustentável
Um conceito chave para um melhor equilíbrio entre a vida profissional e a vida dos programadores num projecto de programação extrema é a noção de que ninguém deve ser obrigado a trabalhar para além da semana normal de trabalho programada. Horas extras são desaprovadas, como é o conceito de “crunch time”, onde os desenvolvedores são esperados para trabalhar horas extremas perto do final de um lançamento para obter tudo concluído a tempo.