domingo, 18 de janeiro de 2015

Conceitos em torno do Scrum


As informações a cerca do modelo Scrum, foram principalmente baseadas no Scrum Guide, que como o nome define serve de guia para todos que tem o interesse de utilizar o framework, o qual foi desenvolvido e é mantido por Ken Schwaber e Jeff Sutherland, gestores de grande conhecimento e respeito em todo o mundo, sendo grandes contribuidores do Scrum e do manifesto ágil.

O Scrum é utilizado desde a década de 90, formado por práticas e técnicas comprovadas por anos. Foi realmente apresentado e publicado na OOPSLA de 1995, a qual é uma conferência dedicada à programação orientada a objetos, e desde então vem sendo aprimorado.

Trata-se de uma metodologia ágil, a qual funciona como um guia para o “caminho das pedras” no gerenciamento e desenvolvimento de projetos de softwares, não é um processo que pode ser seguido e vai dizer exatamente como fazer, ou como deve ser trabalhado na empresa, e sim um framework.
Empregando uma abordagem incremental e iterativa para otimização e controle dos riscos, o Scrum tem como base a teoria de controle de processos empíricos, os quais têm três pontos de base que são a Transparência, a Inspeção e a Adaptação. (Schwaber e Sutherland, 2010).

Transparência: Os processos devem ser claros e visíveis para quem esta gerenciando os resultados.
Inspeção: Como o nome determina, é necessário realizar inspeções nos processos, para que possa ser detectado o quanto antes qualquer problema nos mesmos. A reunião diária trata-se de um tipo de inspeção.
Adaptação: Determina através da inspeção, se os processos apresentam problemas que podem levar a um produto fora das especificações, deve tentar adaptar e ajusta o processo para que isso não venha a ocorrer.

Fonte: http://www.uniedu.sed.sc.gov.br/wp-content/uploads/2013/10/Wilian-Vargas-de-Lima.pdf

Em que o Kanban Ajuda?

O Kanban dá transparência ao processo e seu fluxo. O Kanban expõe gargalos, filas, variabilidade e desperdício. Tudo que impacta o desempenho da organização em termos de quantidade de trabalho de valor entregue e o tempo de ciclo necessário para entregá-lo.
Proporciona aos membros da equipe e às partes interessadas externas a visibilidade sobre os efeitos de suas ações (ou falta de ações). Sendo assim, os primeiros estudos de caso estão mostrando que o Kanban muda o comportamento e incentiva uma maior colaboração no trabalho. 
A visibilidade dos gargalos, desperdício e variabilidade, e seus impactos, também incentivam a discussão sobre melhorias e as equipes rapidamente iniciam as melhorias nos seus processos.
Como resultado, o Kanban encoraja a evolução incremental de processos existentes, evolução que é geralmente alinhada a valores Ágeis. O Kanban não demanda uma revolução drástica no modo como as pessoas trabalham, encoraja, ao invés disso, uma mudança gradual. É mudança entendida e aceita por consenso entre trabalhadores e seus colaboradores.
O Kanban, através da natureza do sistema  pull (puxar), encoraja também comprometimento  tardio, tanto em priorização de trabalho novo quanto na entrega de trabalho existente. Tipicamente, os times vão concordar em uma cadência de priorização para atender partes interessadas que estejam contra a maré e decidir a próxima coisa em que trabalhar. Estas reuniões podem ser feitas regularmente porque são normalmente muito curtas. Uma questão muito simples deve ser respondida, algo como, ”Desde nossa última reunião, 2 vagas ficaram livres. Nosso tempo de ciclo corrente é de 6 semanas para entrega.  Quais 2 coisas vocês mais gostariam de ter entregues daqui a 6 semanas?” Isso tem dois desdobramentos. Perguntar uma simples questão geralmente resulta em uma resposta de boa qualidade, rapidamente desdobrada, e mantém a reunião breve.
A natureza da questão significa que o comprometimento em que se trabalhará é atrasado até o último momento responsável. Isto aumenta a agilidade gerenciando expectativas, diminuindo tempos de ciclo do comprometimento à entrega e eliminando retrabalho, pois a chance de que prioridades mudem é minimizada. A abordagem de "parar a linha de produção" para superar os obstáculos e os erros encontrados, também parece encorajar níveis mais elevados de qualidade e uma queda rápida de retrabalho.


Como Funciona o Kanban?

Figura 1: Quadro Kanban
O Kanban usa um mecanismo de controle visual para acompanhar o trabalho à medida que ele flui através das várias etapas do fluxo de valor. Tipicamente usa-se um quadro branco com post-its, ou um sistema de cartões eletrônicos. Fazer os dois é, provavelmente, uma boa prática. O quadro é dividido em áreas definidas, sendo possível controlar, por exemplo, as atividades que estão pendentes, as que estão sendo desenvolvidas no momento, as que estão em teste e as que podem ser utilizadas no produto a ser entregue ao cliente e as concluídas (já entregues ao cliente).
O Kanban possui uma característica Pull System(Sistema puxado) onde os times é que puxam o trabalho, na medida de sua capacidade, e não o oposto, quando o trabalho é empurrado para a equipe (sistema mais comum de trabalho).
São definidos limites explícitos para quantos itens podem estar em progresso em cada estado do fluxo de trabalho. Esses limites ajudam a evitar gargalos ou problemas causados em alguma fase do projeto. 

Fonte: Kanban e Scrum - obtendo o melhor de ambos