domingo, 24 de maio de 2009

Cartão de Historia Quebrados em Tarefas

Oi pessoal,

As pessoas sempre perguntam nas minhas palestras / treinamentos como funciona o processo de identificação de tarefas de um cartão de historia. Então vamos ao um exemplo pratico, do cartão de historia que eu implementei na sexta feira, no projeto da empresa Gtt (http://www.gtt.com.br).

[1] Primeiro passo é fazer o levantamento dos frequisitos

Requisito:

R1 - Cadastro de usuário
R2 - Cadastro de grupo de usuários (Gtt, medico e distribuidor)
R3 - O usuário medico so pode ter acesso as informações da entidade que ele pertence
R4 - O usuário distribuidor so pode ter acesso as informações que ele pertence
R5 - Um usuário distribuidor não pode alterar informações de outro usuário distribuidor que não faz parte da sua empresa
R6 - Um usuário medico não pode alterar dados de outro usuário medico que não faz parte de sua entidade

[2] O segundo passo é entender estes requisitos

[3] Terceiro passo é colocar os requisitos em forma de Cartão de Historia, para termos requisitos escritos de maneira estruturada (formatada) e ter os requisitos com uma única responsabilidade. Escrever o requisito em forma de Cartão de Historia nos ajuda inclusive a fazer um refinamento dos requisitos, isto é, melhorar a nossa analise.

Cartão de Historia

MODELO: Como um [usuário papel], quero [meta], para que eu possa [motivo].


[c1] Como um administrador do sistema GtMed, quero cadastrar usuários do sistema com o perfil de medico, para que este usuário possa utilizar o software GtMed.

[c2] Como um administrador do sistema GtMed, quero cadastrar usuários do sistema com o perfil de distribuidor, para que este usuário possa utilizar o software GtMed.

[c3] Como um administrador do sistema GtMed, quero cadastrar usuários do sistema com o perfil de Gtt, para que este usuário possa utilizar o software GtMed.

[c4] Como um usuário, não posso ter acesso a nenhum cadastro de outro usuário, para que eu não possa modificar informações que não são minhas.

[c5] Como um usuário administrador medico, quero cadastrar usuários do sistema que pertençam a minha entidade, para que este usuário possa utilizar o software GtMed.

[c6] Como um usuário administrador distribuidor, quero cadastrar usuários do sistema que pertençam a minha distribuidora, para que este usuário possa utilizar o software GtMed.

[c7] Como um usuário Gtt, quero alterar os meus dados cadastrais, para que eu sempre tenho minhas informações atualizadas.

[c8] Como um usuário medico, quero alterar os meus dados cadastrais, para que eu sempre tenho minhas informações atualizadas.

[c9] Como um usuário distribuidor, quero alterar os meus dados cadastrais, para que eu sempre tenho minhas informações atualizadas.

Observação: Não estão todos os Cartões aqui, so alguns, para termos uma visão de como funciona.

[4] Passo é pegar cada Cartão de Historia e quebrar em tarefas que representem tudo o que tem que ser feito para o Cartão de Historia ser considerado completo.
As tarefas devem ser quebradas na grandeza de um dia ideal de trabalho, para que quando uma pessoa da equipe pegar esta tarefa ele possa realizar em um dia, não deixando trabalho para o dia seguinte.
Caso exista tarefas muito pequenas e que não chegam a pelo menos uma hora de trabalho, estas tarefas devem ser agrupadas, formando um conjunto de tarefas pequenas e que uma pessoa da equipe possa pegar e realizar todas elas em um montante de horas de trabalho, mas estas horas não podem ser maior que um dia ideal de trabalho.
Porque um dia ideal de trabalho? Para ao termino do dia o executor do trabalho tenha a sensação de trabalho concluído, para que a meta “um dia de trabalho” possa ser buscada e alcançada. Metas pequenas são mais fáceis de serem alcançadas.

[c1] Como um administrador do sistema GtMed, quero cadastrar usuários do sistema com o perfil de medico, para que este usuário possa utilizar o software GtMed.

[c2] Como um administrador do sistema GtMed, quero cadastrar usuários do sistema com o perfil de distribuidor, para que este usuário possa utilizar o software GtMed.

[c3] Como um administrador do sistema GtMed, quero cadastrar usuários do sistema com o perfil de Gtt, para que este usuário possa utilizar o software GtMed.

Os três Cartões de Historia (c1, c2 e c3) podem ser implementados com as seguintes tarefas

[t1] Usuário administrador do sistema
[t2] Montar tela de cadastro de usuários
[t3] Construir a funcionalidade de incluir
[t4] Construir a funcionalidade de alterar
[t5] Construir a funcionalidade de excluir
[t6] Construir a funcionalidade de consultar
[t7] A consulta tem que mostrar todos os registros cadastrados
[t8] Escolher o tipo de usuário que esta sendo cadastrado: medico, gtt ou distribuidor

[c4] Como um usuário, não posso ter acesso a nenhum cadastro de outro usuário, para que eu não possa modificar informações que não são minhas.

[c7] Como um usuário Gtt, quero alterar os meus dados cadastrais, para que eu sempre tenho minhas informações atualizadas.

[c8] Como um usuário medico, quero alterar os meus dados cadastrais, para que eu sempre tenho minhas informações atualizadas.

[c9] Como um usuário distribuidor, quero alterar os meus dados cadastrais, para que eu sempre tenho minhas informações atualizadas.

Os quatro Cartões de Historia (c4, c7, c8 e c9) podem ser implementados com as seguintes tarefas

[t1] Mostrar os dados do usuário logado
[t2] Permitir alteração
[t3] Não dar acesso aos dados dos demais usuários
[t4] No menu ao solicitar esta opção mostrar direto o cadastro do usuário logado

[c5] Como um usuário administrador medico, quero cadastrar usuários do sistema que pertençam a minha entidade, para que este usuário possa utilizar o software GtMed.

Tarefas:

[t1] Mostrar na consulta apenas os usuário cadastrados da entidade do usuário logado
[t2] O usuário a ser cadastrado deve ser automaticamente vinculado a entidade do usuário logado.

[c6] Como um usuário administrador distribuidor, quero cadastrar usuários do sistema que pertençam a minha distribuidora, para que este usuário possa utilizar o software GtMed.

Tarefas:

[t1] Mostrar na consulta apenas os usuário cadastrados da distribuidora do usuário logado
[t2] O usuário a ser cadastrado deve ser automaticamente vinculado a distribuidora do usuário logado.

As tarefas podem ser estimadas em horas, mostrando o tempo necessário em horas para uma Sprint ser executada.

Um abraço a todos,

Abu

Nenhum comentário: