Scrum: metodologia, método, modelo ou framework?
Enviado em 11 de Janeiro de 2010
Publicado por Heitor Roriz | Enviar por e-mail
| Hits para esta publicação: 728
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”.
Muito bom o post !
Também concordo que o Scrum seja um framework, principalmente porque você pode aplica-lo a qualquer tipo de equipe e não só em desenvolvimento de softwares e também não vejo como algo que você segue 100%, mas você se adapta a ele utilizando as regras que mais lhe trazem benefícios.
Heitor,
Se nós utilizarmos apenas algumas práticas do Scrum como por exemplo a organização do Sprint Backlog e não as reuniões diárias, estariamos praticando o Scrum? Se a resposta for NÃO, eu acredito que então o Scrum é uma metodologia, pois então o mesmo requer que utilizemos todos os recursos praticado para que o mesmo aconteça. Porém se a resposta for SIM, sem dúvida é um Framework, pois o praticante usaria aquilo que acha melhor para o projeto.
Parabéns pelo artigo.
[]’s
Caro Almiro,
se modificarmos algo, sera ScrumBut, como voce sabe. Metodologias nao sao caracterizadas apenas pelas suas regras. As regras existem em todas as nossas realidades e disciplinas, inclusive em um framework. O que caracteriza uma metodologia na computacao é o fato da adesao à regras de documentacao/diagramação, o que leva a uma “receita de bolo” e em geral, metodologias não apenas seguem regras, mas também possuem um objetivo final mensurável com passos bem definidos, de acordo com a área em que a metodologia atua, permitindo assim a prediçao. Nao é ruim ser uma metodologia, mas em termos semanticos, framework se adequa mais ao Scrum.
[…] Scrum: metodologia, método, modelo ou framework? – Heitor Roriz (AdaptWorks); […]