| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 17:35:14
|
andre_salvati
Virtual Machine Man
Membro desde: 02/06/2005 16:28:38
Mensagens: 702
Offline
|
fabeen wrote:Não querendo ser Xiita, mas pra mim a descrição de Casos de Uso são uma imensa perda de tempo. Quando o cliente está presente, participando, dando a opinião de negócio sobre o que ele realmente espera da estória http://www.improveit.com.br/xp/praticas/cliente_real, tem-se uma melhor visão do que é necessário implementar e entregar na conclusão dela.
É verdade...
Por outro lado estou pensando em voltar a usar CU (nome estranho esse ) de novo, só pq nossos colonizadores ainda usam e quem não usa "não sabes o que estaires a fazer"
|
"Don't be evil"
André Salvati
http://twitter.com/afsalvati |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 21:42:42
|
seufagner
JavaEvangelist
![[Avatar]](/images/avatar/5fd0245f6c9ddbdf3eff0f505975b6a7.jpg)
Membro desde: 06/05/2005 16:33:09
Mensagens: 389
Localização: Rio de Janeiro - RJ
Offline
|
Uma das mais importantes diferença é o tempo de vida. Casos de uso são artefatos estáticos, permanentes, que continuam existindo ao longo da vida do produto, mesmo que descartáveis. Estórias, por outro lado, são transientes, não teêm vida após a iteração terminar, pois eles são adicionados ao software em forma de testes de aceitação automatizados (caso ideal).
Eu também não vejo quando é aplicável optar por casos de uso. Não faz sentido há anos. Como o Ambler cita no Agile Modeling, você só precisa de algo bom o suficiente como documento, pois o que é realmente mais proveitoso, no quesito comunicação com o cliente, é a conversa olho-no-olho, citação esta comprovada por um estudo no mesmo livro.
This message was edited 1 time. Last update was at 17/07/2008 21:43:35
|
"Simplicidade é a maior forma de sofisticação"
Leonardo Da vinci
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2008 13:12:15
|
Gustavo Serafim
Thread.start()
![[Avatar]](/images/avatar/975ae6d3ce8ae6e0711821a97a9f5fae.jpg)
Membro desde: 04/09/2006 15:33:40
Mensagens: 49
Offline
|
Mais uma Referência: http://www.infoq.com/news/2008/07/use-case-or-user-story
|
Gustavo S. Sinis
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2008 13:12:45
|
Gustavo Serafim
Thread.start()
![[Avatar]](/images/avatar/975ae6d3ce8ae6e0711821a97a9f5fae.jpg)
Membro desde: 04/09/2006 15:33:40
Mensagens: 49
Offline
|
Acredito que quando a equipe é formada de desenvolvedores, Stories funcionam bem, mas quando temos um analista de negócio na equipe (com formação apenas de negócio), acho que o formalismo do UC é mais indicado. (Acredito que ajuda o analista de negocio pensar em uma solução funcional para os requisitos.)
Considerações: O formalismo do UC - retorno atômico observável na perspectiva do ator - ajuda organizar melhor o desenvolvimento (solução funcional pra os requisitos, não CRUDs ), pois representam formalmente uma funcionalidade significativa para o negócio. As iterações podem ser organizadas por cenários, se for o caso. Ainda temos recursos interessantes como, por exemplo, extensão e inclusão.
O caso de uso deve ser simples e sintético. Gosto da abordagem de especificar apenas os dados que passam na fronteira ator/sistema.
Segue exemplo simples para ilustrar (um exemplo mais complexo justificaria melhor a abordagem, acredito)
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)
Como ficaria com Stories o exemplo?
This message was edited 5 times. Last update was at 28/07/2008 14:21:32
|
Gustavo S. Sinis
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2008 17:22:51
|
rodrigoy
Virtual Machine Man
![[Avatar]](/images/avatar/cf79ae6addba60ad018347359bd144d2.jpg)
Membro desde: 18/04/2006 01:06:28
Mensagens: 748
Localização: São Paulo
Offline
|
Gustavo Serafim wrote:
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)
Como ficaria com Stories o exemplo?
História 1: 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
Se isso ficar muito grande e não caber na iteração você quebra em duas ou mais:
História 1: Um atendente pode reservar quartos para clientes aprovados
História 2: Um atendente não pode reservar quartos para clientes não aprovados
História 3: O sistema envia um e-mail ao reservar o quarto
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.
This message was edited 1 time. Last update was at 29/07/2008 17:23:21
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2008 18:40:23
|
Andre Brito
Forum Spammer
![[Avatar]](/images/avatar/4dff7cccfc092f41b8170fc6d7dc93c0.jpg)
Membro desde: 21/07/2007 17:44:31
Mensagens: 1875
Localização: Paraná
Offline
|
fabeen wrote:Não querendo ser Xiita, mas pra mim a descrição de Casos de Uso são uma imensa perda de tempo.
Eu não trabalho com desenvolvimento de software ainda (sou estudante), mas confesso que também acho que Casos de Uso são perda de tempo :-
|
"Já que o rei não vai virar humilde, eu vou fazer o humilde virar rei."
Emicida.
DuranServiceException
Science: If you ain't pissin' people off, you ain't doin' it right.
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2008 20:15:03
|
gilmatryx
Thread.start()
![[Avatar]](/images/avatar/5c10d595f3dfb3c6605a34f0c1a4c5b6.png)
Membro desde: 23/06/2007 23:00:38
Mensagens: 45
Localização: Br/RN/Natal
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.
Mas essas 20 histórias foram extraídas durante a análise de "Funcionalidade X" ou foram relacionadas posteriormente?
Acho que quando são extraídas 20 histórias temos uma melhor visualização de proposta de "O que entregar para a próxima iteração". Já dizer que vou entregar alguma porcetagem (%) do correspondente caso de uso não é muito atrativo, palpável, restritivo, incetivador, etc...
Nesse caso acho que pela técnica do caso de uso pode-se dividi-lo em outros menores não? Se puder qual seria a grande diferença então nesse caso da "Funcionalidade X"?
|
Gilmar P.S.L.
Projeto JRimum, Grupo JRimum |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2008 20:45:59
|
Gustavo Serafim
Thread.start()
![[Avatar]](/images/avatar/975ae6d3ce8ae6e0711821a97a9f5fae.jpg)
Membro desde: 04/09/2006 15:33:40
Mensagens: 49
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.
Acredito que UC fica mais organizado, quando bem feito.
(tenho bons resultados com UC, mas concordo que não é necessariamente melhor que História, é apenas meu ponto de vista atual).
Seguindo essa idéia: retorno atômico, observável, na perspectiva do ator; um sistema de Call Center poderia ter um UC por serviço prestado. Depende do negócio.
Obrigado pelo exemplo.
|
Gustavo S. Sinis
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2008 20:59:27
|
Gustavo Serafim
Thread.start()
![[Avatar]](/images/avatar/975ae6d3ce8ae6e0711821a97a9f5fae.jpg)
Membro desde: 04/09/2006 15:33:40
Mensagens: 49
Offline
|
gilmatryx wrote:
Nesse caso acho que pela técnica do caso de uso pode-se dividi-lo em outros menores não? Se puder qual seria a grande diferença então nesse caso da "Funcionalidade X"?
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.
This message was edited 2 times. Last update was at 29/07/2008 21:00:51
|
Gustavo S. Sinis
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2008 22:11:20
|
Gustavo Serafim
Thread.start()
![[Avatar]](/images/avatar/975ae6d3ce8ae6e0711821a97a9f5fae.jpg)
Membro desde: 04/09/2006 15:33:40
Mensagens: 49
Offline
|
Tentando comparar as abordagens:
rodrigoy wrote:
História 3: O sistema envia um e-mail ao reservar o quarto
UC não tem necessariamente uma discrição em passos, neste sentido pode ser igual a historia, eu acredito. A diferença está na identificação, existe mais formalismo para ser um UC.
Enviar e-mail não seria um UC (só se o sistema fosse um servidor de e-mail), mas Reservar Quarto poderia ser. Depende do negócio.
rodrigoy wrote:
História 2: Um atendente não pode reservar quartos para clientes não aprovados
A História 2 é uma regra de negócio. Pode ficar diretamente no código, testes, ou documentada (no UC) se algum gerente exigir.
This message was edited 1 time. Last update was at 29/07/2008 22:13:26
|
Gustavo S. Sinis
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/07/2008 08:35:16
|
sergiotaborda
Forum Spammer
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3201
Offline
|
Gustavo Serafim wrote:
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.
Acredito que UC fica mais organizado, quando bem feito.
(tenho bons resultados com UC, mas concordo que não é necessariamente melhor que História, é apenas meu ponto de vista atual).
Seguindo essa idéia: retorno atômico, observável, na perspectiva do ator; um sistema de Call Center poderia ter um UC por serviço prestado. Depende do negócio.
A meu ver , julgando pelo que li por ai sobre Stories elas não se aplicam durante a analise mas apenas durante a implementação (i.e. não existe sprint de analise) Logo elas têm que ser derivadas de informações "maiores" que seriam levantadas durante a analise : os casos de uso.
Na verdade as stories são levantadas diretamente dos requisitos dos quais os casos de uso são exemplos "funcionais".
Casos de Uso e Requisitos são traduzidos em tarefas "macro" enquanto stories são tarefas tão "micro" quanto necessário.
Stories podem ser partidas em outras stories 'mais simples" a bem de aumentar a velocidade ou separar o trabalho de implementação por alguma razão prática, quanto que os casos de uso e os requisitos são atômicos, não podendo se divididos.
A minha interrogação é como cria um conjunto de stories sem passar pelo levantamento de requisitos ( podemos ignorar os casos de uso aqui já que os requisitos são algo mais abrangente). Parece-me que ha uma certa defesa que usar Stories significa passar por cima da fase de levantamento mas ao mesmo tempo isso não é compatível com o que li sobre o assunto, 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 ?
This message was edited 1 time. Last update was at 30/07/2008 08:38:29
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/07/2008 08:48:00
|
Rodrigo Manhães
JavaGuru
![[Avatar]](/images/avatar/3e9f7c16bd1cdea78f8e2eea72dfdfbe.png)
Membro desde: 14/07/2005 17:07:07
Mensagens: 238
Localização: Campos dos Goytacazes/RJ
Offline
|
fabeen wrote:Não querendo ser Xiita, mas pra mim a descrição de Casos de Uso são uma imensa perda de tempo.
Principalmente se você utiliza testes de aceitação.
|
http://programacaoradical.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/07/2008 09:22:34
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5170
Localização: Sydney - Australia
Offline
|
Gustavo Serafim wrote:
UC não tem necessariamente uma discrição em passos, neste sentido pode ser igual a historia, eu acredito. A diferença está na identificação, existe mais formalismo para ser um UC.
O próprio Rodrigo disse isso neste tópico já mas quem deu o exemplo de UC foi você.
Gustavo Serafim wrote:
Enviar e-mail não seria um UC (só se o sistema fosse um servidor de e-mail), mas Reservar Quarto poderia ser. Depende do negócio.
[...]
A História 2 é uma regra de negócio. Pode ficar diretamente no código, testes, ou documentada (no UC) se algum gerente exigir.
Uma história é agum pequeno incremento que agregue algum valord e negócio. Para histórias não existe esta distinção.
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/07/2008 09:52:43
|
rodrigoy
Virtual Machine Man
![[Avatar]](/images/avatar/cf79ae6addba60ad018347359bd144d2.jpg)
Membro desde: 18/04/2006 01:06:28
Mensagens: 748
Localização: São Paulo
Offline
|
gilmatryx wrote:
Mas essas 20 histórias foram extraídas durante a análise de "Funcionalidade X" ou foram relacionadas posteriormente?
Tanto faz... histórias surgem, são quebradas, são incorporadas durante o desenvolvimento.
gilmatryx wrote:
Já dizer que vou entregar alguma porcetagem (%) do correspondente caso de uso não é muito atrativo, palpável, restritivo, incetivador, etc...
Quando o caso de uso é muito grande a técnica do RUP é quebrar em cenários. Nesta iteração entrego os cenários 1, 2 e 3 do caso de uso X. Pode ser que o caso de uso X tenha 20 cenários (ou histórias). Isso nos leva ao cerne da questão. Se um cenário pode ser uma execução de caso de uso, isso nos diz ainda mais sobre as grandes semelhanças entre eles.
gilmatryx wrote:
Nesse caso acho que pela técnica do caso de uso pode-se dividi-lo em outros menores não? Se puder qual seria a grande diferença então nesse caso da "Funcionalidade X"?
Para a técnica de casos de uso, não seria uma boa idéia quebrar o objetivo do ator. Casos de uso é uma boa técnica para agrupar requisitos importantes para o ator. Não seria correto ter "Reservar Quarto com Disponibilidade" e "Reservar Quarto sem Disponibilidade".
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/07/2008 09:55:49
|
rodrigoy
Virtual Machine Man
![[Avatar]](/images/avatar/cf79ae6addba60ad018347359bd144d2.jpg)
Membro desde: 18/04/2006 01:06:28
Mensagens: 748
Localização: São Paulo
Offline
|
Gustavo Serafim wrote:
rodrigoy wrote:
História 2: Um atendente não pode reservar quartos para clientes não aprovados
A História 2 é uma regra de negócio. Pode ficar diretamente no código, testes, ou documentada (no UC) se algum gerente exigir.
Aí é que está... quando falamos nisso nós teríamos uma RN no UC ou uma História para manifestar uma necessidade de construção. Não é necessariamente sobre documentação de Requisitos, e sim organizar a fila de construção do software.
|
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
|
|
|
 |
|
|