Scrum na prática
Na empresa onde trabalho, especificamente no projeto que estou. Estamos tentando aplicar o Scrum, ou seja uma metodologia rápida de gerenciamento de projetos. No Scrum esse título “metodologia” muitos autores consideram muito forte, gostam mais do termo “framework”, ou seja, uma ferramenta interligada com práticas a serem feitas. Porém, como nada é perfeito existem alguns empecilhos que estamos tendo que superar nesse projeto.
São alguns deles:
- Cliente é de outro país, ou seja contato do cliente com o desenvolvedor é impossível;
- Os “gerente de projetos”(são as pessoas que tem contato com o cliente) são de outro país também;
- Recursos realocados, ou seja não existe recursos fixos nos projetos eles são sempre realocados conforme demanda e conforme a prioridade;
- Infra-estrutura, complica como na utilização do Dashboard, os times não estão reunidos em um mesmo local físico, logo não conseguem compartilhar o mesmo Dashboard, assim como para fazer as reuniões diárias;
- Reuniões diárias, está difícil de ocorrer devido a nem todos estarem comprometidos em aplicar a metodologia ou assim como falta de entendimento da mesma;
Porém no final das contas nem tudo está sendo negativo apesar de existir alguns fatores que estão complicando um pouco a maioria está ajudando muito no desenvolvimento do projeto.
Normalmente na organização a qual participo, não existia estimativas e resultados rápidos ou seja, o gerente de projeto, mesmo sem falar com a equipe já tem definido o dead line do projeto, assim como quem serão os recursos. Acontece com isso que, muitas vezes o dead line imposto pelo gerente de projeto, não atende a necessidade, ocorre “correria” entre os desenvolvedores que passam a aumentar sua jornada diária assim como abrir mão de finais de semana, e por conseqüência de tudo isso a qualidade do software passa a ter quedas drásticas, as famosas gambiarras, surgem e tem quaze 100% de chance de continuar a ficar no código até o encerramento do projeto, assim como pelo resto da existência desse software.
Porém no projeto que estamos trabalhando, e utilizando algumas práticas de Scrum, criamos inicialmente a lista de funcionalidades o famoso Product Backlog, e enviamos para o gerente de projeto que repassou para o cliente o mesmo estimou e conversou junto com o gerente de projeto o que era prioridade para esse projeto. Definido isso o gerente de projeto repassou para nós esse documento, e equipe que no início do projeto na parte de desenvolvimento era composta apenas de uma pessoa(eu), estimou as funcionalidades que estavam marcadas como alta na prioridade e que se julgou capaz de fazer em um período de 15 dias úteis, por desconhecer um pouco da tecnologia a ser utilizada, a estimação acabaram ficadas um pouco erronias, e colocamos para a primeira interação, preparamos então o primeiro Sprint, quebrando as funcionalidades em tarefas a serem feitas.
Durante o primeiro Sprint, diversas dúvidas sobre o projeto foram surgindo e as mesmas não estavam esclarecidas no brifieng preparado pelo gerente de projeto junto com o cliente, logo definimos que todas as dúvidas existentes que pudesses serem um empecilho para continuidade de uma tarefa, deveria ser anotada e mandada para o Gerente de Projeto, esse deveria repassar para o cliente para ele conseguir saciar essas nossas dúvidas. Esse atividade foi muito funcional, as coisas foram ficando mais esclarecidas, junto de uma prática que resolvemos aplicar, toda sexta-feira uma nova versão da aplicação em desenvolvimento é posta em um servidor que o gerente de projeto assim como o cliente tem acesso, com isso eles recebem um feedback de como as coisas estão indo e como estão sendo feitas. Isso nos ajudou muito a não perder o foco do Sprint, pois as dúvidas repassadas para o cliente poderia se tornar sim requisições de novas funcionalidades, e com as versões sendo mostradas para ele, era possível perguntar sobre o que realmente o queria naquela funcionalidade, mantendo o foco na interação.
Chegamos ontem ao fim do primeiro Sprint, todas tasks listadas neles foram completadas, as estimações como falei foram um pouco erradas pois o prazo de término era hoje, que nos daria um total de 8horas para fazermos mais tarefas. Porém mesmo assim foi muito satisfatório, já é possível usar boa parte do site, o cliente ficou feliz com o primeiro resultado, pediu algumas mudanças que serão feitas, e algumas novas funcionalidades, nada fora do comum. Todas elas foram postas no Product Backlog, e estão aguardando para o próximo Sprint.
Vamos ver como segue essa aventura, agora que o time de desenvolvedores por sua vez também aumentou, agora são 2 pessoas a desenvolver, em um total de 6 pessoas envolvidas no projeto. Com isso a comunicação aumenta, vamos ver como vamos conseguir controlar isso. Porém tenho boas esperanças de o projeto se sair muito bem, e de conseguirmos convecer de o Scrum fazer parte da vida da empresa.
De fato trabalhar com essas “metodologias” à distância não é algo que seja o ideal, por isso acredito que no meio delas ainda falta uma metodologia para trabalhos a distância. Não é o primeiro caso que vejo, e com certeza não será o último, ou seja, quem sabe não podemos criar uma metodologia aqui dentro para exportar pra fora? Seria uma boa tese pra ti heim!
Pois é o problema principal ao meu ver é não ter contato com o cliente, teria que se encontrar ou até mesmo desenvolver uma ferramenta que rompa essa barreira, que consiga trazer o cliente para dentro do projeto de uma maneira virtual isso facilitaria muito
A tendência está sendo não existir mais programadores trabalhando no mesmo ambiente físico. Eu, como muitos outros, quero mesmo é trabalhar em casa (hehe).
Transporte, infra-estrutura física e cafezinho são custos que os caras estão vendo que podem cortar nas agências tradicionais. Talvez esteja faltando uma metodologia específica para equipes distantes fisicamente, mas não acredito que vá fugir muito da filosofia do Scrum.
Abraço.