Programação extrema (XP) -

Posicionado no final dos anos 1900, o desenvolvimento de software e os conceitos de programação estavam vendo uma mudança considerável na maneira e na abordagem de todo o esquema. Abordagens mais enxutas e do tamanho de pacotes que nós, em ascensão, e modelos unitizados claros foram aplicados para trazer mudanças na maneira como o software foi desenvolvido. O desperdício precisava ser reduzido com o aumento da demanda por sistemas eficientes e, assim, surgiu a era das metodologias para o desenvolvimento eficiente de software. A programação processual foi logo substituída pela Programação Orientada a Objetos e o modelo em cascata abriu caminho para o Agile assumir a liderança. As estruturas japonesas de controle de qualidade logo estavam ganhando força e, em seguida, surgiu o conceito de algo que era usado anteriormente em bits, mas que agora era uma metodologia completa para resolver problemas de programação e desenvolvimento de software, Extreme Programming!

O que é Extreme Programming (XP)?

Com um número considerável de mudanças vendo a luz do dia dos clientes, a Extreme Programming (XP) foi um alívio para a organização de projetos realizados por especialistas em software.

A implementação de programação extrema aprimorou a qualidade do software e estava respondendo com mais eficiência às mudanças nos requisitos dos negócios, causadas pelo dimensionamento de negócios ou fatores externos.

XP é uma metodologia, sob o guarda-chuva Agile, que incentiva lançamentos frequentes de versões em curtos ciclos de desenvolvimento. Isso inevitavelmente aumentaria a produtividade em grande parte e os lançamentos frequentes abririam caminho para a incorporação de novos requisitos.

A Programação Extrema (XP) tem a “satisfação do cliente” no centro de sua estrutura e o “trabalho em equipe” como força muscular. A colaboração é essencial para que a programação extrema (XP) seja bem-sucedida, pois executa etapas iterativas para a produção de software para clientes. Ele não está focado em entregar o cinto inteiro, mas analisa se as necessidades do cliente são atendidas em todas as etapas do processo.

Parte do desenvolvimento ágil de software

O desenvolvimento ágil de software é a maneira como o desenvolvimento é realizado, mas, o mais importante, o que a maioria das pessoas esquece de reconhecer é que as equipes, ou seja, as pessoas, precisam ser ágeis para obter sucesso. A implementação de métodos e processos apenas garante que exista uma estrutura fixa na qual as equipes possam ser flexíveis, escaláveis ​​e mais definitivamente criativas.

Com os conceitos de iteração e sprints, como no caso do Scrum, o Agile fornece uma ótima plataforma para obter as mudanças e o feedback implementados em cada ciclo de desenvolvimento que passa.

Quando se trata de Extreme Programming (XP), leva em consideração todas as oportunidades que podem resultar em melhorias feitas no produto no final.

Desenvolvimento tradicional versus programação extrema (XP)

  • Enquanto o desenvolvimento tradicional mantém o foco no processo e leva isso em consideração quando se trata da conclusão do ciclo, a programação extrema se concentra no requisito.
  • A programação extrema (XP) leva as melhores práticas instaladas no desenvolvimento tradicional e leva-a a limites extremos. O alongamento realizado com extrema programação (XP) é excelente para projetos flexíveis e elásticos.
  • O desenvolvimento tradicional tem a segmentação como o fator precedente nos ciclos de desenvolvimento de software, enquanto a programação extrema (XP) defende a colaboração entre equipes e também as partes interessadas pelo feedback e visualizações constantes durante as iterações e os estágios de planejamento.

5 valores para um projeto bem sucedido

A programação extrema (XP) envolve as 5 maneiras ou valores essenciais para se dirigir a um projeto de software bem-sucedido:

  1. Comunicação - Essa metodologia de desenvolvimento de software requer essencialmente uma comunicação unida entre os gerentes, clientes / clientes e desenvolvedores. Essa comunicação eficaz é necessária para o bom funcionamento do projeto de software e outras ferramentas de gerenciamento de projetos também são implementadas na comunicação, para facilitar a comunicação durante o ciclo de vida do projeto.
  2. Coragem - Com mudanças drásticas nos requisitos do cliente, cabe aos desenvolvedores enfrentar corajosamente os desafios que surgem no último minuto ou as mudanças contraditórias aplicadas ao projeto a qualquer momento.
  3. Feedback - O feedback é implementado através de testes unitários constantes e os resultados são avaliados e implementados de acordo com os ciclos de desenvolvimento do projeto. Os clientes são mantidos de perto e uma demonstração é apresentada assim que um ciclo de desenvolvimento é concluído, para que o feedback possa ser incorporado.
  4. Respeito - Cada ciclo de desenvolvimento traz com seu sucesso um novo marco e apenas exemplifica as contribuições dos ciclos realizados.
  5. Simplicidade - a programação extrema (XP) é mais eficiente quando o design é mantido simples e a implementação é planejada de maneira clara e eficaz. Muitas programações extremas seguem suas regras simples.

Ciclos de planejamento-feedback

A colaboração na equipe e a conexão diária com os negócios para o desenvolvimento otimizado de produtos formam a espinha dorsal da extrema programação (XP), enquanto as histórias de usuários formam a base do planejamento do XP. Essas histórias de usuários são anotadas em cartões. A manipulação desses cartões pode dar vida ao escopo e plano do projeto.

Esse planejamento do XP é criado com três níveis ou camadas.

  • Meses futuros
  • Próxima iteração
  • Iteração atual

Os planos são sempre temporários e a recriação dos planos precisa ser feita antes do final do último plano. Eles mudam conforme e quando há até uma pequena alteração no projeto ou em seu cronograma. A iteração começa no momento em que uma alteração é encontrada. Você obtém feedback do cliente, revisita seu plano. Você está adiantado ou atrasado, revisita e muda seu plano.

Através do planejamento entra em vigor os projetos mais adequados para o produto a ser entregue. No que diz respeito à programação extrema (XP), o desenvolvimento orientado a teste (TDD) e a refatoração são usados ​​para um projeto eficaz e eficiente.

Já tendo a essência do Agile, a refatoração é uma ferramenta de design importante e crucial envolvida no processo de planejamento. A refatoração envolve fazer alternâncias e ajustes no projeto de acordo com as necessidades que foram alteradas. Com a refatoração, vem o conceito de teste de maneira unitizada e aceitável.

As etapas a seguir ocupam o centro do palco quando um loop de planejamento ou feedback é executado. Cada ação aqui é iterativa e pode ser executada em sucessão depois que uma mudança é iniciada:

Cada etapa da sequência executada pode ser iterativa por natureza e pode ser repetida como e quando a sequência de alteração é iniciada, e um novo plano é recriado para cada iniciação. Cada etapa também possui uma duração específica, e um cronograma é definido para o restante do feedback de cada estágio do produto.

  • Codificação para emparelhar a programação - segundos
  • Programação em pares para teste de unidade - minutos
  • Teste de unidade para emparelhar negociação - horas
  • Par de negociação para reunião stand-up - um dia
  • Reunião stand-up para testes de aceitação - dias
  • Teste de aceitação para planejamento de iteração - semanas
  • Planejamento de iteração para liberar planejamento - meses

Com o nível de iteração que é procurado, torna-se obrigatório para os desenvolvedores garantir e garantir que o código seja bem classificado e tenha a melhor qualidade. O relato de bugs é um estrito não-não para desenvolvedores, seguindo a metodologia de programação extrema para desenvolvimento de software.

O que é programação em pares?

Como o recurso central da metodologia de programação extrema são as pessoas e não os processos, são as pessoas que executam o conceito de programação em pares. Adicionando produtividade e qualidade à tabela, a programação em pares é mais ou menos assim:

"O código enviado à produção é criado por duas pessoas que trabalham juntas no código a ser criado, enquanto estão sentadas em um único computador".

Os benefícios desse conceito de programação em pares são os seguintes:

  • Qualidade aprimorada do software - embora não haja funcionalidade adicional com duas pessoas sentadas juntas ou separadas, a concentração em um único computador certamente aumenta a qualidade do código renderizado
  • Nenhum efeito no tempo de entrega - fornecer uma situação em que todos saem ganhando para o projeto e seus stakeholders, usar duas cabeças funcionais para obter um código de alta qualidade sem perda de tempo é ótimo para o desenvolvimento de software
  • Redução de custos para estágios posteriores - com o código de alta qualidade já renderizado, o impacto que ele tem nos estágios posteriores é enorme e o custo certamente é economizado a cada iteração que ocorre

Emparelhando a programação, pois envolve dois indivíduos distintos trabalhando juntos em mesas iguais, torna-se essencial que eles coordenem em um nível mais alto, independentemente do nível de experiência. É uma habilidade social que leva tempo para aprender e precisa de dois profissionais dedicados que querem fazer a diferença no mundo do desenvolvimento de software.

A programação em pares é sempre prosseguida pela integração extensa e contínua da nova funcionalidade incorporada e o ciclo continua.

Regras

Embora saibamos que as regras implementadas no mundo da Extreme Programming (XP) se baseiam no princípio e no valor da Simplicity, é essencial ter uma boa visão sobre essas regras que compõem uma ótima metodologia nas técnicas de desenvolvimento de software.

Planejamento

No planejamento, o gerente de projeto e sua equipe examinam os requisitos cuidadosamente e cumprem as seguintes regras:

  • As histórias de usuários precisam ser anotadas
  • O planejamento da liberação deve resultar em uma programação de liberação
  • O projeto é dividido em iterações
  • Os lançamentos precisam ser freqüentes, mas pequenos
  • O planejamento da iteração deve iniciar a iteração

Gerenciando

Gerenciar as tarefas alocadas e a duração de cada tarefa peculiar é o papel do gerente de projetos. É importante que o gerente de projetos esteja atento aos riscos e aderência de cada estágio realizado pelos membros da equipe e direcione a força de trabalho e os recursos de acordo com o conceito de extrema programação (XP). Aqui estão algumas das regras que precisam passar por um PM:

  • A equipe deve receber um espaço de trabalho aberto para ampliar sua imaginação
  • O cronograma designado deve ser realista e com ritmo cuidadoso
  • Cada dia útil deve começar com uma reunião stand-up
  • Colaboração e trabalho em equipe são os principais componentes e precisam do máximo incentivo
  • A velocidade do projeto deve ser medida durante cada incorporação de mudança
  • As pessoas nunca devem ficar estagnadas e devem ser movidas
  • Orientar a programação extrema (XP) é por excelência e o planejamento deve ser iniciado a cada oportunidade de mudança

Projetando

O design é o estágio que segue cuidadosamente o planejamento e determina a maneira como os requisitos são tratados no estágio inicial do projeto. Um bom design reflete o processo de pensamento e a criatividade e requer um número menor de iterações, garantindo assim altos níveis de qualidade no início do projeto. Sendo um reflexo do estágio de planejamento, aqui estão algumas regras a serem lembradas durante a implementação de projetos em programação extrema (XP):

  • Simplicidade é a chave
  • Nenhuma funcionalidade deve ser introduzida em um estágio inicial
  • A refatoração é essencial em todas as etapas para fornecer projetos de produtos eficientes e eficazes
  • As soluções Spike podem ser usadas para reduzir o número e a intensidade do risco no projeto de software

Codificação

Depois que o design estiver em vigor, é hora de colocar tudo em prática e dar o aval para criar e gerar código que entrará em produção para teste e entrega. A codificação é o estágio que demonstra o funcionamento real da metodologia do projeto e incentiva a iteração da maneira mais eficaz. Aqui estão algumas regras rápidas a serem observadas quando estiver no estágio de codificação:

  • O cliente precisa estar sempre atualizado durante o lançamento do produto
  • O código deve aderir às normas e práticas de codificação adotadas mundialmente
  • O teste de unidade deve ser o código como o início
  • O código de produção deve passar por programação em pares para obter alta qualidade
  • Integre códigos frequentemente e deve ser feito por um par apenas em um determinado momento
  • A responsabilidade deve ser compartilhada e o trabalho em equipe intensivo deve ser promovido
  • A programação em pares deve ocorrer em um computador
  • O assento preferido do par deve estar lado a lado

Teste

Com o código pronto e rolando, o teste é um selo do bom funcionamento das linhas de código. Testes de formulários como um selo para garantir que o software esteja pronto para o consumo. A seguir, estão as regras implementadas para teste no Extreme Programming (XP):

  • Um código deve conter testes de unidade
  • Uma liberação exigiria códigos para passar nesses testes de unidade
  • Testes devem ser criados na detecção de bugs
  • Os testes de aceitação devem ter alta frequência e os resultados devem ser publicados
  • Os usuários não devem detectar nenhum bug em um código

Quando usar a programação extrema (XP)?

A Extreme Programming nasceu devido à necessidade de contornar um projeto que carregava muitas mudanças em muitas ocasiões no tempo. Tornou-se necessário que a metodologia adotada fosse iterativa e simples em sua essência. A seguir estão as situações que podem solicitar o uso de programação extrema (XP):

  • Os clientes não têm uma boa ideia sobre a funcionalidade do sistema
  • As mudanças são dinâmicas e espera-se que sejam alteradas após curtos intervalos de tempo
  • Os negócios estão subindo abruptamente
  • Os recursos alocados são mínimos; nenhuma equipe enorme
  • Precisa de um aumento considerável na produtividade
  • O risco precisa de altos níveis de mitigação
  • Altas provisões para testes

Então, aqui está a programação extrema (XP) para você, resumidamente e em palavras simples. Essa metodologia registrou sucesso em todas as empresas de desenvolvimento de software e teve uma grande taxa de sucesso ao longo de seu histórico de implementação. Nascida de requisitos normais e simplistas, a programação extrema (XP) agora está lentamente ganhando reconhecimento como uma metodologia a ser considerada.

Se você gosta do conceito de Extreme Programming (XP), dê um joinha neste artigo. Se você gostou, compartilhe e comente suas opiniões.