Gestão Ágil de Requisitos e Scrum Agilidade na gestão de requisitos e desenvolvimento de softwares... Trabalho apresentado na disciplina Introdução à Computação, curso de Tecnologia em Análise e Desenvolvimento de Sistemas - IFBA Salvador, junho 2009
Construindo Softwares Você já imaginou passo-a-passo inicial necessário para a construção de um software? Quem é o cliente? Do que ele precisa? O que ele diz que precisa realmente é necessário? Como estabelecer um diálogo claro quando o cliente não entende nada sobre TI? Como entender e se fazer entendido?
Requisitos Os requisitos relacionam-se às necessidades da organização que está encomendando o software. A partir da verificação dos requisitos, se estabelecerá a estrutura que o software irá receber.
Desafios da Gestão de Requisitos Vencer dificuldade: mundos diferentes e linguagens diferentes entre o profissional de TI e seu cliente. Evitar re-trabalhos : quando o que o profissional de TI faz não está de acordo com a necessidade real do cliente. Evitar excessos: quando o que o cliente diz que quer não é realmente necessário para ele.
A Gestão Ágil de Requisitos Uma maneira simples e prática de esquematizar o raciocínio: a idéia do Post it e dos fluxogramas! Post it: Gruda ali e aqui, muda de lugar acompanhando o raciocínio. Fluxogramas / mapas mentais: Condicionam tarefas umas às outras, associando a finalização de uma atividade ao início de outra ou esquematizam o andamento paralelo de duas atividades.
Exemplo A construção de um software para matrícula de alunos em uma faculdade: entrevista com o cliente, verificando suas necessidades. Cliente: Eu quero um software que matricule o aluno, quero relatório com todos os alunos de cada curso, e que informe e imprima em relatório a pontuação de todos os vestibulares que o aluno já fez. Profissional TI: Mas o senhor realmente vai utilizar as notas dos alunos em vestibulares? Podemos enxugar o programa evitando este dado, que não é importante para a matrícula. Cliente: Tem razão, não vamos precisar disso.
Criando o fluxograma das atividades do cliente, com linguagem que o mesmo entenda... Já temos as atividades do cliente, vamos esquematizar e mostrar ao cliente: Secretária imprime formulário Aluno preenche dados no formulário Secretária digita dados no sistema Aluno paga matrícula Matrícula do aluno é confirmada Geração da lista de matriculados
Possibilidade de trocas na sequência... O cliente quer que o aluno só pague a matrícula depois que estiver efetivado: Secretária imprime formulário Aluno preenche dados no formulário Secretária digita dados no sistema Matrícula do Aluno paga aluno é matrícula confirmada Matrícula Geração da do aluno lista de é matriculados confirmada Geração da Aluno paga lista de matrícula matriculados
Fonte: PIMENTEL, 2009
A partir de então... Verificar qual a melhor tecnologia: Qual o banco de dados a ser utilizado? Qual o melhor programa para criar a interface? Qual a melhor linguagem de programação para estas atividades? Acompanhar as atividades do cliente durante um período para verificar se surgirão novas necessidades ou mudanças não previstas. Esquematizar as atividades para o desenvolvimento do software.
A Gestão Ágil de Requisitos: Permite uma linguagem mais próxima ao cliente. Permite acompanhar as mudanças de sequência das tarefas a serem desenvolvidas. Facilita a gestão das atividades futuras na construção do software.
Conhecendo o Scrum Uma nova forma de se gerenciar projetos de softwares: SCRUM
A origem: Lean Thinking Abaixo o desperdício! Lean (inglês) = Magro = Enxuto Modelo de gestão da produção utilizado pela Toyota, adotado ao fim da II Guerra Mundial quando o Japão estava enfraquecido economicamente. Just In Time: lotes pequenos fabricados por demanda, evitando o acúmulo de estoques e os desperdícios, otimizando a utilização dos recursos disponíveis (caminho oposto ao adotado por Henry Ford, de produção em massa).
Scrum Uma nova forma de desenvolver softwares Adoção do modelo Lean na TI (Lean Software Development), associado à gestão ágil de desenvolvimento de softwares. Artigo "The New Product Development Game", por Nonaka e Hirotaka, publicado na Havard Business Review em 1986: o modo de trabalho em equipes pequenas e multidisciplinares do Lean ganham, na TI, o apelido de Scrum. No Rugby, a penalidade Scrum faz com que jogadores de um time precisem retirar os obstáculos da frente daquele que está com a bola, para que este avance ao máximo, marcando pontos.
Mudanças de tarefas (multitarefa) Funcionalidades desnecessárias Scrum Onde está o desperdício? Defeitos Fonte: PIMENTEL, 2009 Trabalhos parcialmente concluídos Processos extras Esperas
Scrum como funciona: Os projetos são divididos em ciclos (geralmente mensais) chamados Sprints. As funcionalidades a serem implementadas em um projeto são chamadas Product Backlog, e cada equipe terá as atividades que implementará durante o Sprint. O Sprint representa um Time Box que contém um conjunto de atividades que devem ser executadas de forma interativa. Reuniões diárias chamadas Daily Scrum permitem a troca de informações sobre o que foi desenolvido pro todos no dia anterior.
Scrum Ao final de cada Sprint ocorrem as Sprint Review Meeting, quando as equipes apresentam o que desenvolveram. Após uma Sprint Retrospective, parte-se para o planejamento de uma nova Sprint. Fonte: IMPROVE IT, 2009
Scrum O Scrum busca eliminar modelos burocráticos de comunicação entre clientes e desenvolvedores, e entre os integrantes de equipes de TI. Maior aproximação e acompanhamento com o cliente durante a criação da estrutura e o desenvolvimento do software. Maior agilidade na troca de informações entre integrantes das equipes de TI.
Fonte: PIMENTEL, 2009
Fonte: PIMENTEL, 2009
Referências... IMPROVE IT. Scrum. Disponível em: http://improveit.com.br/scrum. Acessado em: 08 jun. 2009. PIMENTEL, Marcelo. Blog Visão Ágil. Disponível em: http://visaoagil.wordpress.com. Acessado em: 08 jun. 2009. DESENVOLVENDO o Scrum. In: TI Digital. Ed. Artecom, 2009. n 2, ano 01.