Extreme Programming e sua relação com Software Livre

Uma análise de como a metodologia de desenvolvimento ágil de software pode ajudar a divulgação do software livre.

[ Hits: 23.430 ]

Por: Alexandre Felipe Muller de Souza em 28/08/2007


Desenvolver de trás pra frente?



Um fator interessante do desenvolvimento ágil é a nova proposta de desenvolvimento. Quem está acostumado com desenvolvimento de software tradicional está acostumado no desenvolvimento "cachoeira". Esta desenvolvimento se dá num programa de tarefas como:
  • Fazer especificação
    Aqui você vai ouvir seu cliente. O analista pega sua pastinha debaixo do braço e vai perguntar. Qual é a necessidade do cliente? A partir disto ele vai modelar o problema, como as partes vão se interagir e vai partindo do nível mais alto da modelagem até chegar no próximo passo.

  • Codificar
    Aqui é colocada a mão na massa e no teclado. Seguindo cegamente a especificação. Geralmente mudar a especificação é voltar um passo. Então a relação com o cliente é mais reduzida e quando é preciso mudar a especificação tenta-se convencer o cliente que isto não é desejável.

  • Testar
    Aqui pode se incluir uns releases beta e criação de bugs e fechamento dos mesmos.

  • Lançamento
    Seu cliente passa a ter acesso ao software e conhece o programa que ele tanto queria e pagou por isso.

  • Fechamento de bugs
    Aqui sua relação é mais de suporte. Adição de novas funcionalidades eventualmente e principalmente correção de problemas.

Existe uma possibilidade grande de que no final o software não seja nem o que o cliente queria. O XP condena isso e aponta outros meios. Analisemos abaixo cada agente dessa relação:

Seu cliente:

Ele é o financiador do projeto. É a peça mais importante do desenvolvimento, sem ele não existiria projeto, não existiria salário, não existiria nada! Ouvir ele é fundamental. E ouvir ele é saber as necessidades dele. Importante analisar com cuidado esta questão. O cliente muitas vezes não tem conhecimento técnico. Pra ele é indiferente a forma como você desenvolve, ele quer resultados e vai cobrar por isso. A tarefa do analista ou gerente de projeto é entender ele de forma a entrar no mundo dele. Não queremos menosprezar o cliente. O que acontece é que ele não é técnico e as vezes até não sabe como atingir seus objetivos.

O desenvolvedor:

Muitas vezes o que ocorre é no sentido inverso. O desenvolvedor é muito técnico e não consegue entender o cliente. O desenvolvedor pode ser o mais cego de todos. Não ter a capacidade de enxergar as necessidades do usuário e não ter a capacidade de enxergar as necessidades do cliente. Um lição importante que o tempo ensina para as pessoas da área da computação é que GERALMENTE o melhor padrão técnico nunca se torna um padrão de mercado. Isso porque para os usuários suas necessidades são imediatistas. São os técnicos que apontam tendências mas são os usuários que fazem um padrão se tornar consolidado. E os usuários não olham tendências.

Usuários:

Estes, como já foi dito, são seres de necessidades imediatistas. Eles não tem visão geral. Em algumas categorias de software costumam ser chatos com coisas pequenas e serem tolerantes a coisas consideradas grandes para os técnicos. É um grupo heterogêneo difícil de estudar. São resistentes a mudanças, e é pra eles que o software é produzido. Isto mostra como é difícil fazer um software ter sucesso.

Reforçar a relação entre estes três agentes nunca é demais e é sempre crucial. O XP propõe uma interação intensa com o cliente. Ele deve estar sempre presente em todos os passos, possivelmente o desenvolvedor deve estar dentro do prédio do cliente.

Os releases:

([McConnell 1996], p. 72, estima que "a correção de um bug não detectado no início mas detectado na entrega ou manutenção custa 50 a 200 vezes mais a correção na especificação")

O modelo proposto pelo XP é de releases atômicos. Você ouve seu cliente e desenvolve, testa e ouve de novo ele, desenvolve, testa e assim com iterações tão curtas que se torne impossível que o resultado não seja o esperado. O inventor do XP Kent Beck recomenda um ciclo de 1 semana. Ou seja, na primeira semana você já deve ter um software, pelo menos um screenshot dele. Mesmo que não faça nada!

Página anterior     Próxima página

Páginas do artigo
   1. O que é XP, o que se propõe?
   2. Desenvolver de trás pra frente?
   3. Desenvolvimento orientado a testes
   4. Programação coletiva (pair programming)
   5. Porque este artigo
Outros artigos deste autor

Multi-head usando udev e Xnest

Jopen, não se preocupe mais em descobrir qual aplicativo usar

Solução corporativa Expresso Livre, substituto de peso do Notes

Como montar um pacote RPM

Ajude o Linux, use o Linux

Leitura recomendada

APTonCD: Ubuntu Linux sem dependência de internet

Semantic Forms no MediaWiki

Customizando o (K/X/ED)Ubuntu Linux Live-CD

Scribus 1.1.6: A opção Linux para Adobe PageMaker, QuarkXPress e InDesing

Conseguindo o reembolso da licença do Microsoft Windows

  
Comentários
[1] Comentário enviado por InFog em 28/08/2007 - 09:57h

Cara eu gostei muito desse artigo, esse negócio de XP é muito legal =) Essa parte de Programação em Duplas deve muito eficaz, tanto para evitar a perda de foco como para a auditoria em tempo real.

InFog

[2] Comentário enviado por michel.peloso em 28/08/2007 - 13:03h

Cara, achei muito legal o seu artigo.. achei ele bem produtivo..
Continue assim..
Falau..

[3] Comentário enviado por hiroyuki em 28/08/2007 - 19:00h

Bacana o artigo, interessante, vou dar uma lida em mais coisas =)

[4] Comentário enviado por argentino_nsi em 28/08/2007 - 19:57h

Bom o artigo. Porém, por que todo mundo sempre compara o XP com Análise Essencial?
Não estou dizendo que uma metodologia de desenvolvimento é melhor que outra, mas a impressão que passa, é que quem defende o XP, ou não conhece ou não entendeu o ciclo Iterativo e incremental do Processo Unificado.

abraços

[5] Comentário enviado por TSM em 28/08/2007 - 20:37h

Parabéns pelo artigo, muito bom mesmo, e essa metodologia é muita bacana, vou pesquisar mais sobre ela.

Valeu
Um abraço

[6] Comentário enviado por MiguelJordao em 01/07/2014 - 13:15h

Artigo muito bom sobre Scrum:
http://www.mindmaster.com.br/scrum/

[7] Comentário enviado por MiguelJordao em 01/07/2014 - 13:15h

tb tem curso de scrum gratis na home do site
www.mindmaster.com.br


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts