SCRUM
Scrum é um processo de desenvolvimento iterativo e incremental que pode ser aplicado a qualquer produto ou no gerenciamento de qualquer atividade complexa. Ken Schwaber e Mike Beedle desenvolveram a metodologia na década de 90 baseando-se em sua própria experiência no desenvolvimento de sistemas e processos.
Neste primeiro artigo será feita uma introdução ao processo e suas principais características. Nos artigos seguintes serão abordados aspectos mais específicos do processo em si.
Por quê Scrum é diferente?
A proposta do Scrum é radicalmente diferente. O Scrum contempla um visão empírica baseada na teoria de controle de processos.
Processo Definidos e Processos Empíricos.
Existem dois tipos de processos: definidos e empíricos. Processos definidos são aqueles que determinam o que deve ser feito, quando e como. Para um mesmo conjunto de variáveis de entrada, pode-se esperar o mesmo resultado sempre. Um exemplo bem conhecido de processo definido é o RUP da IBM (Rational). O RUP é um processo de desenvolvimento de software que estabelece quais as atividades necessárias para que o produto, ou software, seja construído de forma repetitível. Quem já trabalhou com o RUP sabe que a utilização de um processo definido não garante o sucesso do projeto. Os processos empíricos devem ser utilizados sempre que os processos definidos não forem adequados devido a complexidade do projeto. Ou seja, sempre que não se conheçam todas as variáveis de entrada para que possa estabelecer um processo repetitível (com a mesma saída sempre).
O Scrum, como um bom processo empírico, parte do princípio que nem todas as características do produto são conhecidas na análise e que provavelmente os requisitos mudarão com o passar do tempo. No Scrum existem duas atividades principais: inspeção e adaptação. Como o processo não é definido, o gerente[1] de projeto tem que inspecionar a execução diariamente, o que requer transparência, e fazer as adaptações necessárias com o passar do tempo.
A exemplo do XP[2], Scrum é como aprender a dirigir um carro: você não traça um destino inicialmente e chega em linha reta até o final. Aprender a dirigir está muito mais relacionado com pequenas correções de rota até a chegada final.
Desenvolvimento é uma atividade extremamente complexa que não se adapta a um processo definido. A única alternativa viável é a utilização de uma processo empírico baseado em inspeção e adaptação.
Características:
Entre as principais características do Scrum podemos citar:
Scrum é um processo ágil para gerenciar e controlar o desenvolvimento de projetos
Scrum é um "wrapper" para outras práticas de engenharia de software. Como XP por exemplo.
Scrum é um processo que controla o caos resultante de necessidades e interesses conflitantes.
Scrum é uma forma de aumentar a comunicação e maximizar a cooperação .
Scrum é uma forma de detectar e remover qualquer impedimento que atrapalhe o desenvolvimento de um produto.
Scrum é escalável desde projetos pequenos até grandes projetos em toda empresa.
Nenhum comentário:
Postar um comentário