User Stories X use cases  XML
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Autor Mensagem
rodrigoy
Virtual Machine Man
[Avatar]

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

sergiotaborda wrote:
i.e. em lado algum vi escrito que Agile /Stories significa ignorar a fase de levantamento. Como se relacionam estas duas coisas: levantamento de requisitos e stories ?


Nos métodos ágeis é muito comum que o analista de negócio, o cliente ou Product Owner direcione a equipe através de Stories. Isso é, uma grande diferença entre Scrum, XP e RUP. Os dois primeiros não são tão focados em análise do negócio e de requisitos: as coisas iniciam com Stories a serem construídas. Isso funciona perfeitamente com um cliente interessado, presente, bem resolvido e capaz de controlar escopo, mas você perde em documentação do negócio (não há FIT, RSpec, TDD que documente o negócio, alguém discorda? dá pra escrever um documento de visão em JUnit).

O RUP é mais completo nesse aspecto. Abrange Análise de Negócio, se aprofunda em requisitos e possui um conjunto de práticas e modelo de artefatos pra isso.

Não é que stories ignoram levantamento de requisitos, basicamente muito dessa responsabilidade é repassada para o Prod. Owner, Cliente Presente ou um Analista de Negócios da equipe.

Rodrigo Yoshima
www.ASPERCOM.com.br

Próximas Turmas:
São Paulo: Scrum 27/fev | Requisitos 02/mar | CSM 22/mar | OOAD-UML 05/abr

Goiânia: Scrum 05/mar | DDD 07/mar

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

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

rodrigoy wrote:
Nos métodos ágeis é muito comum que o analista de negócio, o cliente ou Product Owner direcione a equipe através de Stories. Isso é, uma grande diferença entre Scrum, XP e RUP. Os dois primeiros não são tão focados em análise do negócio e de requisitos: as coisas iniciam com Stories a serem construídas. Isso funciona perfeitamente com um cliente interessado, presente, bem resolvido e capaz de controlar escopo, mas você perde em documentação do negócio (não há FIT, RSpec, TDD que documente o negócio, alguém discorda? dá pra escrever um documento de visão em JUnit).

O RUP é mais completo nesse aspecto. Abrange Análise de Negócio, se aprofunda em requisitos e possui um conjunto de práticas e modelo de artefatos pra isso.

Não é que stories ignoram levantamento de requisitos, basicamente muito dessa responsabilidade é repassada para o Prod. Owner, Cliente Presente ou um Analista de Negócios da equipe.


Isso não é verdade. Eu já apliquei metodologias ágeis onde clientes não estavam presentes -inclusive no meu projeto atual. Metodologias ágeis em geral não falam sobre análise de negócios bem como não falam em arquitetura de camadas, domain-driven design ou outra prática técnica. O cliente não é responsável pela documentação, ele é responsável por saber o que quer, e a documentação está expressa de diversas formas: histórias, testes e código são as mais comuns.

Se você não consegue documentar os processos de negócios relativos à aplicação de uma maneira automatizada (i.e. testes) não está fazendo bom uso de JUnit, RSpec, FIT e etc. De qualquer maneira, ainda com a documentação executável, o cliente pode querer manter uma documentação no formato que quiser, não há qualquer problema quanto a isso.

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]
Alexandro.Almeida
JavaBaby
[Avatar]

Membro desde: 25/07/2008 09:00:19
Mensagens: 82
Localização: Itu
Offline

rodrigoy wrote:
Esse caso de fato é muito banal, porém, ocorrem situações como um sistema de Call Center Vendas onde 85% das funcionalidades estão num único caso de uso e de lá se extraem umas 20 histórias. Aí o caso de uso é bom para concentrar tudo.



Neste caso eu não poderia dividir estes 20 ou mais casos de uso em casos de uso de inclusão e extensão? Ultimamente tenho feito isso e os resultados estão sendo bons. Cada caso de uso fica menor e evito aqueles monstros com 20 cenários e 400 fluxos alternativoms em um único caso de uso.

--
Alexandro D. Almeida

Meu antigo perfl perdido http://www.guj.com.br/user/profile/15752.java
[MSN]
rodrigoy
Virtual Machine Man
[Avatar]

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

pcalcado wrote:
Isso não é verdade. Eu já apliquei metodologias ágeis onde clientes não estavam presentes -inclusive no meu projeto atual. Metodologias ágeis em geral não falam sobre análise de negócios bem como não falam em arquitetura de camadas, domain-driven design ou outra prática técnica. O cliente não é responsável pela documentação, ele é responsável por saber o que quer, e a documentação está expressa de diversas formas: histórias, testes e código são as mais comuns.




Calma lá Shoes... o assunto agora (sergiotaborda e depois eu) é Levantamento de Requisitos e Stories dentro de métodos ágeis. Eu não disse que métodos ágeis requerem cliente presente, mas sim que para a parte de requisitos isso é importante para usar Stories do jeito que o XP prega. Você concorda que com cliente presente este tem grande responsabilidade de análise e levantamento de requisitos? Não é ele que escreve as histórias?

Acho que você não compreendeu a minha colocação.

pcalcado wrote:
Se você não consegue documentar os processos de negócios relativos à aplicação de uma maneira automatizada (i.e. testes) não está fazendo bom uso de JUnit, RSpec, FIT e etc. De qualquer maneira, ainda com a documentação executável, o cliente pode querer manter uma documentação no formato que quiser, não há qualquer problema quanto a isso.


Não estou falando só referente à aplicação e só a processos de negócio. Me diga então como eu faço para escrever um documento de visão com JUnit, RSpec, FIT. Tem algum paper, artigo, livro que explique como é que faz isso? Você já fez isso?

Foi bem fora de contexto essas suas colocações e temo que elas possam desvirtuar o tópico.

Rodrigo Yoshima
www.ASPERCOM.com.br

Próximas Turmas:
São Paulo: Scrum 27/fev | Requisitos 02/mar | CSM 22/mar | OOAD-UML 05/abr

Goiânia: Scrum 05/mar | DDD 07/mar

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

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

Alexandro.Almeida wrote:
Neste caso eu não poderia dividir estes 20 ou mais casos de uso em casos de uso de inclusão e extensão? Ultimamente tenho feito isso e os resultados estão sendo bons. Cada caso de uso fica menor e evito aqueles monstros com 20 cenários e 400 fluxos alternativoms em um único caso de uso.


Esqueça inclusão e extensão... essas ferramentas não foram feitas para decomposição funcional. Casos de uso não tem decomposição funcional. Não adianta deturpar a técnica. Para ter uma visão parcial de um caso de uso grande a técnica nos diz para usar cenários.

Rodrigo Yoshima
www.ASPERCOM.com.br

Próximas Turmas:
São Paulo: Scrum 27/fev | Requisitos 02/mar | CSM 22/mar | OOAD-UML 05/abr

Goiânia: Scrum 05/mar | DDD 07/mar

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

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

rodrigoy wrote:
pcalcado wrote:
Isso não é verdade. Eu já apliquei metodologias ágeis onde clientes não estavam presentes -inclusive no meu projeto atual. Metodologias ágeis em geral não falam sobre análise de negócios bem como não falam em arquitetura de camadas, domain-driven design ou outra prática técnica. O cliente não é responsável pela documentação, ele é responsável por saber o que quer, e a documentação está expressa de diversas formas: histórias, testes e código são as mais comuns.




Calma lá Shoes... o assunto agora (sergiotaborda e depois eu) é Levantamento de Requisitos e Stories dentro de métodos ágeis. Eu não disse que métodos ágeis requerem cliente presente, mas sim que para a parte de requisitos isso é importante para usar Stories do jeito que o XP prega. Você concorda que com cliente presente este tem grande responsabilidade de análise e levantamento de requisitos? Não é ele que escreve as histórias?

Acho que você não compreendeu a minha colocação.


É ótimo que o cliente escreva as histórias mas não é obrigação. Se ele não estiver presente -como acotnece em muitos casos- é dever do analista de negócios (ou de quem exercer este papel) escrever e mantêr histórias. Já trabalhei em muitos rojetos onde os clientes nem sabiam que existiam essas tais histórias, tudo ficava internamente na equipe de desenvolvimento. Funcionaria melhor com o cliente presente? Claro, mas isso não quer dizer que não seja eficiente mesmo que ele não esteja.

rodrigoy wrote:
pcalcado wrote:
Se você não consegue documentar os processos de negócios relativos à aplicação de uma maneira automatizada (i.e. testes) não está fazendo bom uso de JUnit, RSpec, FIT e etc. De qualquer maneira, ainda com a documentação executável, o cliente pode querer manter uma documentação no formato que quiser, não há qualquer problema quanto a isso.


Não estou falando só referente à aplicação e só a processos de negócio. Me diga então como eu faço para escrever um documento de visão com JUnit, RSpec, FIT. Tem algum paper, artigo, livro que explique como é que faz isso? Você já fez isso?

Foi bem fora de contexto essas suas colocações e temo que elas possam desvirtuar o tópico.


Eu estou apenas respondendo às suas colocações -com as quais não concordo- desta forma o contexto delas é seu post anterior. Se seu post anterior.

Qualquer paper, artigo ou livro vai te perguntar uma coisa: por que você precisa de um documento de visão em primeiro lugar?

Eu não falei que dê para escrever um documento de visão estilão RUP (apesar de ter minhas dúvidas que não dá), falei de documentação em geral e, especialmente, documentação que seja útil.

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]
rodrigoy
Virtual Machine Man
[Avatar]

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

Shoes... a gente não está se entendendo!

http://blog.fragmental.com.br/2008/07/18/rastreabilidade-em-user-stories/#comment-96077

Antes de se chegar a Stories vc mesmo concordou que existe uma coisa chamada "Análise de Negócios". Isso estuda a viabilidade do projeto, os objetivos de ROI, os envolvidos, os problemas, o escopo e etc... Isso tudo poderia fazer parte da visão, e nenhum analista de negócios responsável deixaria isso ad-hoc. É mais ou menos nisso que estou focando. Com relação a isso:

- o RUP abrange isso tudo
- o Scrum personifica isso no papel do Product Owner (que é o financiador)
- o XP personifica isso com Cliente Presente (que é o financiador)

O Scrum ao menos cita a visão. O RUP dá uma grande enfase à visão. O XP crê que o cliente presente tenha uma visão. Um documento de visão é importante sim e não me lembro de nenhum autor que diga o contrário. O código não é tudo. Existem muitas outras coisas antes de System Requirements.

De qualquer fato, a questão é bem complexa pensando por este lado. O controle de escopo na maioria das vezes está nas mãos de quem está controlando a fila de construção, até a forma de contratação estaria envolvida na discussão. IMHO se você não tem cliente presente você precisa documentar o negócio antes de ter as Stories.

(eh um bom assunto para escrever a respeito, vou ver se coloco algo no blog)

Rodrigo Yoshima
www.ASPERCOM.com.br

Próximas Turmas:
São Paulo: Scrum 27/fev | Requisitos 02/mar | CSM 22/mar | OOAD-UML 05/abr

Goiânia: Scrum 05/mar | DDD 07/mar

Débito Técnico Blog: blog.aspercom.com.br
[WWW]
Alexandro.Almeida
JavaBaby
[Avatar]

Membro desde: 25/07/2008 09:00:19
Mensagens: 82
Localização: Itu
Offline

rodrigoy wrote:

Esqueça inclusão e extensão... essas ferramentas não foram feitas para decomposição funcional. Casos de uso não tem decomposição funcional. Não adianta deturpar a técnica. Para ter uma visão parcial de um caso de uso grande a técnica nos diz para usar cenários.


Rodrigo, Não estou falando de decomposição funcional, acho que estamos com o caso de uso base diferente na cabeça.

Onde eu aplico os extends e includes são em telas do tipo "Painel de controle" onde a partir de uma unica tela eu tenho à disposição muitas funcionalidades distintas. Seria muito complicado neste caso colocar tudo em um unico caso de uso.

PS: Você não foi muito radical com o "Esqueça inclusão e extensão"? Ou você estava se referindo apenas nos casos em que eles são usados com a finalidade de decomposição funcional?


--
Alexandro D. Almeida

Meu antigo perfl perdido http://www.guj.com.br/user/profile/15752.java
[MSN]
pcalcado
Moderador
[Avatar]

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

rodrigoy wrote:
Antes de se chegar a Stories vc mesmo concordou que existe uma coisa chamada "Análise de Negócios". Isso estuda a viabilidade do projeto, os objetivos de ROI, os envolvidos, os problemas, o escopo e etc... Isso tudo poderia fazer parte da visão, e nenhum analista de negócios responsável deixaria isso ad-hoc. É mais ou menos nisso que estou focando. Com relação a isso:

- o RUP abrange isso tudo
- o Scrum personifica isso no papel do Product Owner (que é o financiador)
- o XP personifica isso com Cliente Presente (que é o financiador)



Meu ponto é que acima você implicou que com metodologias ágeis (seja qual nome estejamos usando para elas hoje) não existe esta análise, na verdade afirmou que não existe documentação do negócio. Isto não procede, a documentação do negócio apenas fica a cargo do responsável, é um processo externo (e não necessariamente paralelo) ao desenvolvimento de software.

Muitas vezes o software é desenvolvido ao mesmo tempo que é feita a análise de negócios. Muitas vezes a análise é feita antes.

rodrigoy wrote:
O Scrum ao menos cita a visão. O RUP dá uma grande enfase à visão. O XP crê que o cliente presente tenha uma visão. Um documento de visão é importante sim e não me lembro de nenhum autor que diga o contrário. O código não é tudo. Existem muitas outras coisas antes de System Requirements.


O Scrum pode citar a visão mas eu não me recordo de citar o documento de visão. É como requisitos, nenhuma metodologia menospreza requisitos mas metodologias ágeis não falam em documento de requisitos.

Você fala "código não é tudo". Acho que você está se referindo ao código do sistema. Eu não. Eu estou falando de documentação executável e verificável. Por um acaso ela está expressa em código, simplesmente porque não temos modo melhor de fazê-lo hoje em dia. É claro que estou falando em documentação do sistema. Mesmo tendo alguns anos como "análista de sistemas" (seja lá o que isso signifique) eu nunca iria dizer para um especialista no negócio (i.e. cliente) qual a melhor maneira de documentar o processo de negócio dele. Eu digo, como desenvolvedor, qual a melhor maneira de documentar o meu processo.

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]
MarceloAraujo
What is classpath?
[Avatar]

Membro desde: 01/05/2008 20:08:30
Mensagens: 6
Localização: Rio de Janeiro
Offline

Comparando o exemplo de UC do Gustavo e o de história do Rodrigo eu chego a algumas conclusões e duvidas. Me corrijam se estiver errado.

UC - Reservar Apartamento

Fluxo básico
1. Atendente informa hotel, datas e tipo de apartamento
2. Sistema fornece disponibilidade e preço
3. Atendente informa CPF do cliente e confirma
4. Sistema exibe um identificador (R1)
5. Sistema envia a confirmação por e-mail

(R1 - Regra de negócio, apenas clientes aprovados poderão reservar apartamentos)

Fluxo Alternativo: Quarto não disponível
(substitui passo 2)
Sistema exibe mensagem de indisponibilidade.
(volta passo 1)


História - Um atendente pode reservar quartos

Critérios de aceitação:

- Testar com um cliente aprovado e com disponibilidade de quarto
- Testar com cliente aprovado e sem disponibilidade de quarto
- Testar envio do e-mail
- Testar com um cliente não aprovado


Conclusões

1 - O caso de uso e a história atenderam a uma mesma necessidade do cliente que seria: um atendente poder reservar quartos.
2 - A história manteve seu foco em atender a necessidade do cliente usando critérios de aceitação e ponto final, simples assim.
3 - O caso de uso ficou maior do que a história e também uma pouco mais difícil de entender porque ele alem de mapear os critérios necessários para se atender a necessidade do usuário, também se preocupou em mapear o fluxo de informação que irá ocorrer entre o usuário e o sistema (atendente informa XXX, sistema exibe YYY, Quarto não disponível?, Substituir passo 2, Voltar passo 1, etc).

Dúvidas

Qual a vantagem de se representar fluxo de informação de forma textual?
Criar uma história simples e rabiscar um protótipo não seria mais direto e de fácil entendimento?




Marcelo C. Araújo
http://twitter.com/marceloaraujo
http://www.timebox.com.br

[WWW]
Alexandro.Almeida
JavaBaby
[Avatar]

Membro desde: 25/07/2008 09:00:19
Mensagens: 82
Localização: Itu
Offline

MarceloAraujo wrote:
Qual a vantagem de se representar fluxo de informação de forma textual?
Criar uma história simples e rabiscar um protótipo não seria mais direto e de fácil entendimento?


Porque alguns clientes pedem que os casos de uso sejam entregues como parte da documentação do sistema*, e muitos deles não iram aceitar este "rascunhos".

Quando o caso de uso tem a finalidade de ser apenas uma ferramenta durante o desenvolvimento do sistema, os rascunhos em papel e os diagramas (em papel ou em alguma ferramenta) talvez sejam mais uteis.

*Este é um ponto iteressante, caso de uso é documentação do sistema ou apenas uma ferramenta usada na construção do sistema?


--
Alexandro D. Almeida

Meu antigo perfl perdido http://www.guj.com.br/user/profile/15752.java
[MSN]
MarceloAraujo
What is classpath?
[Avatar]

Membro desde: 01/05/2008 20:08:30
Mensagens: 6
Localização: Rio de Janeiro
Offline

Alexandro.Almeida wrote:
MarceloAraujo wrote:
Qual a vantagem de se representar fluxo de informação de forma textual?
Criar uma história simples e rabiscar um protótipo não seria mais direto e de fácil entendimento?


Porque alguns clientes pedem que os casos de uso sejam entregues como parte da documentação do sistema*, e muitos deles não iram aceitar este "rascunhos".

Quando o caso de uso tem a finalidade de ser apenas uma ferramenta durante o desenvolvimento do sistema, os rascunhos em papel e os diagramas (em papel ou em alguma ferramenta) talvez sejam mais uteis.

*Este é um ponto iteressante, caso de uso é documentação do sistema ou apenas uma ferramenta usada na construção do sistema?



Entendo esse ponto de vista, já passei por projetos exatamente assim, onde a área de TI do cliente obrigava a entrega de determinados documentos. Mas a questão que quero levantar é relativa a benefício. O que faz uma pessoa, seja cliente ou desenvolvedor, preferir representar fluxo de informação de forma textual em casos de uso formais? Não seria falta de conhecimento sobre técnicas mais ágeis para o mesmo objetivo? Ou então aquela falsa sensação de segurança que um documento mais formal acaba passando pra gerentes acostumados com desenvolvimento em cascata?

Marcelo C. Araújo
http://twitter.com/marceloaraujo
http://www.timebox.com.br

[WWW]
Alexandro.Almeida
JavaBaby
[Avatar]

Membro desde: 25/07/2008 09:00:19
Mensagens: 82
Localização: Itu
Offline

MarceloAraujo wrote:... Ou então aquela falsa sensação de segurança que um documento mais formal acaba passando pra gerentes acostumados com desenvolvimento em cascata?


Bingo !!!

Mas de qualquer forma, acredito que os casos de uso com seu fluxo de informação de forma textual seja mais util nos casos em que não temos a oportunidade de termos o cliente ou um bom PO dentro do projeto.

This message was edited 1 time. Last update was at 30/07/2008 14:20:36


--
Alexandro D. Almeida

Meu antigo perfl perdido http://www.guj.com.br/user/profile/15752.java
[MSN]
rodrigoy
Virtual Machine Man
[Avatar]

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

pcalcado wrote:
Meu ponto é que acima você implicou que com metodologias ágeis (seja qual nome estejamos usando para elas hoje) não existe esta análise, na verdade afirmou que não existe documentação do negócio. Isto não procede, a documentação do negócio apenas fica a cargo do responsável, é um processo externo (e não necessariamente paralelo) ao desenvolvimento de software.


Shoes, eu não afirmei que equipes ágeis não aplicam esta análise, para clarificar, estou falando sobre as literaturas e não como aplicamos no mercado. O fato é que essa análise de negócio não é escopo de XP e Scrum que são as práticas ágeis mais utilizadas (elas personificam essas práticas em papéis). O Kent Beck fala sobre isso no XP? O Ken Schwaber fala sobre isso no Scrum? É muito superficial certo? Quando usamos essas metodologias sem um bom Product Owner e sem cliente presente geralmente temos que adaptar muita coisa pra metodologia funcionar.

pcalcado wrote:
Muitas vezes o software é desenvolvido ao mesmo tempo que é feita a análise de negócios. Muitas vezes a análise é feita antes.


Geralmente vejo analise do negócio como estabelecer o problema, os objetivos de ROI, escopo high-level. IMHO não vejo que fazer isso com o barco andando é uma boa idéia. Isso é a visão. Acho uma boa prática documentar isso nem que seja 3 parágrafos. Nos meus projetos reais mesmo com cliente presente eu estabeleço a visão no papel.

http://www.aspercom.com.br/ead/mod/resource/view.php?id=125
http://www.aspercom.com.br/ead/mod/resource/view.php?id=17

Rodrigo Yoshima
www.ASPERCOM.com.br

Próximas Turmas:
São Paulo: Scrum 27/fev | Requisitos 02/mar | CSM 22/mar | OOAD-UML 05/abr

Goiânia: Scrum 05/mar | DDD 07/mar

Débito Técnico Blog: blog.aspercom.com.br
[WWW]
gilmatryx
Thread.start()
[Avatar]

Membro desde: 23/06/2007 23:00:38
Mensagens: 45
Localização: Br/RN/Natal
Offline

Gustavo Serafim wrote:
Um caso de uso "não abstrato", tem que trazer um valor observável para o ator (gravar ou calcular, por exemplo, não é "observável" acontece internamente no sistema). Contudo, você pode dividir em cenários.


Desculpe, mas "calcular" pode ser um cálculo requisitado e observável pelo ator sim. Mas acho que entendi o sentido da frase.

Gilmar P.S.L.
Projeto JRimum, Grupo JRimum
[Email] [WWW] [Yahoo!] [MSN]
 
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Ir para:   
Powered by JForum 2.1.8 © JForum Team