Essa é uma pergunta muito frequente e
geralmente confunde as pessoas. Já vou iniciar dizendo que Scrum é um
framework. Agora vamos responder dizendo porque Scrum não é nem
metodologia nem método. Agora, você pode se perguntar: porquê não
utilizar uma palavra em português, como a tradução de framework? Não
vamos esquecer que Scrum foi originado dos EUA e sendo assim, seus
termos advêm do inglês. Vejamos a definição da ScrumAlliance:
“Scrum: A team-based framework to develop complex systems and products.”
Usamos palavra “framework” porque a tradução oficial de framework para o português não é tão abrangente no seu sentido como o vocábulo em inglês! Isso podemos verificar nos dicionários mais comuns como Michaelis, Collins, Rideel, Oxford-Duden. O que ocorre geralmente, principalmente na computação, é a criação de neologismos. Daí surgiram o “vamos deletar”, o “vou fazer um design”, ou o “vamos navegar na web”. Neologismos não são ruins, aprimoram a linguagem e a fazem evoluir. Talvez fosse melhor se criássemos uma palavra nova a cada conceito novo que derivássemos ou aprendêssemos a partir de outras línguas, mas isso é tarefa dos Holanda Ferreira.
Scrum é um modelo? Inicialmente, a definição de modelo em inglês é a mesma em português. Assim, de acordo com a tais definições dadas nos dicionário citados, temos para o substantivo:
1 - “um padrão”
2 - “uma representação da realidade, utilizada para investigação.”
Geralmente, um modelo é uma descrição metafórica de alguma realidade, seja esta descrição matemática ou não. No Computing Dictionary, vamos encontrar a definição com a qual o pessoal da computação está mais familiarizado: uma abstração ou representação simplificada da realidade, ignorando certos detalhes. Transcrevendo uma parte, temos: “Models allow complex systems, both existent and merely specified, to be understood and their behaviour predicted”. Utilizando Scrum, podemos predizer o comportamento de papéis ou do produto envolvido? Utilizando apenas Scrum, não podemos. Talvez realizando estudos empíricos abrangendo algumas ciências como Psicologia, Matemática, podemos atingir tal objetivo. Veja que a definição de modelo está sempre ligada a uma posterior investigação, independente do modelo ser matemático ou não.
Vamos ao vocábulo “metodologia”. A tradução de methodology é metodologia. No inglês, verificando qualquer um dos dicionários citados acima, podemos compilar (mais um neologismo) tudo e chegar a:
1 - “A body of practices, procedures, and rules used by those who
work in a discipline or engage in an inquiry; scientific methodology”
2 - “The system of methods followed in a particular discipline”
No português, verificando os principais dicionários (Aurélio, Houaiss, Aulete e Michaelis) vamos encontrar uma definição com o mesmo conteúdo semântico. Metodologia, então, implica em algo que define procedimentos, regras documentadas (ou o estudo das mesmas) para a regulamentação de uma determinada disciplina. Metodologia nos ensina a pesquisar e estudar algo. Na computação, de acordo com o Computing Dictionary, vamos encontrar:
“An organised, documented set of procedures and guidelines for one or more phases of the software life cycle, such as analysis or design. Many methodologies include a diagramming notation for documenting the results of the procedure; a step-by-step “cookbook” approach for carrying out the procedure; and an objective (ideally quantified) set of criteria for determining whether the results of the procedure are of acceptable quality.”
Scrum não se encaixa em nenhuma das definições acima, principalmente na última. Isso porque Scrum não nos ensina a fazer pesquisa, não nos ensina ciência nem muito menos responde perguntas de Engenharia de Software que possam surgir no decorrer do Ciclo de Vida de um software. A última definição, inclusive, já nos permite descartar Scrum como metodologia de imediato, tendo em vista que Scrum desenvolveu-se e pode ser aplicado a outras realidades de projetos e não apenas a projetos de software.
E método? A definição de método, de acordo com os já citados dicionários, nos leva a:
“Procedimentos, técnicas ordenadas; processo ou sistema que ordenam uma determinada atividade”
De acordo com tal definição, poderíamos até dizer que Scrum é um método. E de fato dizemos: é um método ágil. Porém, se verificarmos abaixo a definição de framework, vamos ver que Scrum se encaixa melhor a ela.
Um framework é um conjunto de conceitos, valores e práticas que constituem uma forma de ver a realidade. Se considedrarmos Scrum como sendo aplicável a projetos genéricos (mas não a qualquer realidade de projeto) veremos que é um framework. Scrum per se é um conjunto de valores, mais que um conjunto de regras e processos. Obviamente, existem regras a serem seguidas, isso é inevitável, mas por se tratar de algo genérico, Scrum é como se fosse um conjunto de massinhas de brinquedo, daquelas que brincamos quando criança. Podemos ler assim na caixa do brinquedo: “Utilizado para organizar seus problemas de forma lúdica”.