Metodologias ágeis e CMMi combinam?  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
carneiro
JavaEvangelist
[Avatar]

Membro desde: 07/04/2005 11:37:42
Mensagens: 328
Offline

Olá pessoal,

É possível conciliar metodologias ágeis e CMMi, trabalhar com Scrum/XP e também seguir os processos do CMMi?

Qual é a opinião de vocês?

This message was edited 1 time. Last update was at 05/09/2007 12:58:32


Davi Luan Carneiro
Desenvolvedor JEE
[Email] [MSN]
rodrigoy
GUJ Ranger
[Avatar]

Membro desde: 18/04/2006 01:06:28
Mensagens: 758
Localização: São Paulo
Offline

A motorola tem CMMI5 e utiliza SCRUM... maturidade do processo não tem muita relação com práticas de engenharia como um todo. Mas o CMMI tem algumas coisas chatas que agilistas naturalmente não gostam e creio que o XP não atende naturalmente. Uma delas é a matriz de rastreabilidade dos requisitos.

(agilistas gostam de manter muita coisa no código, agilistas gostam de considerar os testes como sendo os próprios requisitos. já tentou alguma vez explicar isso para alguém que tem sangue CMMi correndo na veia?)


Rodrigo Yoshima
www.ASPERCOM.com.br

Próximas Turmas:
São Paulo: Scrum 28/agosto | OOAD-UML 13/setembro

Débito Técnico Blog: blog.aspercom.com.br
[WWW]
mcbarsotti
JavaEvangelist
[Avatar]

Membro desde: 11/05/2006 12:10:38
Mensagens: 329
Offline

você até consegue usar uma metodologia para desenvolver rapido e tudo mais, mas quando cair na documentação do CMMI, tudo oque você fez rapido vai por agua abaixo...

Na CPM é CMMI 5, até se desenvolve um sistema rapido, mas quando chega na doc... lagrimas!!!

abrçs

Obs.: O texto acima não é uma verdade soberana, não precisa cortar os pulsos caso não concorde.

[]'s
[MSN]
mcbarsotti
JavaEvangelist
[Avatar]

Membro desde: 11/05/2006 12:10:38
Mensagens: 329
Offline

rodrigoy wrote:A motorola tem CMMI5 e utiliza SCRUM... maturidade do processo não tem muita relação com práticas de engenharia como um todo. Mas o CMMI tem algumas coisas chatas que agilistas naturalmente não gostam e creio que o XP não atende naturalmente. Uma delas é a matriz de rastreabilidade dos requisitos.

(agilistas gostam de manter muita coisa no código, agilistas gostam de considerar os testes como sendo os próprios requisitos. já tentou alguma vez explicar isso para alguém que tem sangue CMMi correndo na veia?)



Exatamente!

Obs.: O texto acima não é uma verdade soberana, não precisa cortar os pulsos caso não concorde.

[]'s
[MSN]
Kenobi
GUJ Master
[Avatar]

Membro desde: 14/11/2003 13:06:37
Mensagens: 1678
Localização: Brasil
Offline

Sinceramente é tentar adaptar uma coisa para encaixar na outra e não ter sucesso ... mundos completamente diferentes, vai perder muito o principal das metologias ágeis - agilidade.

Aliás, isso me lembrou o famoso quadro da troca de lâmpadas com CMMI5:


----------------------------------------------------------
SOA|EXPERT - http://www.soaexpert.com.br
SOA de um jeito simples e eficiente.
[WWW] [MSN] [ICQ]
Rubem Azenha
GUJ Master
[Avatar]

Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline

rodrigoy wrote:
(agilistas gostam de manter muita coisa no código, agilistas gostam de considerar os testes como sendo os próprios requisitos. já tentou alguma vez explicar isso para alguém que tem sangue CMMi correndo na veia?)


Testes? Vc diz testes unitários??? Eu sempre achei que o requisito deveria definir como os testes devem ser feitos, e não o contrário... Incluside existe o conceito de RBT (Requiment Based Testing). Alguém já trabalhou em algum ambiente em que os testes são os requisitos?



Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
[WWW]
ZehOliveira
GUJ Ranger

Membro desde: 12/12/2003 22:13:49
Mensagens: 964
Localização: Maceio-AL
Offline

microfilo wrote:
rodrigoy wrote:
(agilistas gostam de manter muita coisa no código, agilistas gostam de considerar os testes como sendo os próprios requisitos. já tentou alguma vez explicar isso para alguém que tem sangue CMMi correndo na veia?)


Testes? Vc diz testes unitários??? Eu sempre achei que o requisito deveria definir como os testes devem ser feitos, e não o contrário... Incluside existe o conceito de RBT (Requiment Based Testing). Alguém já trabalhou em algum ambiente em que os testes são os requisitos?


Não. Quando ele diz 'testes' não quer dizer unicamente 'testes unitários'. Ele fala também de testes de integração, de aceitação, de regressão, etc.
Rubem Azenha
GUJ Master
[Avatar]

Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline

ZehOliveira wrote:
microfilo wrote:
rodrigoy wrote:
(agilistas gostam de manter muita coisa no código, agilistas gostam de considerar os testes como sendo os próprios requisitos. já tentou alguma vez explicar isso para alguém que tem sangue CMMi correndo na veia?)


Testes? Vc diz testes unitários??? Eu sempre achei que o requisito deveria definir como os testes devem ser feitos, e não o contrário... Incluside existe o conceito de RBT (Requiment Based Testing). Alguém já trabalhou em algum ambiente em que os testes são os requisitos?


Não. Quando ele diz 'testes' não quer dizer unicamente 'testes unitários'. Ele fala também de testes de integração, de aceitação, de regressão, etc.


Ótimo, mas mesmo nesse caso ainda acho que não servem como requisitos.



Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
[WWW]
fabiofalci
GUJ Master
[Avatar]

Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline

http://www.ddj.com/architect/201202684
[WWW] [MSN] [ICQ]
s4nchez
Virtual Machine Man
[Avatar]

Membro desde: 05/06/2006 11:35:55
Mensagens: 674
Localização: London, UK
Offline

microfilo wrote:
ZehOliveira wrote:
microfilo wrote:
rodrigoy wrote:
(agilistas gostam de manter muita coisa no código, agilistas gostam de considerar os testes como sendo os próprios requisitos. já tentou alguma vez explicar isso para alguém que tem sangue CMMi correndo na veia?)


Testes? Vc diz testes unitários??? Eu sempre achei que o requisito deveria definir como os testes devem ser feitos, e não o contrário... Incluside existe o conceito de RBT (Requiment Based Testing). Alguém já trabalhou em algum ambiente em que os testes são os requisitos?


Não. Quando ele diz 'testes' não quer dizer unicamente 'testes unitários'. Ele fala também de testes de integração, de aceitação, de regressão, etc.


Ótimo, mas mesmo nesse caso ainda acho que não servem como requisitos.


O "requisito" que você se refere é só a especificação do requisito.

Requisito é o que precisa ser implementado. Como ele é documentado depende do projeto. Já trabalhei em projeto onde cada funcionalidade era resumida em uma frase e especificada num teste de aceitação automatizado. O requisito definiu o teste, com a vantagem que não precisamos de um documento a mais pra ser atualizado. Além disso neste caso o teste sempre vai estar atualizado com o sistema, e ainda vai sempre dar o feedback que está tudo funcionando como esperado. Pra que mais documentação?

This message was edited 1 time. Last update was at 04/09/2007 12:48:07


Ivan Sanchez | coding dojo | blog | twitter
[WWW]
rodrigoy
GUJ Ranger
[Avatar]

Membro desde: 18/04/2006 01:06:28
Mensagens: 758
Localização: São Paulo
Offline

microfilo wrote:
Ótimo, mas mesmo nesse caso ainda acho que não servem como requisitos.


Imagine que vc escreve:

O sistema não deve permitir a aprovação de pedidos com desconto maior que 15%.

Agora, imagine que vc escreve (este código não compila):



Qual a diferença na sua opinião?

Você concorda que não existe requisitos primeiro, design depois, codificacao depois, teste depois? Será que não existe uma maneira de fazer tudo isso ao mesmo tempo?

Rodrigo Yoshima
www.ASPERCOM.com.br

Próximas Turmas:
São Paulo: Scrum 28/agosto | OOAD-UML 13/setembro

Débito Técnico Blog: blog.aspercom.com.br
[WWW]
Rubem Azenha
GUJ Master
[Avatar]

Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline

Por mais ágil que sua metodologia ou ambiente de desenvolvimento for, acredito sim no primeiro momento do projeto, deve-se definir escopo\levantar requisitos, nem que isso seja feito num "alto nível". É claro que com o passar do tempo, no ciclo de vida dos projetos, esses requisitos vão sendo detalhados, aperfeiçoados e corrigidos, isso fatalmente será necessário. Mas é óbvio que um levamento de requisitos\escopo incial é feito. E acho que isso deve ser armazenado de alguma forma e usado, de alguma maneira, como subsidio na hora de desenvolvimento.

Mas de qualquer maneiro, ainda sim vejo a importância de algo que documente os requisitos do software e não acho um teste (no seu exemplo, um teste unitário) a melhor maneira de fazer isso. O cara vai ter que saber programar em Java para entender o requisito?

É claro que a forma como os requisitos são elaborados e armazenados\gerenciados não deve ser algo totalmente amarrado, com textos quilometricos e redundantes.



Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
[WWW]
rodrigoy
GUJ Ranger
[Avatar]

Membro desde: 18/04/2006 01:06:28
Mensagens: 758
Localização: São Paulo
Offline

microfilo wrote:Por mais ágil que sua metodologia ou ambiente de desenvolvimento for, acredito sim no primeiro momento do projeto, deve-se definir escopo\levantar requisitos, nem que isso seja feito num "alto nível". É claro que com o passar do tempo, no ciclo de vida dos projetos, esses requisitos vão sendo detalhados, aperfeiçoados e corrigidos, isso fatalmente será necessário. Mas é óbvio que um levamento de requisitos\escopo incial é feito. E acho que isso deve ser armazenado de alguma forma e usado, de alguma maneira, como subsidio na hora de desenvolvimento.


Sim, mas não é isso que está em discussão. A discussão é se é possível tomar os testes como requisitos. Não importando se são testes unitários. Aliás, senti um tom de desprezo por sua parte com relação aos testes unitários (posso estar errado) . Se a sua aplicação está baseada num domain model rico 100% das regras de negócio podem ser cobertas com testes unitários. Se vc quiser fazer um teste dos objetivos vc concentra os testes na façade e o efeito vai ser o mesmo.

Investimento em concepção existe sim, mas na maioria dos projetos não toma mais que 4 horas. É de altíssimo nível. Se vc passar 1 hora com o Sponsor do projeto e sair dessa reunião com uma lista macro de funcionalidade ordenada por business value a concepção acabou alí mesmo. A partir disso é desenvolvimento iterativo com pouquíssima atividade up-front.

microfilo wrote:
Mas de qualquer maneiro, ainda sim vejo a importância de algo que documente os requisitos do software e não acho um teste (no seu exemplo, um teste unitário) a melhor maneira de fazer isso. O cara vai ter que saber programar em Java para entender o requisito?


OK... toda solução existe efeito colateral, mas como vc colocou, é a sua opinião... mas para manifestar a minha opinião, NÃO VEJO O MÍNIMO SENTIDO EM CONTRATAR UM CARA QUE NÃO PROGRAME EM JAVA SE O PROJETO É EM JAVA.

Rodrigo Yoshima
www.ASPERCOM.com.br

Próximas Turmas:
São Paulo: Scrum 28/agosto | OOAD-UML 13/setembro

Débito Técnico Blog: blog.aspercom.com.br
[WWW]
s4nchez
Virtual Machine Man
[Avatar]

Membro desde: 05/06/2006 11:35:55
Mensagens: 674
Localização: London, UK
Offline

rodrigoy wrote:
microfilo wrote:Por mais ágil que sua metodologia ou ambiente de desenvolvimento for, acredito sim no primeiro momento do projeto, deve-se definir escopo\levantar requisitos, nem que isso seja feito num "alto nível". É claro que com o passar do tempo, no ciclo de vida dos projetos, esses requisitos vão sendo detalhados, aperfeiçoados e corrigidos, isso fatalmente será necessário. Mas é óbvio que um levamento de requisitos\escopo incial é feito. E acho que isso deve ser armazenado de alguma forma e usado, de alguma maneira, como subsidio na hora de desenvolvimento.


Sim, mas não é isso que está em discussão. A discussão é se é possível tomar os testes como requisitos. Não importando se são testes unitários. Aliás, senti um tom de desprezo por sua parte com relação aos testes unitários (posso estar errado) . Se a sua aplicação está baseada num domain model rico 100% das regras de negócio podem ser cobertas com testes unitários. Se vc quiser fazer um teste dos objetivos vc concentra os testes na façade e o efeito vai ser o mesmo.

Investimento em concepção existe sim, mas na maioria dos projetos não toma mais que 4 horas. É de altíssimo nível. Se vc passar 1 hora com o Sponsor do projeto e sair dessa reunião com uma lista macro de funcionalidade ordenada por business value a concepção acabou alí mesmo. A partir disso é desenvolvimento iterativo com pouquíssima atividade up-front.


Só pra reforçar a sua opinião: levantamento inicial de requisitos deve servir apenas pra "vender" o projeto. O grande erro é que as pessoas têm pena de depois substituir estes documentos por testes (que pro desenvolvimento agregam MUITO mais) e querem ficar carregando-os até o fim do projeto só pra não sentir que o trabalho dos analistas foi "jogado fora"

Ivan Sanchez | coding dojo | blog | twitter
[WWW]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

mcbarsotti wrote:você até consegue usar uma metodologia para desenvolver rapido e tudo mais, mas quando cair na documentação do CMMI, tudo oque você fez rapido vai por agua abaixo...


Desenvolvimento rápido e desenvolvimento ágil são coisas diferentes.

http://www.agilemanifesto.org

mcbarsotti wrote:
Na CPM é CMMI 5, até se desenvolve um sistema rapido, mas quando chega na doc... lagrimas!!!

abrçs


"Quando chega na documentação"? Nossa, vocês ainda usam waterfall?

Cuidado: http://blog.fragmental.com.br/2007/07/24/contratando-agilistas-retardatarios/

This message was edited 1 time. Last update was at 05/09/2007 20:10:55


Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team