terça-feira, 17 de julho de 2012

Fim ao Planejamento Sem Fim! Conheça o SCRUM!

Hoje vou falar sobre algo que poucos conhecem, mas tem sido muito utilizado na implementação de projetos de sistemas, vou falar do SCRUM.

O QUE É SCRUM ?

O Scrum é um processo de desenvolvimento iterativo e incremental para gerenciamento de projetos e desenvolvimento ágil de software. Apesar de a palavra não ser um acrônimo, algumas empresas que implementam o processo a soletram com letras maiúsculas como SCRUM. Isto pode ser devido aos primeiros artigos de Ken Schwaber, que capitalizava SCRUM no título.

Scrum não é um processo prescribente, ou seja, ele não descreve o que fazer em cada situação. Ele é usado para trabalhos complexos nos quais é impossível predizer tudo o que irá ocorrer.

Apesar de Scrum ter sido destinado para gerenciamento de projetos de software, ele pode ser utilizado em equipes de manutenção de software ou como uma abordagem geral de gerenciamento de projetos/programas.

HISTÓRIA

Inicialmente, o Scrum foi concebido como um estilo de gerenciamento de projetos em empresas de fabricação de automóveis e produtos de consumo, por Takeuchi e Nonaka no artigo "The New Product Development Game" (Harvard Business Review, Janeiro-Fevereiro 1986). Eles notaram que projetos usando equipes pequenas e multidisciplinares (cross-functional) produziram os melhores resultados, e associaram estas equipes altamente eficazes à formação Scrum do Rugby (utilizada para reinício do jogo em certos casos). Jeff Sutherland, John Scumniotales e Jeff McKenna conceberam, documentaram e implementaram o Scrum, conforme descrito abaixo, na empresa Easel Corporation em 1993, incorporando os estilos de gerenciamento observados por Takeuchi e Nonaka. Em 1995, Ken Schwaber formalizou a definição de Scrum e ajudou a implantá-lo no desenvolvimento de softwares em todo o mundo.

Scrum junta conceitos de Lean, desenvolvimento iterativo e do estudo de Hirotaka Takeuchi e Ikujiro Nonaka.

A função primária do Scrum é ser utilizado para o gerenciamento de projetos de desenvolvimento de software. Ele tem sido usado com sucesso para isso, assim como Extreme Programming e outras metodologias de desenvolvimento. Porém, teoricamente pode ser aplicado em qualquer contexto no qual um grupo de pessoas necessitem trabalhar juntas para atingir um objetivo comum, como iniciar uma escola pequena, projetos de pesquisa científica, ou até mesmo o planejamento de um casamento.

Mesmo que idealizado para ser utilizado em gestão de projetos de desenvolvimento de software ele também pode ser usado para a gerência de equipes de manutenção, ou como uma abordagem para gestão de programas: Scrum de Scrums.

PAPÉIS

Equipes Scrum consistem de três papéis principais e uma série de papéis auxiliares - papéis principais são frequentemente referidos como porcos e papéis auxiliares como galinhas (após a história A Galinha e o Porco).

Os papéis principais em equipes Scrum são aqueles comprometidos com o projeto no processo do Scrum - são os que produzem o produto (objetivo do projeto).

O Product Owner (dono do produto)  representa a voz do cliente e é responsável por garantir que a equipe agregue valor ao negócio. O Product Owner escreve centrado nos itens do cliente (histórias tipicamente do usuário), os prioriza e os adiciona para o product backlog.

Equipes de Scrum devem ter um Product Owner, e, embora esse possa também ser um membro da equipe de desenvolvimento, recomenda-se que este papel não seja combinado com o de ScrumMaster.

Equipe (Development Team) A equipe é responsável pela entrega do produto. A equipe é tipicamente composta de 5-9 pessoas com habilidades multifuncionais que fazem o trabalho real (analisar, projetar, desenvolver, testar técnicas de comunicação, documentos, etc.) Recomenda-se que a equipe seja auto-organizada e auto-conduzida, mas que muitas vezes trabalhem com alguma forma de projeto ou gestão de equipe.

Scrum Master Scrum é facilitado por um Scrum Master, que é responsável pela remoção de impedimentos à capacidade da equipe para entregar o objetivo do sprint / entregas. O Scrum Master não é o líder da equipe, mas age como um tampão entre a equipe e qualquer influência ou distração.

O Scrum Master garante que o processo Scrum seja usado como pretendido. O Scrum Master é o responsável pela aplicação das regras. Uma parte fundamental do papel do Scrum Master é proteger a equipe e mantê-la focada nas tarefas em mãos. O papel também tem sido referido como um líder-servo para reforçar essa dupla perspectiva
.

ARTEFATOS

Product Backlog
  • Um backlog é uma lista de itens priorizados a serem desenvolvidos para um software. O Product Backlog é mantido pelo Product Owner e é uma lista de requisitos que tipicamente vêm do cliente. O Product Backlog pode ser alterado a qualquer momento pelo Product Owner ou por decisão deste.
Sprint backlog
  • O Sprint backlog é uma lista de itens selecionados do Product backlog e contém tarefas concretas que serão realizadas durante o próximo sprint para implementar tais itens selecionados. O Sprint Backlog é uma representação em tempo real do trabalho que o Development Team planeja concluir na sprint corrente, e ele pertence unicamente ao Development Team.
Planejamento de sprint
  • Antes de todo sprint, o Product Owner, o Scrum Master e a Equipe decidem no que a equipe irá trabalhar durante o próximo sprint. O Product Owner mantém uma lista priorizada de itens de backlog, o backlog do produto, o que pode ser repriorizado durante o planejamento do sprint. A Equipe seleciona itens do topo do backlog do produto. Eles selecionam somente o quanto de trabalho eles podem executar para terminar. A Equipe então planeja a arquitetura e o design de como o backlog do produto pode ser implementado. Os itens do backlog do produto são então destrinchados em tarefas que se tornam o backlog do sprint.

PONTOS POSITIVOS

  • Jogo de Cintura: Num mundo em constante transformação, o SCRUM mostra aos profissionais em geral que, mais importante do que seguir à risca um planejamento, é estar aberto a mudá-lo ao longo do processo.
  • Agrupando-se: O método escancara uma máxima que nem todos os profissionais conseguem incorporar: quando se trabalha em grupo, os resultados são bem mais satisfatórios. As pessoas aprendem a ouvir o outro e, com a troca de ideias, exercitam a criatividade. É uma tendência em tempos de equipes cada vez menores.
  • Papelada Fora: Ao incentivar o contato direto, o scrum acaba revelando que a comunicacao verbal gera menos ruidos.
  • Olho no Todo: A integracao mostra ainda que cada um pode ampliar sua area de atuacao profissional e deve ter visao do processo de desenvolvimento como um todo.
  • Liberdade: Ao dar liberdade para as equipes tocarem projetos, o scrum aponta para a autonomia. Na era do conhecimento, o gestor define o que sera feito, nao como, o que desenvolve o senso de responsabilidade, a  espontaneidade e a criatividade das pessoas.

PONTOS NEGATIVOS
  • Registros: Entre as principais críticas ao scrum está a crença de que, em algum nível, projetos e trabalhos precisam ser documentados. Eles censuram a substituição de relatórios e documentos pelo post-it.
  • Promoção: Outra crítica é relativa à ausência de hierarquia, o que prejudicaria os interessados em alcançar postos de gestores, em progredir na carreira.

Gostou? Quer passar a implementar em seus Projetos?