Soluções        Serviços          Atendimento       Governo        Consultoria T.I      Treinamento

Software

Programação extrema (do inglês eXtreme Programming), ou simplesmente XP, é uma metodologia ágil para equipes pequenas e médias e que irão desenvolver software com requisitos vagos e em constante mudança. Para isso, adota a estratégia de constante acompanhamento e realização de vários pequenos ajustes durante o desenvolvimento de software.

Os cinco valores fundamentais da metodologia XP são: comunicação, simplicidade, feedback, coragem e respeito. A partir desses valores, possui como princípios básicos: feedback rápido, presumir simplicidade, mudanças incrementais, abraçar mudanças e trabalho de qualidade.

Dentre as variáveis de controle em projetos (custo, tempo, qualidade e escopo), há um foco explícito em escopo. Para isso, recomenda-se a priorização de funcionalidades que representem maior valor possível para o negócio. Desta forma, caso seja necessário a diminuição de escopo, as funcionalidades menos valiosas serão adiadas ou canceladas.

A XP incentiva o controle da qualidade como variável do projeto, pois o pequeno ganho de curto prazo na produtividade, ao diminuir qualidade, não é compensado por perdas (ou até impedimentos) a médio e longo prazo.

Índice

  • 1 Valores
  • 2 Princípios básicos
  • 3 Práticas
  • 4 Livros

Valores

  • Comunicação
  • Simplicidade
  • Feedback
  • Coragem
  • Respeito

Princípios básicos

  • Feedback rápido
  • Presumir simplicidade
  • Mudanças incrementais
  • Abraçar mudanças
  • Trabalho de alta qualidade.

Práticas

Para aplicar os valores e princípios durante o desenvolvimento de software, XP propõe uma série de práticas. Há uma confiança muito grande na sinergia entre elas, os pontos fracos de cada uma são superados pelos pontos fortes de outras.

  • Jogo de Planejamento (Planning Game): O desenvolvimento é feito em iterações semanais. No início da semana, desenvolvedores e cliente reúnem-se para priorizar as funcionalidades. Essa reunião recebe o nome de Jogo do Planejamento. Nela, o cliente identifica prioridades e os desenvolvedores as estimam. O cliente é essencial neste processo e assim ele fica sabendo o que está acontecendo e o que vai acontecer no projeto. Como o escopo é reavaliado semanalmente, o projeto é regido por um contrato de escopo negociável, que difere significativamente das formas tradicionais de contratação de projetos de software. Ao final de cada semana, o cliente recebe novas funcionalidades, completamente testadas e prontas para serem postas em produção.
  • Pequenas Versões (Small Releases): A liberação de pequenas versões funcionais do projeto auxilia muito no processo de aceitação por parte do cliente, que já pode testar uma parte do sistema que está comprando. As versões chegam a ser ainda menores que as produzidas por outras metodologias incrementais, como o RUP.
  • Metáfora (Metaphor): Procura facilitar a comunicação com o cliente, entendendo a realidade dele. O conceito de rápido para um cliente de um sistema jurídico é diferente para um programador experiente em controlar comunicação em sistemas em tempo real, como controle de tráfego aéreo. É preciso traduzir as palavras do cliente para o significado que ele espera dentro do projeto.
  • Projeto Simples (Simple Design): Simplicidade é um princípio da XP. Projeto simples significa dizer que caso o cliente tenha pedido que na primeira versão apenas o usuário "teste" possa entrar no sistema com a senha "123" e assim ter acesso a todo o sistema, você vai fazer o código exato para que esta funcionalidade seja implementada, sem se preocupar com sistemas de autenticação e restrições de acesso. Um erro comum ao adotar essa prática é a confusão por parte dos programadores de código simples e código fácil. Nem sempre o código mais fácil de ser desenvolvido levará a solução mais simples por parte de projeto. Esse entendimento é fundamental para o bom andamento do XP. Código fácil deve ser identificado e substituído por código simples.
  • Time Coeso (Whole Team): A equipe de desenvolvimento é formada pelo cliente e pela equipe de desenvolvimento.
  • Testes de Aceitação (Customer Tests): São testes construídos pelo cliente e conjunto de analistas e testadores, para aceitar um determinado requisito do sistema.
  • Ritmo Sustentável (Sustainable Pace): Trabalhar com qualidade, buscando ter ritmo de trabalho saudável (40 horas/semana, 8 horas/dia), sem horas extras. Horas extras são permitidas quando trouxerem produtividade para a execução do projeto. Outra prática que se verifica neste processo é a prática de trabalho energizado, onde se busca trabalho motivado sempre. Para isto o ambiente de trabalho e a motivação da equipe devem estar sempre em harmonia.
  • Reuniões em pé (Stand-up Meeting): Reuniões em pé para não se perder o foco nos assuntos, produzindo reuniões rápidas, apenas abordando tarefas realizadas e tarefas a realizar pela equipe.
  • Posse Coletiva (Collective Ownership): O código fonte não tem dono e ninguém precisa solicitar permissão para poder modificar o mesmo. O objetivo com isto é fazer a equipe conhecer todas as partes do sistema.
  • Programação em Pares (Pair Programming): é a programação em par/dupla num único computador. Geralmente a dupla é formada por um iniciante na linguagem e outra pessoa funcionando como um instrutor. Como é apenas um computador, o novato é que fica à frente fazendo a codificação, e o instrutor acompanha ajudando a desenvolver suas habilidades. Desta forma o programa sempre é revisto por duas pessoas, evitando e diminuindo assim a possibilidade de defeitos. Com isto busca-se sempre a evolução da equipe, melhorando a qualidade do código fonte gerado.
  • Padrões de Codificação (Coding Standards): A equipe de desenvolvimento precisa estabelecer regras para programar e todos devem seguir estas regras. Desta forma parecerá que todo o código fonte foi editado pela mesma pessoa, mesmo quando a equipe possui 10 ou 100 membros.
  • Desenvolvimento Orientado a Testes (Test Driven Development): Primeiro crie os testes unitários (unit tests) e depois crie o código para que os testes funcionem. Esta abordagem é complexa no início, pois vai contra o processo de desenvolvimento de muitos anos. Só que os testes unitários são essenciais para que a qualidade do projeto seja mantida.
  • Refatoração (Refactoring): É um processo que permite a melhoria continua da programação, com o mínimo de introdução de erros e mantendo a compatibilidade com o código já existente. Refabricar melhora a clareza (leitura) do código, divide-o em módulos mais coesos e de maior reaproveitamento, evitando a duplicação de código-fonte;
  • Integração Contínua (Continuous Integration): Sempre que produzir uma nova funcionalidade, nunca esperar uma semana para integrar à versão atual do sistema. Isto só aumenta a possibilidade de conflitos e a possibilidade de erros no código fonte. Integrar de forma contínua permite saber o status real da programação.

Livros

  • Extreme Programming Explained: Embrace Change (2nd Edition) (ISBN 0321278658)
  • Planning Extreme Programming (ISBN 0201710919)
  • Extreme Programming Installed (ISBN 0201708426)
  • Agile Software Development, Principles, Patterns, and Practices (ISBN 0135974445)

Obtida de "http://pt.wikipedia.org/w/index.php?title=Programa%C3%A7%C3%A3o_extrema&oldid=27576949"

MAIS INFORMAÇÕES DO SETOR DE SOFTWARE

Lista de softwares Públicos

em 11/11/2011LISTA DE SOFTARES PÚBLICOSSoftware Público Brasileiro InVesalius  (542 [ ... ]


Estrutura de dados

article thumbnail

Uma árvore binária é uma estrutura de dados. Na Ciência da computação, uma estrutura  [ ... ]


Miniaturização

Miniaturização é o processo de produção de objetos de consumo cada vez menores (miniaturas), in [ ... ]


Programação extrema

Programação extrema (do inglês eXtreme Programming), ou simplesmente XP, é uma metodologia ág [ ... ]


Banco de dados

article thumbnail

Bancos de dados, ou bases de dados (em Portugal), são coleções de informações que se relacion [ ... ]


dotProject

Software Livre - dotProject
dotProject Desenvolvedor Adam Donnison, Karen Chisholm, Gregor Er [ ... ]


Rede de computadores

article thumbnail

A Wikipédia possui o portal:
Portal das tecnologias de informação Uma rede de comp [ ... ]


CodeIgniter

CodeIgniter Desenvolvedor EllisLab, Inc. Lançado em 28 de Fevereiro de 2006  [ ... ]


Orientação a objetos

A orientação a objetos é um paradigma de análise, projeto e programação de sistemas de softwar [ ... ]


CRM - Customer relationship management

Customer Relationship Management (CRM) é uma expressão em inglês que pode ser traduzida para a l [ ... ]


Marketing de relacionamento

Marketing Composto Marketing | Marketing mix | Produto | Preço | Promoção | Comun [ ... ]


Scrum

article thumbnail

O processo Scrum. O Scrum é um processo de desenvolvimento iterativo e incremental para  [ ... ]


Licitação

Licitação é o procedimento administrativo para contratação de serviços ou aquisição de pro [ ... ]


Microsoft SharePoint Workspace

article thumbnail

Título a ser usado para criar uma ligação interna é Microsoft SharePoint Workspace. Micr [ ... ]


Teste de penetração

article thumbnail

O teste de penetração é um método que avalia a segurança de um sistema de computador ou de um [ ... ]


Padrão de projeto de software

Um Padrão de Projeto de Software ou Padrão de Desenho de Software, também muito conhecido pelo te [ ... ]


Zope


Zope Desenvolvedor Zope Corporation Plataforma multiplataforma Versão es [ ... ]


IBM Rational Unified Process

O RUP, abreviação de Rational Unified Process (ou Processo Unificado Racional), é um processo pro [ ... ]


Software

article thumbnail


OpenOffice.org Writer. Software, logiciário ou suporte lógico é uma sequência de in [ ... ]


Qualidade de software

A qualidade de software é uma área de conhecimento da engenharia de software que objetiva garantir [ ... ]


Matriz de interações

article thumbnail

A Matriz de Interações (ou Matriz CRUD) é utilizada, no processo de desenvolvimento de sistemas [ ... ]


Hacker

article thumbnail


Originalmente, e para certos programadores, hackers (singular: hacker) são indivíduos que elabo [ ... ]


CakePHP

CakePHP é um framework escrito em PHP que tem como principais objetivos oferecer uma estrutura qu [ ... ]


Paradigmas de programação

Um paradigma de programação fornece e determina a visão que o programador possui sobre a estrut [ ... ]


Sistemas de CRM

Os sistemas de CRM.. são aplicativos de informação desenvolvidos com o objetivo de auxiliar na ge [ ... ]


Teste de software

article thumbnail

O teste do software é a investigação do software a fim de fornecer informações sobre sua qual [ ... ]


ISO/IEC 9126

article thumbnail

ISO/IEC 9126 é uma norma ISO para qualidade de produto de software, que se enquadra no modelo de qu [ ... ]


ISO da segurança da informação

ISO 27001 Origem: Wikipédia, a enciclopédia livre. ISO/IEC 27001 é um padrão para sistema de g [ ... ]


Software como serviço

Software como serviço, do inglês Software as a service, é uma forma de distribuição e comerci [ ... ]


Outsourcing

 Outsourcing (em inglês, "Out" significa "fora" e "source" ou "sourcing" significa fonte)  [ ... ]


Segurança da informação

article thumbnail

A Wikipédia possui o portal:
Portal das tecnologias de informação A segurança da  [ ... ]


Gestão de riscos em TI

A Gestão de riscos (termo também conhecido como Risk Management) é um processo/disciplina util [ ... ]


Ferramenta CASE

Ferramentas CASE (do inglês Computer-Aided Software Engineering) é uma classificação que abran [ ... ]


Alta tecnologia

Alta tecnologia (em inglês, high tech) refere-se à tecnologia considerada de ponta (em inglês,  [ ... ]


Software educativo

article thumbnail

Software educativo é um software cujo principal propósito é o ensino ou o auto-aprendizado.[1]  [ ... ]


Apple

article thumbnail


Apple Tipo Empresa cotada em bolsa (NASDAQ: AAPL, LSE: 0HDZ, FWB: APC) Fu [ ... ]


XMI (ou XML Metadata Interchange)

XMI (ou XML Metadata Interchange) é um padrão da OMG (grupo de gerenciamento de objetos) para tr [ ... ]


Microsoft Office

article thumbnail

Microsoft Office Desenvolvedor Microsoft Plataforma x86 e x64 Lançad [ ... ]


Microsoft Windows

article thumbnail



Último lançamento do Windows, Windows 7, mostrando o seu ambiente de trabalho e me [ ... ]


Hierarquia DIKW

DIKW é uma hierarquia informacional utilizada principalmente nos campos da Ciência da Informação [ ... ]


Engenharia de software

Engenharia de software é uma área do conhecimento da computação voltada para a especificação,  [ ... ]


Steve Jobs

article thumbnail

Steve Jobs Steve Jobs apresentando um iPhone 4 durante a Apple Worldwide Develo [ ... ]


C♯

article thumbnail


C♯ Paradigma Orientação a objetos
estruturado
imperativo Surgido em 2001  [ ... ]


Blog corporativo

Blogs Corporativos podem ser traduzidos em: uso de blogs dentro do cotidiano das empresas. O Blog  [ ... ]


Symfony

article thumbnail

Symfony

Projeto padrão do Symfony Desenvolvedor Sensio Labs Versão está [ ... ]


Matriz de Interações (ou Matriz CRUD)

article thumbnail

A Matriz de Interações (ou Matriz CRUD) é utilizada, no processo de desenvolvimento de sistemas [ ... ]


ITILv3

A versão 3 da biblioteca ITIL foi lançada mundialmente em maio de 2007 como uma atualização comp [ ... ]


Nanotecnologia do carbono

article thumbnail

A nanotecnologia do carbono é o ramo da nanotecnologia que estuda a manipulação de estruturas de  [ ... ]


COA - Control Oriented Architecture

Control Oriented Architecture - COA é uma arquitetura de camadas de controle que permite configur [ ... ]


PHP

article thumbnail

PHP Paradigma procedural, reflexão, orientação a objetos, funcional Surg [ ... ]


Artigos Relacionados

Pluriverso - Inteligência em Tecnologia

Pluriverso - Inteligência em Tecnologia


Ed.Centro Sul, 2°Andar, SCIA, Qd. 14, Conj. 07, Lt 1, S. Ind.
CEP: 71.250-135, Brasília-DF.  
Como Chegar
| Atendimento  


+55 (61) 4141.5555

Serviços

Desenvolvimento de Software
Oursourcing de T.I
Consultoria em Tecnologia
Licitação com o Governo

Produtos

ERP, CRM, Colaboração
Cloud Computing

Soluções
Soluções em Outsourcing de Tecnologia
Integração de Software
Avaliação de nível tecnológico
Cálculo de custos de T.I
Softwares customizados


Porque escolher a Pluriverso

Blog Corporativo
Blog do Software

Conheça a Pluriverso
quem somos
verticais de atuação
portifólio
casos de sucesso

Atendimento
contatos
sala de imprensa
como chegar
Trabalhe conosco

desenvolvimento de software