Monday, November 08, 2010

SCRUM Gestão Ágil de Projetos



No mês passado participei de um curso sobre scrum cujo nome é o título deste post. Abaixo estão as anotações que fiz durante o período do curso. Desde já super recomendo à qualquer pessoa. Achei muito interessante.

Scrum é um framework que pode ser utilizado e aplicado para o gerenciamento de qualquer tipo de projeto.

Sua principal característica é realizar entregas (produto pronto) em um curto espaço de tempo, agregando o máximo possível de valor ao negócio do cliente. Entenda-se valor ao negócio do cliente como retorno do investimento (ROI).

Os pilares que regem o scrum estão baseados no manifesto ágil:
  •   Indivíduos e interação entre eles mais que processos e ferramentas.
  •   Produto em funcionamento mais que documentação abrangente.
  •   Colaboração com o cliente mais que negociação de contratos.
  •   Responder a mudanças mais que seguir um plano.

Um ponto muito interessante e que fica expresso no itens acima é que mesmo havendo valor nos itens à direita, os itens à esquerda são muito mais valorizados.
  •  Os indivíduos fazem a diferença (ainda tem gente que pensa o contrário).  Custo e tomada de decisão.
  •  A questão da colaboração é se preparar para a mudança, por que ela vai ocorrer.
  •  Interação com o cliente é tudo. Antes, mas principalmente, durante a execução.
  •  A cada passo consultar o cliente sobre o escopo e o objetivo do projeto.
  •  A cada passo, olhar para o objetivo.
  •  A cada consulta, você delega a responsabilidade para o cliente (status report).
  •  Dividir um grande projeto em vários pequenos projetos.

Fica claro que grande vantagem da metodologia scrum é a alta velocidade, evitando surpresas com cronogramas e resultados. Você pode mudar o planejamento a qualquer hora.

Os 3 papeis em um projeto utilizando SCRUM (PO, SM e Time):
  1.  Product Owner (PO): Responsável por garantir o ROI do projeto. Conhecedor do negócio. Recomendadíssimo que seja o próprio cliente.  responsável pela elaboração da visão(público alvo, benefícios, funcionalidades chaves, conceitos chaves...). Pequenas declarações, objetivas e claras. O objetivo do projeto deve fazer parte da visão
  2.  Scrum Máster (SM): É o facilitador, responsável por remover impedimentos da equipe (Time). Garantir o uso de Scrum. Deve proteger o time de interferências externas e ajudar o Product Owner a maximizar o ROI.
  3. Time (equipe): Responsável pela produção do produto. Deve ser multidiciplinar (heterogêneo) e auto-gerenciado. Sem dúvida alguma, esta última palavra, gera grande polêmica em torno do scrum. Muitos não acreditam nisso, outros acham ser utopia ter uma equipe que se auto-gerencie.  Esse ponto exige a quebra de dogmas e paradigmas, mudança de mentalidade e entendimento. Isto pode ser um complicador para a utilização de scrum em determinadas empresas.

O Scrum trata muito do empirismo.

Durante o pré-projeto, PO e Time devem combinar e o que será e como será  transformação de requisitos em funcionalidades.

A forma atual de fazer especificações não casa com a filosofia de trabalho do scrum pois:
  • Assume-se que há um nível avançado de conhecimento de tudo.  
  • Alto consumo de tempo para escrever e ler; um tédio para escrever.
  • Trata o aprendizado do cliente como “mudança de escopo”.

Há um mito que com scrum, não há necessidade de documentação, o que não é verdade, com scrum a documentação/especificação ocorre por partes. Se especifica o que for ser entregue ao time para trabalhar.

Uma boa maneira de se especificar é trabalhar com as poderosas user stories: Quem/O que/Para que? ou seja:

Como um <perfil>, eu posso/quero/desejo/devo <função> para <valor de negócio>.

As user stories se concentram no negócio (regra) e não na técnica.

As tarefas são mensuradas em horas.

Uma tarefa não deve exceder 16 horas (mínimo 1 hora, máximo 16 horas).

Quanto menor for a tarefa melhor fica a mitigação de riscos.

As tarefas devem ser quebradas em micro. Cada tarefa deve ser designada a apenas uma pessoa.

Um dos pontos que achei bem interessantes do scrum é o Planning Poker, pois:
  • Apresenta múltiplas opiniões quanto a estimativa de um item (evita o condicionamento de idéias);
  • Estimula o dialogo entre os membros do Time durante das rodadas (valores divergentes devem ser explicados) ;
  • Os estudos mostram que estimativas feitas em grupo são mais bem sucedidas que as individuais;

O mais interessante do curso são as atividades realizadas colocando em prática cada ponto discutido. Com certeza é o ponto alto do curso.

A título de curiosidade SCRUM é uma jogada do Rugby!



Você também pode gostar de:

 

    4 comments:

    Fabio A. Dalonso said...

    Muito bom Gustavo. Parabéns pelo post. Estou orgulhoso e ao mesmo tempo com a sensação do dever cumprido, pois me pareceu que vc absorveu exatamente as mensagens que eu almejo que as pessoas entendam. Continue neste caminho. Abraços,

    Fabio Dalonso

    Marcos Calil Zanetti said...

    Gustavo, muito bom o post. Dá uma boa idéia do que é Scrum e estimula a buscarmos mais informações a respeito. Abraços

    neigrando said...

    Gustavo, gostei do artigo, pois dá uma boa idéia do SCRUM.

    Mas gosto mais do modelo de equipe do MSF (Microsoft Solution Framework) onde temos os seguintes papéis:
    Business Analyst - analista de negócios (similar ao Product Owner)
    Project Manager (similar ao Scrum Master)
    Architect - arquiteto de software
    Developer - desenvolvedor (equipe)
    Tester - testador (equipe)
    Release Manager

    Aproveito para deixar aqui o link de meu artigo sobre Metodologias Ágeis no Desenvolvimento de Projetos de Software: http://wp.me/pMSqs-L

    Recomendo o site: http://www.infoq.com/scrum/
    pois tem muito material sobre SCRUM.

    Daniel Chohfi said...

    Muito obrigado Gustavo! Ajudou de diversas formas a entender melhor o SCRUM e vejo que com certeza é o caminho!!!

    Teste de Memória