Primeiro de tudo Scrum é um acrônimo para a frase: "Software Codificado Rapidamente é Uma Merda". Se você acreditou na primeira sentença eu peço encarecidamente que leia atentamente o resto deste post.
O Scrum e o Kanban referem-se a ferramentas, isso mesmo, ferramentas utilizadas em processos de desenvolvimento ágeis. O primeiro vem de uma analogia a uma jogada de Rugby onde todos os jogadores disputam a posição de reposição da bola (bola oval, esquisita). A jogada deve ser feita em equipe e se um dos membros da equipe falha, então todos falham. A analogia casa perfeitamente com o conceito por traz da utilização desta ferramenta (ou seja, SCRUM NÃO É UM ACRÔNIMO). O segundo, Kanban, refere-se a representação visual (que é a tradução literal do termo) do fluxo de trabalho de forma que as equipes envolvidas percebam rapidamente informações que lhe sejam uteis para o não "empacamento" do produto.
Como qualquer ferramenta, existe a forma certa para usá-la. De outra forma os benefícios mudam (mesmo que para melhor). Muitos desenvolvedores descobriram que ao usar as duas ferramentas juntas podem trazer grande beneficio ao processo de desenvolvimento ágil. Os dois possuem foco na entrega do produto de forma rápida e com qualidade assim como a contínua otimização empírica do próprio processo de desenvolvimento. Parece até contraditório dizer que não todas as prescrições das duas ferramentas devem ser observadas e ao mesmo tempo que se pode adaptar o seu uso de acordo com o projeto e a equipe. Mas a contradição fica desfeita ao usarmos como metáfora a mesma que Kent Beck utiliza em seu livro sobre Extreme Programming, aquela sobre aprender a dirigir. Ao dirigir um carro, esperamos ter quatro rodas, um acelerador, algum mecanismo de mudança de marcha, acelerador, freio... (leve em consideração os carros atuais comuns. Já existem carros sem marcha aparente e sem direção). Esta é a ferramenta, caso falte esses itens básicos, provavelmente não é um carro. Agora, a forma e o motivo para se usar um carro são diversos. Posso usar o mesmo para carregar mercadorias usando a mala, ou levar a namorada para o cinema (o que requer um carro legal para impressionar), ou mesmo utilizar mais a velocidade para ganhar uma corrida de formula 1.
Scrum possui mais regras que o Kanban, ou em termos padronizados... :-/, é mais prescritivo. As regras são: Possuir os papeis de Product Owner(PO), Scrum Master(SM), e Team; O product backlog deve ser priorizado; O produto deve ser dividido em tarefas menores de forma que possa ser entregue ao final de cada iteração (sprint) uma funcionalidade solicitada pelo Product Owner, isto também impede que qualquer funcionalidade seja adicionada a uma iteração já iniciada. Quando o PO solicita uma nova funcionalidade deverá esperar o inicio do proximo sprint para fazê-lo; Um quadro para cada projeto; Limitação do WIP (Work In Progress) por meio de tempo fixo, ou seja, se o sprint (nome dado a uma iteração) for de 1 mês, então todas as iterações serão de um mês; Equipes Multifuncionais e auto-organizáveis; Gráfico burndown, que é um gráfico de medição de velocidade para mostrar quanto trabalho é realizado por iteração e que permite estimar a data de entrega de um produto ou funcionalidade. Esses são os requisitos (se o leitor souber de outro, me avisa para não ficar feio) para usar Scrum de forma apropriada. se tiver menos do que isso então é melhor não dizer que esta usando Scrum, e sim algum outro termo como o indicado por Henrick, "Scrumish".
O Kanban por sua vez, não possui tantas prescrições. Na verdade, suas prescrições são apenas a de deixar o fluxo de trabalho em um quadro visivel (isso proporciona transparência ao processo), e a delimitar o numero de tarefas para os estados do fluxo que são criticos. Bem menor o parágrafo não é mesmo? A principal vantagem no uso desta é a de que o limite de trabalho proporcionam um tempo de resposta mais rápido quando ocorrem erros ou gargalos.
A semelhança entre essas duas ferramentas são realmente muitas. São Lean e Agile, permitem trabalhar em vários projetos simultâneos (embora o Scrum utilize um quadro diferente para cada equipe), usam controle de cronograma além de adaptarem-se facilmente a equipes pequenas. Para verificar o quanto essas ferramentas podem ajudar no processo de desenvolvimento do leitor então o mesmo deve testar enquadrar-se com as prescrições das ferramentas e determinar qual usar mais fortemente, quais adaptações usará e mesmo qual o beneficio que tal teste proporcionou ao processo.

Nenhum comentário:
Postar um comentário