Escolar Documentos
Profissional Documentos
Cultura Documentos
Spin XP
Spin XP
Analista de TI na rea de produtos auto-atendimento da TECBAN S/A Professor da FIAP. E-mails: j_paulop@yahoo.com jose.papo@tecban.com.br
OBJECTIVE SOLUTIONS DESENVOLVER E IMPLANTAR SOLUES PERSONALIZADAS DE SOFTWARE COM NOSSOS PARCEIROS E CLIENTES
Principais Clientes
Montando a Mochila
Equilibrando Utilidade, Peso e Confiabilidade Menos tens tens Mais Leves Genricos: tens com multiplas funes Menos Disciplina / Mais Diverso Sinergia: O conjunto de tens se refora
Montando a Mochila
Quem tem interesse em aumentar o peso da sua mochila?
Cliente? Gerente?
Objetivos
Introduzir as Metodologias geis e seu Manifesto Introduzir Extreme Programming, seus princpios e prticas Comparar e relacionar XP e RUP Comparar e relacionar XP e CMM O que buscamos: Aguar a curiosidade e o interesse de todos os participantes em analisar e se aprofundar nas metodologias geis, em XP e outros processos de desenvolvimento, com vistas a melhorar o desenvolvimento de software de sua organizao e, conseqentemente, do Brasil.
Mitos
Podemos coletar todos os requisitos de uma s vez. Podemos antecipar todas as mudanas. Podemos controlar completamente todo o projeto de software. Custo de mudana , por natureza, maior conforme o projeto avana.
Benefcios da adoo
Custos mais baixos ou no alterados Melhoria da produtividade Melhoria da qualidade do software produzido Melhoria da satisfao dos clientes e para o negcio
O que a XP?
XP uma metodologia lightweight(ou gil) para equipes pequenas e mdias, desenvolvendo software a partir de requisitos vagos e em rpida e constante mudana. XP descreve uma maneira de desenvolver software que combina melhores prticas existentes na rea h muito tempo. Na XP essas prticas se complementam e controlam uma outra. A diferena da XP que ela pega essas prticas do senso comum e as utiliza a nveis extremos. XP o mais importante movimento de nosso campo hoje. Eu vejo que ele ser to essencial para a gerao presente quanto o SEI e o CMM foram para a anterior. - Tom DeMarco
Os quatro valores da XP
Comunicao Simplicidade Feedback Coragem
As doze prticas da XP
Processo de Planejamento ( Planning Game ) Releases Curtos Met fora Projeto(Design) Simples Testes Refactoring Programa o em Pares Propriedade Coletiva do C digo Integra o Contnua Semana de 40 Horas On-Site Customer (Cliente sempre presente) Padr es de Codifica o
Releases Curtos
Cada release deve ser to curto quanto possvel, contendo os requisitos de negcio de maior valor para o cliente. O release deve fazer sentido como um todo. No deve existir um release com metade de um requisito(o que no faz sentido). Releases Curtos promovem o desenvolvimento iterativo e incremental. Se iteraes curtas so boas(como reconhecido por Frederick Brooks), elas sero feitas bem pequenas - alguns dias, semanas ou um ms por vez melhor que seis meses ou um ano com antecedncia.
Metfora
A metfora um meio de ajudar a todos(clientes e desenvolvedores) a compreender melhor o objetivo e propsito do produto sendo criado. Pode ser considerado como a arquitetura de um sistema, vista como uma anlise de domnio. Desse modo, pode-se construir entidades de software com alta coeso e baixo acoplamento entre si. Se arquitetura importante, todos iro trabalhar definindo-a e refinando-a o tempo todo.
Prticas de XP
Pair Programming Test Driven Development Simple Design Refactoring
O cdigo propriedade da equipe. Dessa maneira, todos os desenvolvedores se familiarizam com todo o cdigo.
Integrao Contnua
Cdigo integrado e testado depois de algumas horas(no mximo no final de cada dia). No final de um episdio de desenvolvimento, o cdigo integrado e todos os casos de teste devem rodar a 100%. Essa tcnica j existe h tempos e foi conhecida como daily builds and smoke tests, largamente utilizada na Microsoft. Se integrao de cdigo importante, ela ser feita vrias vezes ao dia.
Padres de Codificao
Cada equipe deve possuir padres de codificao que sero usados por todos. Idealmente, sero decididos por consenso. Cada um dos padres deve ter o claro objetivo de ajudar a melhorar a comunicao da equipe. Todos devem concordar em utiliz-los.
XP na perspectiva da RUP
A RUP(e o Unified Process-UP) um framework de processo, enquanto a XP um processo em si, j definido e com limites claros. A RUP precisa ser customizada. Quatro dessas customizaes apareceram que possuem grande semelhana com a XP e buscam agilizar o RUP. Agile UP, de Craig Larman Processo dX, Robert Martin Devido ao grande sucesso da XP entre os desenvolvedores, a nova verso da RUP(2002) j vem com uma customizao para projetos pequenos que possui caractersticas de metodologias geis e da XP. A Rational tambm j disponibilizou um plugin de XP para o RUP, em seu portal para clientes RDN(Rational Developer Network). Duas diferenas importantes entre o Agile UP e a XP: A UP recomenda a criao incremental de casos de uso e requisitos no-funcionais. A UP recomenda mais tempo gasto com diagramao e modelagem visual, e possui atividades mais detalhadas sobre isso. Os principais proponentes da XP recomendam pouco tempo gasto nessas atividades e com um nvel de formalismo menor. Resumindo, alguns autores consideram a XP(apesar das diferenas) como uma espcie de instncia customizada da RUP.
XP na perspectiva do CMM
As contradies vistas entre XP e o CMM so mitos. O CMM um menu e no diz como desenvolver software. O CMM no impe uma determinada metodologia ou ciclo de vida. XP no um processo indisciplinado. Pelo contrrio, ele explicitamente definido, gerenciado, medido, controlado e efetivo na definio de Paulk. Como resultado, excluindo as KPAs de Gerenciamento de Subcontratao e SQA, XP devidamente implementado em uma organizao pode atingir o CMM nvel 2 e, com um pouco mais de trabalho, o nvel 3.
XP na perspectiva do CMM
XP um outro exemplo de um bom processo de software(ou filosofia) que, pelo menos dentro de um contexto aproriado, pode satisfazer muitos objetivos do CMM nvel 2 e 3. Segundo Mark Paulk, um dos pais do CMM, a seguinte tabela se aplica:
Concluses
Acredito, como defendido por Alistair Cockburn, que cada tipo de organizao e/ou projeto demanda uma metodologia e processos de desenvolvimento diferentes. Parafraseando Frederick Brooks: No existe bala de prata. O vital para o sucesso de qualquer iniciativa para atingir a meta da Melhoria do Processo de Software que ela tenha apoio da Alta Gerncia e realmente seja vista como fundamental e urgente para a organizao(seguindo o processo de oito etapas de Kotter). Ainda assim, a controvrsia continuar por um certo tempo, pois o paradigma das metodologias geis cria radicalizaes de ambos os lados e que, como vimos, no passam de mitos. Lembrando Martin Fowler: Qual a diferena entre um metodologista e um terrorista? Resposta: Voc pode negociar com um terrorista.