A partir deste artigo, começo uma nova série, falando um pouco sobre este processo framework chamado Scrum.
Primeiramente, vamos falar do que é Scrum:
- É um framework estrutural, ou seja, uma caixa de ferramentas que serão utilizadas para construção de um software, na qual você emprega vários processos e técnicas.
- É utilizado para desenvolver e manter produtos complexos (um software é sempre algo complexo).
- É leve, pois não é um framework extenso.
- É simples de entender.
- Difícil de dominar, mesmo sendo simples e leve, por muitas vezes e difícil de ser implementados em certas organizações.
Agora, o que não é Scrum
- Não é um processo ou técnica de desenvolvimento.
- Não é uma formula mágica para desenvolver softwares, mas uma estrutura a ser seguida.
- Não possui um template de documentação a ser seguido, você cria os seus da forma que julgar necessário.
- Não define hierarquia (gerentes, diretoria, etc), tem apenas papéis e responsabilidades, pois o time é autodisciplinado.
O Scrum se baseia no Empirismo, ou seja, o aprendizado vem com a experiência. Esse é o principal contexto do Scrum, pois quando desenvolvemos um software, principalmente algo muito grande, não é possível detalhar tudo que ele terá de funcionalidades, apenas uma parte dele. A medida que vamos construindo a solução, vão aparecendo mais detalhes e mais funcionalidades que precisarão ser implementadas, seja estas por solicitação do cliente ou do próprio mercado.
O que mais gosto do processo do Scrum é justamente o empirismo, pois como digo, quando se tem um problema grande, o melhor é dividi-lo em problemas menores, assim fica mais fácil resolvê-los e com Scrum é exatamente isso que podemos fazer. Como é um processo incremental, ou seja, vou incrementando partes de um produto aos poucos, vou resolvendo problemas aos poucos e já entregando valor ao cliente.
Supomos que o meu cliente quer um sistema simples, de cadastro de clientes e registrar as vendas. Posso muito bem liberar primeiramente o cadastro do cliente para ele já ir cadastrando os clientes dele, em seguida, o cadastro de produto para ele já ir organizando os produtos no sistema e depois, o registro de vendas e assim finalizar o produto, ou seja, entreguei o produto em 3 partes menores, das quais cada parte gerou valor para o cliente.
O Scrum se baseia em 3 pilares: transparência, inspeção e adaptação.
Transparência: tudo está visível, o que tem que ser feito, o que está sendo feito, os problemas, o que está pronto, ou seja, tudo a mostra, sem ocultar nada.
Inspeção: o time está sempre inspecionando o que está sendo feito, como estão evoluindo e os problemas encontrados, sem precisar de um gerente olhando para isso, já que a equipe é madura o suficiente para isso.
Adaptação: com a inspeção constante, se algo está indo para o caminho errado, é possível rapidamente corrigir o rumo e se adaptar. Se a solução não está indo para o caminho certo, ele pode ter seu rumo corrigido.
Em resumo, o Scrum é um framework (não um processo), baseado no empirismo (aprender fazendo), para desenvolver e manter produtos de software complexos (apesar de que pode ser adaptada para produtos pequenos e até mesmo outras atividades), conduzida por times auto organizáveis, de forma transparente, com inspeção constante e com isso, torna-se adaptável.
Para saber mais, baixe o guia do Scrum e visite o site do Scrum.org ou entre em contato comigo, será um prazer responder suas dúvidas.
No próximo artigo, vamos falar sobre os papéis do Scrum (o time Scrum).