Archive for the ‘eXtreme Program’ Category

Estarei na PHPConf 2008

segunda-feira, outubro 27th, 2008

PHPConf

O PHP Conference Brasil em 2008, com expectativa de atingir 1.000 profissionais participantes será realizado no UNIFIEO, Universidade localizada no Município de Osasco, São Paulo.

- 3 dias de duração, quinta-feira (com mini cursos Mão na Massa), sexta-feira e sábado (com Palestras Técnicas, Conceituais, Mini Tutoriais, Painéis de Debate e Install Fest)

Convido a todos a participarem da PHPConf 2008 onde irei palestrar sobre o tema “Agilidade: SCRUM e XP” que será realizada no dia 28!

Conto com vocês!

Teste de aceitação - Selenium vs WebTest

terça-feira, fevereiro 26th, 2008

Há mais de um ano atrás, antes de iniciarmos a fazer testes de aceitação, entre as possibilidades haviam o Selenium e o WebTest. Na época decidimos utilizar o Selenium.

Marc Guillemot postou uma comparação entre os dois, e o seu resultado foi vitória do WebTest.

Particularmente, quando fiz meus testes, achei o WebTest muito lento/chato para fazer os testes quando comparado ao Selenium IDE.

Fonte: QueroSerÁgil

TOC - Theory of Constraints

terça-feira, janeiro 22nd, 2008

A MetaA Teoria das Restrições é uma filosofia de gerenciamento sistêmico, baseada na aplicação de princípios e métodos das Ciências Exatas ao gerenciamento. É conhecida por seus resultados rápidos e surpreendentes.

Foi criada pelo físico israelense Eliyahu Goldratt e apresentada no livro “A Meta” (The Goal) em 1984, mostrando uma aplicação num ambiente de fábrica. Hoje também é aplicada em logística, marketing, vendas, contabilidade, gerenciamento de projetos, TI, saúde, educação, vida pessoal, etc.

Para uma breve introdução à TOC, leia este e este artigos e esta apresentação.

Para uma visão resumida e colorida dos Processos de Raciocínio, leia o artigo TOC em Cores.

Participe do grupo público de discussão da TOC.

FDD - Feature Driven Development

terça-feira, janeiro 22nd, 2008

Feature Driven Development (Desenvolvimento Guiado por Funcionalidades) é uma metodologia ágil para gerenciamento e desenvolvimento de software.

Saiba mais:

Fonte: Heptagon

Desenvolvimento dirigido por testes (TDD - Test Driven Development)

quinta-feira, janeiro 17th, 2008

Artigo em Inglês:

http://www.agiledata.org/essays/tdd.html

http://www.phpit.net/article/introduction-tdd-php/

http://devzone.zend.com/article/90-Test-Driven-Development-and-PHP

Artigo em Português:

http://www.slideshare.net/diegotremper/qualidade-no-desenvolvimento-de-software-com-phpunit

PHP + TDD + “Generics”

http://dojofloripa.wordpress.com/2006/11/07/introducao-ao-desenvolvimento-orientado-a-testes/

Outros links:

http://laurovalente.blogspot.com/2006/04/xp-e-tdd.html

Desenvolvimento ágil

segunda-feira, janeiro 14th, 2008

http://horewicz.net/tamanho-ideal-de-sprintiteracao-scrumxp/

http://dojofloripa.wordpress.com/2007/09/10/tudo-sobre-tdd/

http://horewicz.net/tdd-em-o-que-testar/

Vídeos:

http://malditacomedia.blogspot.com/2007/08/tipos-de-teste-palestra-agilcoop.html

http://malditacomedia.blogspot.com/2007/08/agile-testing.html

Extreme Programming - Trabalho do Denysson

segunda-feira, dezembro 10th, 2007

Trabalho sobre Extreme Programming do Denysson
O link do artigo:
http://denysson.wordpress.com/2007/06/21/xp/

O link do arquivo:
http://www.box.net/encoded/6749452/71660295/1584dc71fb7e2f5aafb1ab77b6eb3bcb

Google Maps Mobile… muito bom!

terça-feira, dezembro 4th, 2007

Vai uma dica, instale o GMM no seu celular, é muito bom, a triangulação de antenas para funcionar tipo um GPS funciona mesmo!

eXtreme Programa (XP) - Programação Extrema

segunda-feira, outubro 8th, 2007

Trabalhei durante um mês em uma equipe utilizando alguns conceitos de XP, fiquei realmente encantado com estas metodologias, vou postar abaixo a descrição de XP segundo o Wikipédia para que ela funcione como um roteiro de posts seguintes que falarei melhor sobre o assunto.

Programação extrema

Origem: Wikipédia, a enciclopédia livre.

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 quatro valores fundamentais da metodologia XP são: comunicação, simplicidade, feedback e coragem. 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 váriá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

[esconder]

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 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 projecto 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 projecto.
  • 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 liguagem 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 erros (bugs). 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 equipa 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 projecto 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

Ligações externas

Obtido em “http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extrema